Compare commits

...

47 Commits

Author SHA1 Message Date
Ryan
3d4da6de29 [docs] Add "edit this page" link at the bottom (#24585) 2024-11-12 02:20:56 +00:00
dependabot[bot]
9cd7896760 Bump JamesIves/github-pages-deploy-action from 4.6.8 to 4.6.9 (#24592)
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.8 to 4.6.9.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.8...v4.6.9)

---
updated-dependencies:
- dependency-name: JamesIves/github-pages-deploy-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-12 02:18:51 +00:00
Duncan Sutherland
8cbd631fcb remove "w": 1 from /keyboards/ (#24587) 2024-11-10 12:11:48 -07:00
Ryan
3eb172d08e [docs] Turn on icons for external links (#24580) 2024-11-09 12:04:14 -07:00
Ryan
b3f5408e72 [docs] Fix dead link to keyboard list in newbs.md (#24579) 2024-11-09 09:49:11 -07:00
Amund Tenstad
f156e57f8e [Keyboard] Add tenstad (#24571)
* [Keyboard] Add tenstad

* fix: remove settings disabled by default

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* fix: add serial and transport to json

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* fix: format json

* docs: update img url

* fix: delete now-redundant rules.mk

* fix: format keymap.json (keeping 'layout' at the top)

---------

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
2024-11-08 21:24:00 -07:00
Danny Tan
10849dac68 Add Fuyu HS (#24567)
* Add Fuyu HS

* Fix keyboard.json linting

* Fix rgbmatrix configuration

* Apply suggestions from code review

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

---------

Co-authored-by: Joel Challis <git@zvecr.com>
2024-11-08 21:23:31 -07:00
Danny Tan
fb3a414a40 Add Idyllic Pizza Pad (#24566)
* Initial PizzaPad firmware

* Updated files to conform to PR checklist

* Fix default keymap location

* Update keyboard.json

* Apply suggestions from code review

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

* Update keyboards/idyllic/pizzapad/keymaps/default/keymap.c

Co-authored-by: jack <jack@pngu.org>

---------

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <jack@pngu.org>
2024-11-08 21:21:52 -07:00
Akshay
e31eeb85db added support for shorty KB (#24518)
* added support for shorty KB

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-11-08 09:09:35 +00:00
Nick Brassel
580d18d2e9 Speed improvements to qmk find. (#24385) 2024-11-08 04:57:22 +00:00
HereVoLand
4f9ef90754 Add keyboard buff75 (#24297)
* Create herevoland

* Delete keyboards/herevoland

* Add files via upload

* Delete keyboards/herevoland/buff75 directory

* Add files via upload

* Delete keyboards/herevoland/buff75/buff75.h

* Delete keyboards/herevoland/buff75/rules.mk

* Delete keyboards/herevoland/buff75/halconf.h

* Update and rename info.json to keyboard.json

* Delete keyboards/herevoland/buff75/matrix_diagram.md

* Update readme.md

* Update readme.md

* Add files via upload

* Delete keyboards/herevoland/buff75/keymaps/via directory

* Update readme.md

* Update keymap.c

* Update matrix_diagram.md

* Update readme.md

* Update keyboard.json

* Update readme.md

* Update matrix_diagram.md

* Update keyboard.json

* Update keymap.c

* Update keymap.c

* Update keyboard.json

* Update mcuconf.h

* Delete keyboards/herevoland/buff75/mcuconf.h
2024-11-07 19:52:41 -07:00
Christian C. Berclaz
3cda9ffcd6 Adding support for Windstudio's Wind X R1 keyboard (#24564)
* Added a default firmware and layout for the WindStudio Wind X R1
keyboard.

* Wind X R1: cleaned-up the folders to make clear that this firmware is
for the release 1 of this keyboard.

* Added rules.mk to the default layout

* Renamed the folder R1 into r1.

* Added readme.md files for the keyboard and default layout.

* Added a license header to keymap.c

* Update keyboards/windstudio/wind_x/r1/keyboard.json

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/windstudio/wind_x/r1/keyboard.json

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/windstudio/wind_x/r1/keymaps/default/keymap.c

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/windstudio/wind_x/r1/readme.md

Co-authored-by: jack <jack@pngu.org>

* Added a proper link to the image (logo of windstudio)

* Wind X R1
- Corrected the default keymap with the QK_GESC key instead of the
  KC_ESC.
- Removed the unnecessary rules.mk in the default layout

* Wind X R1:
applied `qmk format-json -i` on keyboard.json to conform with the
project formatt standards.

* Added a picture of the keyboard.

* Added a caption to the image.

---------

Co-authored-by: jack <jack@pngu.org>
2024-11-07 17:58:57 -07:00
Bennett Balogh
54860ed238 [Keyboard] Add Teton78 (#24562)
* Added Teton_78 qmk keyboard files

* Fixed a syntax issue

* Waffles suggested changes

* Read me updated

Used the Alpine65 reame to model off.

* Update keyboards/mountainmechdesigns/teton_78/keymaps/default/keymap.c

Co-authored-by: jack <jack@pngu.org>

* Accidental File

* Updated readme with missing info

* Update readme.md

* Update keyboards/mountainmechdesigns/teton_78/readme.md

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

* Update keyboards/mountainmechdesigns/teton_78/readme.md

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

* Update keyboards/mountainmechdesigns/teton_78/readme.md

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

---------

Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2024-11-07 17:58:33 -07:00
Diego Andres Rabaioli
f4e6af2dbe Adding SdraKb00 keyboard (#24552)
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2024-11-06 00:46:17 -07:00
Michael Büchler
f5f11b7c79 Add keyboards/converter/thinkpad_t6x/rpi_pico (#23696) 2024-11-06 00:45:20 -07:00
takashicompany
6fbfd659ff Add new keyboard "KLEC-02" (#24559)
Co-authored-by: jack <0x6a73@protonmail.com>
2024-11-06 00:43:35 -07:00
takashicompany
c8cdee3e4e [Keyboard] Add KLEC-01 (#24543) 2024-11-03 12:13:56 -08:00
Joel Challis
465cbc87de Handle 'MILCInterface' object has no attribute 'log_level' error (#24549) 2024-10-30 11:26:53 +00:00
Joel Challis
6693a30671 Remove appdirs from requirements.txt (#24550) 2024-10-30 05:43:31 +00:00
Joel Challis
e6daffce46 Handle cli._subcommand.__name__ deprecation warning (#24533) 2024-10-30 05:16:59 +00:00
leyew
92afc8198a [Keyboard] Add Singa Kohaku (#24309)
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-10-29 09:56:23 -06:00
Thanh Son Tran
7c9e650b1c [Keyboard] Add S6xty PCB (#24465)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Trần Thanh Sơn <son.tt1@teko.vn>
2024-10-27 23:59:54 -07:00
Guido Bartolucci
7005522176 Add madjax_macropad keyboard (#24524)
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-10-27 22:50:42 -07:00
Felix Jen
32b6faaf35 Add Vanguard65 Keyboard (#24497)
* Initial commit

* update

* added two options for the slider

* comments

* added rounding for the lower end of the LED values

* moved folder, cleaned up code

* fixed layout def

* fioxed default layout

* Update keyboards/keebfront/vanguard65/config.h

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/keebfront/vanguard65/keymaps/via/keymap.c

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/keebfront/vanguard65/keymaps/via/keymap.c

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/keebfront/vanguard65/readme.md

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/keebfront/vanguard65/rules.mk

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/keebfront/vanguard65/info.json

Co-authored-by: jack <0x6a73@protonmail.com>

* updated default keymap to have encoder map functionality

* Update keyboards/keebfront/vanguard65/rules.mk

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/keebfront/vanguard65/config.h

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/keebfront/vanguard65/config.h

Co-authored-by: jack <0x6a73@protonmail.com>

* add encoder_update_kb

* Update keyboards/keebfront/vanguard65/vanguard65.c

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

* Update keyboards/keebfront/vanguard65/info.json

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

* Update keyboards/keebfront/vanguard65/info.json

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

* Update keyboards/keebfront/vanguard65/vanguard65.c

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

* new qmk

* misc fixes

* Test

* Removed extraneous parts of hte rules.mk

* Remove extra layers in the keymap

* Revert "Remove extra layers in the keymap"

This reverts commit c82ee931ac.

* removed excess layers

* update for latest QMK led definition

* update

* Update keyboards/keebfront/vanguard65/info.json

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

* Update keyboards/keebfront/vanguard65/keymaps/via/keymap.c

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

* Update keyboards/keebfront/vanguard65/info.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/keebfront/vanguard65/info.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/keebfront/vanguard65/keymaps/default/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/keebfront/vanguard65/keymaps/via/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/keebfront/vanguard65/readme.md

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/keebfront/vanguard65/keymaps/default/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/keebfront/vanguard65/info.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/keebfront/vanguard65/keymaps/default/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/keebfront/vanguard65/keymaps/via/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/keebfront/vanguard65/info.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Delete vanguard65.c

* run qmk format_json

* Update keyboards/keebfront/vanguard65/rules.mk

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

* Update keyboards/keebfront/vanguard65/readme.md

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/keebfront/vanguard65/readme.md

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/keebfront/vanguard65/info.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/keebfront/vanguard65/keymaps/default/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/keebfront/vanguard65/keymaps/via/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/keebfront/vanguard65/keymaps/via/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/keebfront/vanguard65/keymaps/default/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/keebfront/vanguard65/info.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/keebfront/vanguard65/keymaps/via/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/keebfront/vanguard65/keymaps/default/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/keebfront/vanguard65/keymaps/default/keymap.c

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

* Update keyboards/keebfront/vanguard65/keymaps/default/keymap.c

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

* Confirm all keymaps compile

* update for latest QMK best definitions

* Apply suggestions from code review

Co-authored-by: jack <jack@pngu.org>

* Added minimum slider functionality.

* update readme

* Apply suggestions from code review

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

* Update keyboards/keebfront/vanguard65/keyboard.json

Co-authored-by: jack <jack@pngu.org>

---------

Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Joel Challis <git@zvecr.com>
2024-10-24 23:35:53 -06:00
era
bf327f7a81 [Keyboard] Add SIRIND Tomak79H (#24505)
* Add Tomak79H

Add Tomak79H

* Update

Update

* Update keyboards/era/sirind/tomak79h/tomak79h.c

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

---------

Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-10-24 23:25:12 -06:00
Daniel Weeks
3b874ee434 [Keyboard] Add xdboards/recon keyboard (#24135)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-10-24 02:04:51 -07:00
Danny
453ec007c1 Add Iris LM series of keyboards (#24510) 2024-10-22 22:14:12 -04:00
Jan Bláha
459de98222 Fix 6x13 default keymap (#24509)
Update keymap.c
2024-10-21 22:38:11 +01:00
Duncan Sutherland
7f22cb52e3 Correct layouts/default/readme.md (#23805)
Update readme.md

remove orphan layout
2024-10-18 19:04:29 +11:00
David Doan
36008922f8 add vector macropad (#24487)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-10-17 10:06:17 -06:00
Alabahuy
2ad13037ab [Keyboard] Add JK60 RGB (#24485) 2024-10-16 10:16:31 -06:00
Ryan
85a7627641 Digitizer: fix units tag in report descriptor (#24482) 2024-10-15 07:05:43 -07:00
Joel Challis
11daef82e0 zsa/moonlander: Fix execution of user callback (#24475) 2024-10-11 16:29:32 -07:00
Ryan
c95f0fb671 mykeyclub/jris65/hotswap: fix keymap (#24472) 2024-10-11 09:48:59 -06:00
Woodrow Douglass
f0b5feb858 fix hotdox76v2 oled font to more closely mirror utf8 (#23807) 2024-10-10 20:31:08 -07:00
Joe Scotto
f43c9127bf Add Scotto37 handwired keyboard (#23938)
Co-authored-by: Joel Challis <git@zvecr.com>
2024-10-10 20:27:56 -07:00
azhizhinov
4055798807 [Keyboard] Add Piantor UV 44 (#24247)
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-10-10 20:01:00 -07:00
Drashna Jaelre
49a1a12a32 Expand count checks in keymap introspection (#24464)
* Add check Tap Dance count check to keymap introspection

* Add checks for combos and key overrides to introspection
2024-10-11 06:54:53 +11:00
フィルターペーパー
fb598e7e61 Fixup Lily58 keymap comment (#24466) 2024-10-09 05:30:32 +01:00
yiancar
c0d57a6826 Fix indicator code for NK classics (#24462)
Fix indicator code

Co-authored-by: yiancar <yiancar@gmail.com>
2024-10-08 12:51:23 -06:00
Álvaro A. Volpato
1a284f2b92 Fix Caps Lock indication on Valhalla v2 (#23012)
* Fix Caps Lock indication

* User LED state function override added

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

* Change backlight enabled check and remove backlight headers

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

---------

Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-10-07 17:29:03 +13:00
Joel Challis
f25624dca4 Fix thumbsup:default keymap (#24459) 2024-10-06 18:26:48 +01:00
sizezero
035dcf213c Add keyboard Jris65 (#23936)
* first compiled, flashed, and tested version of jris65

* adding readmes for mykeyclub and jris65

* removed commented out code and unneeded files

* typo in build instructions

* renamed info.json to keyboard.json as per new standard

* formatted with qmk format-json

* fixed layout offset problem

* moved some settings from c/h files to json

* moved matrix from .h file to .json

* cleaned up non-json options

* moved settings from rules.mk to keyboard.json

* fix for via after removing .h file

* converted keymap.c to keymap.json

* keymap.c has been replaced by keymap.json

* FN+Backspace loads bootload

* added custom keymap for Sean

* config.h setting is only needed by via

* formatted json

* convert via keymap from .c .h .mk to keymap.json

* moved keyboard configuration to hotswap dir; note in readme that only hotswap has been tested

* Update keyboards/mykeyclub/jris65/keymaps/default/keymap.json

Co-authored-by: jack <jack@pngu.org>

* typo

Co-authored-by: jack <jack@pngu.org>

* blank layers do not need to be specified

Co-authored-by: jack <jack@pngu.org>

* added other valid layouts

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* added other valid layouts

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* added other valid layouts

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* added other valid layouts

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* removed extra newline

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* cleaned up wording in readme

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* QMK no longer supports user keymaps

* remove settings that are already the default (false settings)

Co-authored-by: jack <jack@pngu.org>

* add image

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* add missing commas (formatting)

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* add missing commas (formatting)

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* add missing commas (formatting)

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* re-added second layer with QK_BOOT for backspace

* make the hotswap the default keyboard

* added keyboard director prefix to DEFAULT_FOLDER

* ran qmk format-json on keyboard.json

* DEFAULT_FOLDER option is going away so don't use it

* removed via keymap as they now reside in qmk_userspace_via

---------

Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2024-10-06 11:01:30 -06:00
ak66666
7446c6ea7d Added a new keyboard ThumbsUp! v9 with a default keymap (#23800)
* Added a cleaned-up set of files for ThumbsUp! v9.

* Renamed the keymap for v9 as default

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

As per PR review suggestions.

Co-authored-by: jack <0x6a73@protonmail.com>

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

As per PR review suggestions.

Co-authored-by: jack <0x6a73@protonmail.com>

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

As per PR review suggestions.

Co-authored-by: jack <0x6a73@protonmail.com>

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

As per PR review suggestions.

Co-authored-by: jack <0x6a73@protonmail.com>

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

As per PR review suggestions.

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/thumbsup/rev9_promicro_4x12/info.json

As per PR review suggestions.

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/thumbsup/rev9_promicro_4x12/readme.md

As per PR review suggestions.

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/thumbsup/rev9_promicro_4x12/readme.md

As per PR review suggestions.

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/thumbsup/rev9_promicro_4x12/rules.mk

As per PR review suggestions.

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/thumbsup/rev9_promicro_4x12/info.json

As per PR review suggestions.

Co-authored-by: jack <0x6a73@protonmail.com>

* Apply suggestions from code review

Co-authored-by: jack <0x6a73@protonmail.com>

* Delete keyboards/thumbsup/keymaps/default/readme.md as per review recommendation.

* v9: Fixed the layout name in keymap.c file.

* v9: PR recommendatios applied - rules.mk file removed, info.json renamed to keyboard.json.

* v9: PR recommendatios applied - rules.mk file removed, info.json renamed to keyboard.json.

* v9: Fixed the copyright header modified by mistake.

* v9: Fixed the tri-layer switch as per the review recommendation.

* v9: Fixed the copyright header modified by mistake.

---------

Co-authored-by: jack <0x6a73@protonmail.com>
2024-10-06 22:08:18 +13:00
Robin Haberkorn
ff21363627 ibm/model_m/modelh: added ISO layout and keymap for Wheelwriter 10/15 keyboard modules (#24248)
These are probably compatible with the Wheelwriter 1000 as well.
2024-10-06 22:01:20 +13:00
Steven Karrmann
c2dd0c1845 Update Janus keyboard firmware to use EE_HANDS (#24261)
* Use EE_HANDS https://docs.qmk.fm/features/split_keyboard#handedness-by-eeprom

* Update Janus readme to indicate EEPROM handedness is used
2024-10-06 21:52:56 +13:00
rahanahu
13a87ad354 hotdox76v2: Update g_led_config.matrix_co to fix key electrical matrix to led index lookup table. (#24293)
update g_led_config on hotdox76v2/hotdox76v2.c

Co-authored-by: rahanahu <ra87who@gmail.com>
2024-10-06 21:51:06 +13:00
140 changed files with 8321 additions and 175 deletions

View File

@@ -56,7 +56,7 @@ jobs:
- name: Deploy
if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }}
uses: JamesIves/github-pages-deploy-action@v4.6.8
uses: JamesIves/github-pages-deploy-action@v4.6.9
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: gh-pages

View File

@@ -39,8 +39,15 @@ export default defineConfig(({ mode }) => {
provider: "local",
},
editLink: {
pattern: 'https://github.com/qmk/qmk_firmware/edit/master/docs/:path'
},
lastUpdated: true,
sidebar: sidebar,
externalLinkIcon: true,
socialLinks: [
{ icon: { svg: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="50px" height="50px"><path d="M 29 3 C 28.0625 3 27.164063 3.382813 26.5 4 C 25.835938 4.617188 25.363281 5.433594 25 6.40625 C 24.355469 8.140625 24.085938 10.394531 24.03125 13.03125 C 19.234375 13.179688 14.820313 14.421875 11.28125 16.46875 C 10.214844 15.46875 8.855469 14.96875 7.5 14.96875 C 6.089844 14.96875 4.675781 15.511719 3.59375 16.59375 C 1.425781 18.761719 1.425781 22.238281 3.59375 24.40625 L 3.84375 24.65625 C 3.3125 26.035156 3 27.488281 3 29 C 3 33.527344 5.566406 37.585938 9.5625 40.4375 C 13.558594 43.289063 19.007813 45 25 45 C 30.992188 45 36.441406 43.289063 40.4375 40.4375 C 44.433594 37.585938 47 33.527344 47 29 C 47 27.488281 46.6875 26.035156 46.15625 24.65625 L 46.40625 24.40625 C 48.574219 22.238281 48.574219 18.761719 46.40625 16.59375 C 45.324219 15.511719 43.910156 14.96875 42.5 14.96875 C 41.144531 14.96875 39.785156 15.46875 38.71875 16.46875 C 35.195313 14.433594 30.800781 13.191406 26.03125 13.03125 C 26.09375 10.546875 26.363281 8.46875 26.875 7.09375 C 27.164063 6.316406 27.527344 5.757813 27.875 5.4375 C 28.222656 5.117188 28.539063 5 29 5 C 29.460938 5 29.683594 5.125 30.03125 5.40625 C 30.378906 5.6875 30.785156 6.148438 31.3125 6.6875 C 32.253906 7.652344 33.695313 8.714844 36.09375 8.9375 C 36.539063 11.238281 38.574219 13 41 13 C 43.75 13 46 10.75 46 8 C 46 5.25 43.75 3 41 3 C 38.605469 3 36.574219 4.710938 36.09375 6.96875 C 34.3125 6.796875 33.527344 6.109375 32.75 5.3125 C 32.300781 4.851563 31.886719 4.3125 31.3125 3.84375 C 30.738281 3.375 29.9375 3 29 3 Z M 41 5 C 42.667969 5 44 6.332031 44 8 C 44 9.667969 42.667969 11 41 11 C 39.332031 11 38 9.667969 38 8 C 38 6.332031 39.332031 5 41 5 Z M 25 15 C 30.609375 15 35.675781 16.613281 39.28125 19.1875 C 42.886719 21.761719 45 25.226563 45 29 C 45 32.773438 42.886719 36.238281 39.28125 38.8125 C 35.675781 41.386719 30.609375 43 25 43 C 19.390625 43 14.324219 41.386719 10.71875 38.8125 C 7.113281 36.238281 5 32.773438 5 29 C 5 25.226563 7.113281 21.761719 10.71875 19.1875 C 14.324219 16.613281 19.390625 15 25 15 Z M 7.5 16.9375 C 8.203125 16.9375 8.914063 17.148438 9.53125 17.59375 C 7.527344 19.03125 5.886719 20.769531 4.75 22.71875 C 3.582031 21.296875 3.660156 19.339844 5 18 C 5.714844 17.285156 6.609375 16.9375 7.5 16.9375 Z M 42.5 16.9375 C 43.390625 16.9375 44.285156 17.285156 45 18 C 46.339844 19.339844 46.417969 21.296875 45.25 22.71875 C 44.113281 20.769531 42.472656 19.03125 40.46875 17.59375 C 41.085938 17.148438 41.796875 16.9375 42.5 16.9375 Z M 17 22 C 14.800781 22 13 23.800781 13 26 C 13 28.199219 14.800781 30 17 30 C 19.199219 30 21 28.199219 21 26 C 21 23.800781 19.199219 22 17 22 Z M 33 22 C 30.800781 22 29 23.800781 29 26 C 29 28.199219 30.800781 30 33 30 C 35.199219 30 37 28.199219 37 26 C 37 23.800781 35.199219 22 33 22 Z M 17 24 C 18.117188 24 19 24.882813 19 26 C 19 27.117188 18.117188 28 17 28 C 15.882813 28 15 27.117188 15 26 C 15 24.882813 15.882813 24 17 24 Z M 33 24 C 34.117188 24 35 24.882813 35 26 C 35 27.117188 34.117188 28 33 28 C 31.882813 28 31 27.117188 31 26 C 31 24.882813 31.882813 24 33 24 Z M 34.15625 33.84375 C 34.101563 33.851563 34.050781 33.859375 34 33.875 C 33.683594 33.9375 33.417969 34.144531 33.28125 34.4375 C 33.28125 34.4375 32.757813 35.164063 31.4375 36 C 30.117188 36.835938 28.058594 37.6875 25 37.6875 C 21.941406 37.6875 19.882813 36.835938 18.5625 36 C 17.242188 35.164063 16.71875 34.4375 16.71875 34.4375 C 16.492188 34.082031 16.066406 33.90625 15.65625 34 C 15.332031 34.082031 15.070313 34.316406 14.957031 34.632813 C 14.84375 34.945313 14.894531 35.292969 15.09375 35.5625 C 15.09375 35.5625 15.863281 36.671875 17.46875 37.6875 C 19.074219 38.703125 21.558594 39.6875 25 39.6875 C 28.441406 39.6875 30.925781 38.703125 32.53125 37.6875 C 34.136719 36.671875 34.90625 35.5625 34.90625 35.5625 C 35.207031 35.273438 35.296875 34.824219 35.128906 34.441406 C 34.960938 34.058594 34.574219 33.820313 34.15625 33.84375 Z"/></svg>' }, link: "https://reddit.com/r/olkb" },
{ icon: "discord", link: "https://discord.gg/qmk" },

View File

@@ -4,7 +4,7 @@ Your computer keyboard has a processor inside of it, similar to the one inside y
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](https://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://browse.qmk.fm/). If your current keyboard can't run QMK there are a lot of choices out there for boards that do.
::: tip Is This Guide For Me?
If the thought of programming intimidates you, please [take a look at our online GUI](newbs_building_firmware_configurator) instead.

View File

@@ -16,7 +16,7 @@ You can create `info.json` files at every level under `qmk_firmware/keyboards/<k
* A free-form text string describing the keyboard's manufacturer. This will be used as the USB manufacturer string. Can include Unicode characters, escaped to ASCII eg. `\u03A8` (Ψ).
* Example: `"Clueboard"`
* `url` <Badge type="info">String</Badge> <Badge>Required</Badge>
* A URL to the keyboard's product page, [QMK.fm/keyboards](https://qmk.fm/keyboards) page, or other page describing information about the keyboard.
* A URL to the keyboard's product page, [QMK Keyboards](https://browse.qmk.fm/) page, or other page describing information about the keyboard.
* Example: `"https://clueboard.co"`
* `bootloader_instructions` <Badge type="info">String</Badge>
* Instructions for putting the keyboard into a mode that allows for firmware flashing.

View File

@@ -0,0 +1,40 @@
{
"manufacturer": "Array Peripherals",
"keyboard_name": "The Vector",
"maintainer": "daviddoan",
"bootloader": "atmel-dfu",
"encoder": {
"rotary": [
{"pin_a": "F0", "pin_b": "F1"}
]
},
"features": {
"bootmagic": true,
"encoder": true,
"extrakey": true,
"mousekey": true
},
"matrix_pins": {
"direct": [
["D4", "C6", "D7", "E6", "F7"]
]
},
"processor": "atmega32u4",
"url": "https://arrayperipherals.com",
"usb": {
"device_version": "1.0.0",
"pid": "0x4F47",
"vid": "0x4152"
},
"layouts": {
"LAYOUT": {
"layout": [
{"label": "k01", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k02", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k03", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k04", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k05", "matrix": [0, 4], "x": 4.25, "y": 0}
]
}
}
}

View File

@@ -0,0 +1,36 @@
/*
Copyright 2024 David Doan <daviddoan1995@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, TG(1)
),
[1] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(1)
),
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
[1] = {ENCODER_CCW_CW(KC_TRNS, KC_TRNS)},
};
#endif // ENCODER_MAP_ENABLE

View File

@@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes

View File

@@ -0,0 +1,26 @@
# The Vector Macropad
![The Vector](https://i.imgur.com/rmy76bp.png)
A small (1x4) macropad with a rotary. [More info at arrayperipherals.com](https://www.arrayperipherals.com/)
* Keyboard Maintainer: [David Doan](https://github.com/daviddoan)
* Hardware Supported: Custom PCB with Atmega32u4 processor
* Hardware Availability: [arrayperipherals.com](https://www.arrayperipherals.com/)
Make example for this keyboard (after setting up your build environment):
make arrayperipherals/vector:default
Flashing example for this keyboard:
make arrayperipherals/vector:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 2 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (left most from the rotary)
* **Physical reset button**: Briefly double press the button on the back of the PCB

View File

@@ -112,9 +112,9 @@
{"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
{"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
{"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1},
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1},
{"matrix": [5, 9], "x": 12, "y": 5.25, "w": 1},
{"matrix": [5, 10], "x": 10, "y": 5.25},
{"matrix": [5, 11], "x": 11, "y": 5.25},
{"matrix": [5, 9], "x": 12, "y": 5.25},
{"matrix": [5, 12], "x": 13.25, "y": 5.5},
{"matrix": [5, 13], "x": 14.25, "y": 5.5},
{"matrix": [5, 14], "x": 15.25, "y": 5.5}

View File

@@ -0,0 +1,131 @@
{
"manufacturer": "strobo5",
"keyboard_name": "converter/thinkpad_t6x/rpi_pico",
"maintainer": "strobo5",
"board": "GENERIC_RP_RP2040",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true
},
"matrix_pins": {
"cols": ["GP7", "GP9", "GP11", "GP13", "GP17", "GP16", "GP14", "GP12", "GP15", "GP8", "GP10", "GP6", "GP4", "GP2", "GP5", "GP3"],
"rows": ["GP20", "GP26", "GP22", "GP21", "GP18", "GP19", "GP27", "GP28"]
},
"processor": "RP2040",
"ps2": {
"clock_pin": "GP1",
"data_pin": "GP0",
"driver": "vendor",
"enabled": true,
"mouse_enabled": true
},
"url": "https://github.com/strobo5/T61_PiPico_Scanner",
"usb": {
"device_version": "1.0.0",
"pid": "0x0000",
"vid": "0xFEED"
},
"layouts": {
"LAYOUT_iso": {
"layout": [
{"label": "Esc", "matrix": [5, 0], "x": 0, "y": 0, "w": 0.9, "h": 0.75},
{"label": "Mute", "matrix": [4, 10], "x": 0.9, "y": 0, "w": 0.75, "h": 0.5},
{"label": "Vol -", "matrix": [3, 10], "x": 1.65, "y": 0, "w": 0.75, "h": 0.5},
{"label": "Vol +", "matrix": [2, 10], "x": 2.4, "y": 0, "w": 0.75, "h": 0.5},
{"label": "ThinkVantage", "matrix": [5, 10], "x": 3.5, "y": 0, "w": 1.25, "h": 0.5},
{"label": "PrtSc", "matrix": [1, 13], "x": 8.9, "y": 0, "w": 0.9, "h": 0.65},
{"label": "ScrLk", "matrix": [2, 13], "x": 9.8, "y": 0, "w": 0.9, "h": 0.65},
{"label": "Pause", "matrix": [6, 12], "x": 10.7, "y": 0, "w": 0.9, "h": 0.65},
{"label": "Insert", "matrix": [0, 9], "x": 12, "y": 0, "w": 0.9, "h": 0.65},
{"label": "Home", "matrix": [0, 12], "x": 12.9, "y": 0, "w": 0.9, "h": 0.65},
{"label": "PgUp", "matrix": [0, 11], "x": 13.8, "y": 0, "w": 0.9, "h": 0.65},
{"label": "F1", "matrix": [0, 1], "x": 0, "y": 0.75, "w": 0.9, "h": 0.65},
{"label": "F2", "matrix": [0, 2], "x": 0.9, "y": 0.75, "w": 0.9, "h": 0.65},
{"label": "F3", "matrix": [3, 2], "x": 1.8, "y": 0.75, "w": 0.9, "h": 0.65},
{"label": "F4", "matrix": [5, 2], "x": 2.7, "y": 0.75, "w": 0.9, "h": 0.65},
{"label": "F5", "matrix": [5, 8], "x": 4, "y": 0.75, "w": 0.9, "h": 0.65},
{"label": "F6", "matrix": [5, 5], "x": 4.9, "y": 0.75, "w": 0.9, "h": 0.65},
{"label": "F7", "matrix": [3, 6], "x": 5.8, "y": 0.75, "w": 0.9, "h": 0.65},
{"label": "F8", "matrix": [0, 6], "x": 6.7, "y": 0.75, "w": 0.9, "h": 0.65},
{"label": "F9", "matrix": [0, 8], "x": 8, "y": 0.75, "w": 0.9, "h": 0.65},
{"label": "F10", "matrix": [1, 8], "x": 8.9, "y": 0.75, "w": 0.9, "h": 0.65},
{"label": "F11", "matrix": [1, 10], "x": 9.8, "y": 0.75, "w": 0.9, "h": 0.65},
{"label": "F12", "matrix": [1, 9], "x": 10.7, "y": 0.75, "w": 0.9, "h": 0.65},
{"label": "Delete", "matrix": [0, 10], "x": 12, "y": 0.75, "w": 0.9, "h": 0.65},
{"label": "End", "matrix": [1, 12], "x": 12.9, "y": 0.75, "w": 0.9, "h": 0.65},
{"label": "PgDn", "matrix": [1, 11], "x": 13.8, "y": 0.75, "w": 0.9, "h": 0.65},
{"label": "`\u00ac", "matrix": [0, 0], "x": 0, "y": 1.4},
{"label": "1!", "matrix": [1, 0], "x": 1, "y": 1.4},
{"label": "2\"", "matrix": [1, 1], "x": 2, "y": 1.4},
{"label": "3\u00a3", "matrix": [1, 2], "x": 3, "y": 1.4},
{"label": "4$", "matrix": [1, 3], "x": 4, "y": 1.4},
{"label": "5%", "matrix": [0, 3], "x": 5, "y": 1.4},
{"label": "6^", "matrix": [0, 4], "x": 6, "y": 1.4},
{"label": "7&", "matrix": [1, 4], "x": 7, "y": 1.4},
{"label": "8*", "matrix": [1, 5], "x": 8, "y": 1.4},
{"label": "9(", "matrix": [1, 6], "x": 9, "y": 1.4},
{"label": "0)", "matrix": [1, 7], "x": 10, "y": 1.4},
{"label": "-_", "matrix": [0, 7], "x": 11, "y": 1.4},
{"label": "=+", "matrix": [0, 5], "x": 12, "y": 1.4},
{"label": "Bksp", "matrix": [3, 8], "x": 13, "y": 1.4, "w": 2},
{"label": "Tab", "matrix": [3, 0], "x": 0, "y": 2.4, "w": 1.5},
{"label": "Q", "matrix": [2, 0], "x": 1.5, "y": 2.4},
{"label": "W", "matrix": [2, 1], "x": 2.5, "y": 2.4},
{"label": "E", "matrix": [2, 2], "x": 3.5, "y": 2.4},
{"label": "R", "matrix": [2, 3], "x": 4.5, "y": 2.4},
{"label": "T", "matrix": [3, 3], "x": 5.5, "y": 2.4},
{"label": "Y", "matrix": [3, 4], "x": 6.5, "y": 2.4},
{"label": "U", "matrix": [2, 4], "x": 7.5, "y": 2.4},
{"label": "I", "matrix": [2, 5], "x": 8.5, "y": 2.4},
{"label": "O", "matrix": [2, 6], "x": 9.5, "y": 2.4},
{"label": "P", "matrix": [2, 7], "x": 10.5, "y": 2.4},
{"label": "[{", "matrix": [3, 7], "x": 11.5, "y": 2.4},
{"label": "]}", "matrix": [3, 5], "x": 12.5, "y": 2.4},
{"label": "Caps Lock", "matrix": [3, 1], "x": 0, "y": 3.4, "w": 1.75},
{"label": "A", "matrix": [4, 0], "x": 1.75, "y": 3.4},
{"label": "S", "matrix": [4, 1], "x": 2.75, "y": 3.4},
{"label": "D", "matrix": [4, 2], "x": 3.75, "y": 3.4},
{"label": "F", "matrix": [4, 3], "x": 4.75, "y": 3.4},
{"label": "G", "matrix": [5, 3], "x": 5.75, "y": 3.4},
{"label": "H", "matrix": [5, 4], "x": 6.75, "y": 3.4},
{"label": "J", "matrix": [4, 4], "x": 7.75, "y": 3.4},
{"label": "K", "matrix": [4, 5], "x": 8.75, "y": 3.4},
{"label": "L", "matrix": [4, 6], "x": 9.75, "y": 3.4},
{"label": ";:", "matrix": [4, 7], "x": 10.75, "y": 3.4},
{"label": "'@", "matrix": [5, 7], "x": 11.75, "y": 3.4},
{"label": "#~", "matrix": [6, 7], "x": 12.75, "y": 3.4},
{"label": "Enter", "matrix": [6, 8], "x": 13.75, "y": 2.4, "w": 1.25, "h": 2},
{"label": "Shift", "matrix": [3, 14], "x": 0, "y": 4.4, "w": 1.25},
{"label": "\\|", "matrix": [5, 1], "x": 1.25, "y": 4.4},
{"label": "Z", "matrix": [6, 0], "x": 2.25, "y": 4.4},
{"label": "X", "matrix": [6, 1], "x": 3.25, "y": 4.4},
{"label": "C", "matrix": [6, 2], "x": 4.25, "y": 4.4},
{"label": "V", "matrix": [6, 3], "x": 5.25, "y": 4.4},
{"label": "B", "matrix": [7, 3], "x": 6.25, "y": 4.4},
{"label": "N", "matrix": [7, 4], "x": 7.25, "y": 4.4},
{"label": "M", "matrix": [6, 4], "x": 8.25, "y": 4.4},
{"label": ",<", "matrix": [6, 5], "x": 9.25, "y": 4.4},
{"label": ".>", "matrix": [6, 6], "x": 10.25, "y": 4.4},
{"label": "/?", "matrix": [7, 7], "x": 11.25, "y": 4.4},
{"label": "Shift", "matrix": [6, 14], "x": 12.25, "y": 4.4, "w": 2.75},
{"label": "Fn", "matrix": [4, 9], "x": 0, "y": 5.4},
{"label": "Ctrl", "matrix": [0, 15], "x": 1, "y": 5.4, "w": 1.25},
{"label": "Left OS", "matrix": [2, 11], "x": 2.25, "y": 5.4, "w": 0.9},
{"label": "Alt", "matrix": [5, 13], "x": 3.15, "y": 5.4},
{"label": "Space", "matrix": [7, 8], "x": 4.15, "y": 5.4, "w": 5},
{"label": "AltGr", "matrix": [7, 13], "x": 9.25, "y": 5.4},
{"label": "Menu", "matrix": [4, 11], "x": 10.25, "y": 5.4},
{"label": "Ctrl", "matrix": [6, 15], "x": 11.25, "y": 5.4},
{"label": "Browser Back", "matrix": [6, 11], "x": 12.25, "y": 5.4, "w": 0.9, "h": 0.75},
{"label": "Up", "matrix": [5, 12], "x": 13.15, "y": 5.4, "w": 0.9, "h": 0.75},
{"label": "Browser Forward", "matrix": [7, 11], "x": 14.05, "y": 5.4, "w": 0.9, "h": 0.75},
{"label": "Left", "matrix": [7, 12], "x": 12.25, "y": 6.15, "w": 0.9, "h": 0.75},
{"label": "Down", "matrix": [7, 10], "x": 13.15, "y": 6.15, "w": 0.9, "h": 0.75},
{"label": "Right", "matrix": [7, 9], "x": 14.05, "y": 6.15, "w": 0.9, "h": 0.75}
]
}
}
}

View File

@@ -0,0 +1,17 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_iso(
KC_ESC, KC_MUTE, KC_VOLD, KC_VOLU, QK_BOOT, KC_PSCR, KC_SCRL, KC_PAUS, KC_INS, KC_HOME, KC_PGUP,
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_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_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_NO, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_WBAK, KC_UP , KC_WFWD,
KC_LEFT, KC_DOWN, KC_RGHT
)
};

View File

@@ -0,0 +1,27 @@
# converter/thinkpad_t6x/rpi_pico
![converter/thinkpad_t6x/rpi_pico](https://i.imgur.com/wUG9p6eh.jpeg)
This is a converter PCB for Lenovo Thinkpad keyboards from a wide range of models (T60, T61, X220, ...), based on the Raspberry Pi Pico. The QMK implementation here is specific to the converter in the link below. Similar PCB designs to convert a Thinkpad keyboard to USB exist, but they use a different microcontroller and wiring of the keyboard connector with the MCU.
* Keyboard Maintainer: [Michael Büchler](https://github.com/strobo5)
* Hardware Supported: The linked converter PCB with keyboards from various Thinkpad models
* Hardware Availability: [Custom PCB](https://github.com/strobo5/T61_PiPico_Scanner)
Make example for this keyboard (after setting up your build environment):
make converter/thinkpad_t6x/rpi_pico:default
Flashing example for this keyboard:
make converter/thinkpad_t6x/rpi_pico:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -0,0 +1,15 @@
// Copyright 2024 Hyojin Bak (@eerraa)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/* Split configuration */
#define USB_VBUS_PIN GP19
#define SERIAL_USART_FULL_DUPLEX
#define SERIAL_USART_TX_PIN GP0
#define SERIAL_USART_RX_PIN GP1
#define SERIAL_USART_PIN_SWAP
/* Reset */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U

View File

@@ -0,0 +1,393 @@
{
"manufacturer": "SIRIND",
"keyboard_name": "Tomak79H",
"maintainer": "eerraa",
"bootloader": "rp2040",
"build": {
"debounce_type": "sym_defer_pk"
},
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["GP29", "GP9", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2", null],
"rows": ["GP24", "GP8", "GP26", "GP25", "GP27", "GP28"]
},
"processor": "RP2040",
"rgb_matrix": {
"animations": {
"alphas_mods": true,
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_sat": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"band_val": true,
"breathing": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"cycle_up_down": true,
"digital_rain": true,
"dual_beacon": true,
"flower_blooming": true,
"gradient_left_right": true,
"gradient_up_down": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"jellybean_raindrops": true,
"multisplash": true,
"pixel_flow": true,
"pixel_fractal": true,
"pixel_rain": true,
"rainbow_beacon": true,
"rainbow_moving_chevron": true,
"rainbow_pinwheels": true,
"raindrops": true,
"riverflow": true,
"solid_multisplash": true,
"solid_reactive": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
"solid_reactive_multinexus": true,
"solid_reactive_multiwide": true,
"solid_reactive_nexus": true,
"solid_reactive_simple": true,
"solid_reactive_wide": true,
"solid_splash": true,
"splash": true,
"starlight": true,
"starlight_dual_hue": true,
"starlight_dual_sat": true,
"typing_heatmap": true
},
"driver": "ws2812",
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
{"matrix": [0, 2], "x": 20, "y": 0, "flags": 4},
{"matrix": [0, 3], "x": 33, "y": 0, "flags": 4},
{"matrix": [0, 4], "x": 47, "y": 0, "flags": 4},
{"matrix": [0, 5], "x": 60, "y": 0, "flags": 4},
{"matrix": [0, 6], "x": 80, "y": 0, "flags": 4},
{"matrix": [0, 7], "x": 93, "y": 0, "flags": 4},
{"matrix": [1, 7], "x": 95, "y": 15, "flags": 4},
{"matrix": [1, 6], "x": 81, "y": 15, "flags": 4},
{"matrix": [1, 5], "x": 68, "y": 15, "flags": 4},
{"matrix": [1, 4], "x": 54, "y": 15, "flags": 4},
{"matrix": [1, 3], "x": 41, "y": 15, "flags": 4},
{"matrix": [1, 2], "x": 27, "y": 15, "flags": 4},
{"matrix": [1, 1], "x": 14, "y": 15, "flags": 4},
{"matrix": [1, 0], "x": 0, "y": 15, "flags": 4},
{"matrix": [2, 0], "x": 3, "y": 26, "flags": 1},
{"matrix": [2, 1], "x": 20, "y": 26, "flags": 4},
{"matrix": [2, 2], "x": 34, "y": 26, "flags": 4},
{"matrix": [2, 3], "x": 47, "y": 26, "flags": 4},
{"matrix": [2, 4], "x": 61, "y": 26, "flags": 4},
{"matrix": [2, 5], "x": 75, "y": 26, "flags": 4},
{"matrix": [2, 6], "x": 88, "y": 26, "flags": 4},
{"matrix": [3, 6], "x": 92, "y": 38, "flags": 4},
{"matrix": [3, 5], "x": 78, "y": 38, "flags": 4},
{"matrix": [3, 4], "x": 64, "y": 38, "flags": 4},
{"matrix": [3, 3], "x": 51, "y": 38, "flags": 4},
{"matrix": [3, 2], "x": 37, "y": 38, "flags": 4},
{"matrix": [3, 1], "x": 24, "y": 38, "flags": 4},
{"matrix": [3, 0], "x": 5, "y": 38, "flags": 1},
{"matrix": [3, 0], "x": 2, "y": 38, "flags": 1},
{"matrix": [4, 0], "x": 8, "y": 49, "flags": 1},
{"matrix": [4, 2], "x": 31, "y": 49, "flags": 4},
{"matrix": [4, 3], "x": 44, "y": 49, "flags": 4},
{"matrix": [4, 4], "x": 58, "y": 49, "flags": 4},
{"matrix": [4, 5], "x": 71, "y": 49, "flags": 4},
{"matrix": [4, 6], "x": 85, "y": 49, "flags": 4},
{"matrix": [5, 6], "x": 93, "y": 64, "flags": 1},
{"matrix": [5, 5], "x": 71, "y": 64, "flags": 4},
{"matrix": [5, 2], "x": 37, "y": 61, "flags": 1},
{"matrix": [5, 1], "x": 20, "y": 61, "flags": 1},
{"matrix": [5, 0], "x": 3, "y": 61, "flags": 1},
{"matrix": [6, 8], "x": 221, "y": 0, "flags": 4},
{"matrix": [6, 7], "x": 205, "y": 0, "flags": 4},
{"matrix": [6, 5], "x": 185, "y": 0, "flags": 4},
{"matrix": [6, 4], "x": 171, "y": 0, "flags": 4},
{"matrix": [6, 3], "x": 158, "y": 0, "flags": 4},
{"matrix": [6, 2], "x": 144, "y": 0, "flags": 4},
{"matrix": [6, 1], "x": 124, "y": 0, "flags": 4},
{"matrix": [6, 0], "x": 111, "y": 0, "flags": 4},
{"matrix": [7, 0], "x": 109, "y": 15, "flags": 4},
{"matrix": [7, 1], "x": 123, "y": 15, "flags": 4},
{"matrix": [7, 2], "x": 136, "y": 15, "flags": 4},
{"matrix": [7, 3], "x": 150, "y": 15, "flags": 4},
{"matrix": [7, 4], "x": 163, "y": 15, "flags": 4},
{"matrix": [7, 5], "x": 177, "y": 15, "flags": 4},
{"matrix": [7, 7], "x": 197, "y": 15, "flags": 1},
{"matrix": [7, 8], "x": 221, "y": 15, "flags": 1},
{"matrix": [8, 8], "x": 221, "y": 26, "flags": 4},
{"matrix": [8, 7], "x": 200, "y": 26, "flags": 4},
{"matrix": [8, 6], "x": 184, "y": 26, "flags": 4},
{"matrix": [8, 5], "x": 170, "y": 26, "flags": 4},
{"matrix": [8, 4], "x": 157, "y": 26, "flags": 4},
{"matrix": [8, 3], "x": 143, "y": 26, "flags": 4},
{"matrix": [8, 2], "x": 130, "y": 26, "flags": 4},
{"matrix": [8, 1], "x": 116, "y": 26, "flags": 4},
{"matrix": [8, 0], "x": 102, "y": 26, "flags": 4},
{"matrix": [9, 0], "x": 106, "y": 38, "flags": 4},
{"matrix": [9, 1], "x": 119, "y": 38, "flags": 4},
{"matrix": [9, 2], "x": 133, "y": 38, "flags": 4},
{"matrix": [9, 3], "x": 147, "y": 38, "flags": 4},
{"matrix": [9, 4], "x": 160, "y": 38, "flags": 4},
{"matrix": [9, 5], "x": 174, "y": 38, "flags": 4},
{"matrix": [9, 7], "x": 200, "y": 38, "flags": 1},
{"matrix": [10, 7], "x": 208, "y": 52, "flags": 4},
{"matrix": [10, 6], "x": 186, "y": 49, "flags": 1},
{"matrix": [10, 5], "x": 167, "y": 49, "flags": 4},
{"matrix": [10, 4], "x": 153, "y": 49, "flags": 4},
{"matrix": [10, 3], "x": 140, "y": 49, "flags": 4},
{"matrix": [10, 2], "x": 126, "y": 49, "flags": 4},
{"matrix": [10, 1], "x": 113, "y": 49, "flags": 4},
{"matrix": [10, 0], "x": 99, "y": 49, "flags": 4},
{"matrix": [11, 2], "x": 123, "y": 64, "flags": 4},
{"matrix": [11, 4], "x": 160, "y": 61, "flags": 1},
{"matrix": [11, 5], "x": 177, "y": 61, "flags": 1},
{"matrix": [11, 6], "x": 194, "y": 64, "flags": 4},
{"matrix": [11, 7], "x": 208, "y": 64, "flags": 4},
{"matrix": [11, 8], "x": 221, "y": 64, "flags": 4},
{"x": 224, "y": 53, "flags": 2},
{"x": 224, "y": 51, "flags": 2},
{"x": 224, "y": 49, "flags": 2},
{"x": 224, "y": 48, "flags": 2},
{"x": 224, "y": 46, "flags": 2},
{"x": 224, "y": 44, "flags": 2},
{"x": 224, "y": 43, "flags": 2},
{"x": 224, "y": 41, "flags": 2},
{"x": 224, "y": 39, "flags": 2}
],
"sleep": true,
"split_count": [41, 55]
},
"split": {
"bootmagic": {
"matrix": [6, 0]
},
"enabled": true,
"handedness": {
"pin": "GP20"
},
"matrix_pins": {
"right": {
"cols": ["GP25", "GP24", "GP23", "GP22", "GP7", "GP6", "GP5", "GP4", "GP2"],
"rows": ["GP29", "GP28", "GP27", "GP26", "GP11", "GP3"]
}
},
"serial": {
"driver": "vendor"
},
"transport": {
"sync": {
"indicators": true,
"layer_state": true,
"matrix_state": true
}
}
},
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x0014",
"vid": "0x4552"
},
"ws2812": {
"driver": "vendor",
"pin": "GP17"
},
"layouts": {
"LAYOUT_all": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 2], "x": 1.5, "y": 0},
{"matrix": [0, 3], "x": 2.5, "y": 0},
{"matrix": [0, 4], "x": 3.5, "y": 0},
{"matrix": [0, 5], "x": 4.5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [6, 0], "x": 9.5, "y": 0},
{"matrix": [6, 1], "x": 10.5, "y": 0},
{"matrix": [6, 2], "x": 12, "y": 0},
{"matrix": [6, 3], "x": 13, "y": 0},
{"matrix": [6, 4], "x": 14, "y": 0},
{"matrix": [6, 5], "x": 15, "y": 0},
{"matrix": [6, 7], "x": 16.5, "y": 0},
{"matrix": [6, 8], "x": 17.75, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"matrix": [1, 2], "x": 2, "y": 1.25},
{"matrix": [1, 3], "x": 3, "y": 1.25},
{"matrix": [1, 4], "x": 4, "y": 1.25},
{"matrix": [1, 5], "x": 5, "y": 1.25},
{"matrix": [1, 6], "x": 6, "y": 1.25},
{"matrix": [1, 7], "x": 7, "y": 1.25},
{"matrix": [7, 0], "x": 9.5, "y": 1.25},
{"matrix": [7, 1], "x": 10.5, "y": 1.25},
{"matrix": [7, 2], "x": 11.5, "y": 1.25},
{"matrix": [7, 3], "x": 12.5, "y": 1.25},
{"matrix": [7, 4], "x": 13.5, "y": 1.25},
{"matrix": [7, 5], "x": 14.5, "y": 1.25},
{"matrix": [7, 6], "x": 15.5, "y": 1.25},
{"matrix": [7, 7], "x": 16.5, "y": 1.25},
{"matrix": [7, 8], "x": 17.75, "y": 1.25},
{"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 2.25},
{"matrix": [2, 2], "x": 2.5, "y": 2.25},
{"matrix": [2, 3], "x": 3.5, "y": 2.25},
{"matrix": [2, 4], "x": 4.5, "y": 2.25},
{"matrix": [2, 5], "x": 5.5, "y": 2.25},
{"matrix": [2, 6], "x": 6.5, "y": 2.25},
{"matrix": [8, 0], "x": 9, "y": 2.25},
{"matrix": [8, 1], "x": 10, "y": 2.25},
{"matrix": [8, 2], "x": 11, "y": 2.25},
{"matrix": [8, 3], "x": 12, "y": 2.25},
{"matrix": [8, 4], "x": 13, "y": 2.25},
{"matrix": [8, 5], "x": 14, "y": 2.25},
{"matrix": [8, 6], "x": 15, "y": 2.25},
{"matrix": [8, 7], "x": 16, "y": 2.25, "w": 1.5},
{"matrix": [8, 8], "x": 17.75, "y": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 3.25},
{"matrix": [3, 2], "x": 2.75, "y": 3.25},
{"matrix": [3, 3], "x": 3.75, "y": 3.25},
{"matrix": [3, 4], "x": 4.75, "y": 3.25},
{"matrix": [3, 5], "x": 5.75, "y": 3.25},
{"matrix": [3, 6], "x": 6.75, "y": 3.25},
{"matrix": [9, 0], "x": 9.25, "y": 3.25},
{"matrix": [9, 1], "x": 10.25, "y": 3.25},
{"matrix": [9, 2], "x": 11.25, "y": 3.25},
{"matrix": [9, 3], "x": 12.25, "y": 3.25},
{"matrix": [9, 4], "x": 13.25, "y": 3.25},
{"matrix": [9, 5], "x": 14.25, "y": 3.25},
{"matrix": [9, 7], "x": 15.25, "y": 3.25, "w": 2.25},
{"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
{"matrix": [4, 2], "x": 2.25, "y": 4.25},
{"matrix": [4, 3], "x": 3.25, "y": 4.25},
{"matrix": [4, 4], "x": 4.25, "y": 4.25},
{"matrix": [4, 5], "x": 5.25, "y": 4.25},
{"matrix": [4, 6], "x": 6.25, "y": 4.25},
{"matrix": [10, 0], "x": 8.75, "y": 4.25},
{"matrix": [10, 1], "x": 9.75, "y": 4.25},
{"matrix": [10, 2], "x": 10.75, "y": 4.25},
{"matrix": [10, 3], "x": 11.75, "y": 4.25},
{"matrix": [10, 4], "x": 12.75, "y": 4.25},
{"matrix": [10, 5], "x": 13.75, "y": 4.25},
{"matrix": [10, 6], "x": 14.75, "y": 4.25, "w": 1.75},
{"matrix": [10, 7], "x": 16.75, "y": 4.5},
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
{"matrix": [5, 1], "x": 1.5, "y": 5.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 5], "x": 4.75, "y": 5.5, "w": 2.25},
{"matrix": [5, 6], "x": 7, "y": 5.5},
{"matrix": [11, 2], "x": 9.5, "y": 5.5, "w": 2.75},
{"matrix": [11, 4], "x": 13, "y": 5.25, "w": 1.5},
{"matrix": [11, 5], "x": 14.5, "y": 5.25},
{"matrix": [11, 6], "x": 15.75, "y": 5.5},
{"matrix": [11, 7], "x": 16.75, "y": 5.5},
{"matrix": [11, 8], "x": 17.75, "y": 5.5}
]
},
"LAYOUT_ansi": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 2], "x": 1.5, "y": 0},
{"matrix": [0, 3], "x": 2.5, "y": 0},
{"matrix": [0, 4], "x": 3.5, "y": 0},
{"matrix": [0, 5], "x": 4.5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [6, 0], "x": 9.5, "y": 0},
{"matrix": [6, 1], "x": 10.5, "y": 0},
{"matrix": [6, 2], "x": 12, "y": 0},
{"matrix": [6, 3], "x": 13, "y": 0},
{"matrix": [6, 4], "x": 14, "y": 0},
{"matrix": [6, 5], "x": 15, "y": 0},
{"matrix": [6, 7], "x": 16.5, "y": 0},
{"matrix": [6, 8], "x": 17.75, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"matrix": [1, 2], "x": 2, "y": 1.25},
{"matrix": [1, 3], "x": 3, "y": 1.25},
{"matrix": [1, 4], "x": 4, "y": 1.25},
{"matrix": [1, 5], "x": 5, "y": 1.25},
{"matrix": [1, 6], "x": 6, "y": 1.25},
{"matrix": [1, 7], "x": 7, "y": 1.25},
{"matrix": [7, 0], "x": 9.5, "y": 1.25},
{"matrix": [7, 1], "x": 10.5, "y": 1.25},
{"matrix": [7, 2], "x": 11.5, "y": 1.25},
{"matrix": [7, 3], "x": 12.5, "y": 1.25},
{"matrix": [7, 4], "x": 13.5, "y": 1.25},
{"matrix": [7, 5], "x": 14.5, "y": 1.25},
{"matrix": [7, 7], "x": 15.5, "y": 1.25},
{"matrix": [7, 8], "x": 17.75, "y": 1.25, "w": 2},
{"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 2.25},
{"matrix": [2, 2], "x": 2.5, "y": 2.25},
{"matrix": [2, 3], "x": 3.5, "y": 2.25},
{"matrix": [2, 4], "x": 4.5, "y": 2.25},
{"matrix": [2, 5], "x": 5.5, "y": 2.25},
{"matrix": [2, 6], "x": 6.5, "y": 2.25},
{"matrix": [8, 0], "x": 9, "y": 2.25},
{"matrix": [8, 1], "x": 10, "y": 2.25},
{"matrix": [8, 2], "x": 11, "y": 2.25},
{"matrix": [8, 3], "x": 12, "y": 2.25},
{"matrix": [8, 4], "x": 13, "y": 2.25},
{"matrix": [8, 5], "x": 14, "y": 2.25},
{"matrix": [8, 6], "x": 15, "y": 2.25},
{"matrix": [8, 7], "x": 16, "y": 2.25, "w": 1.5},
{"matrix": [8, 8], "x": 17.75, "y": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 3.25},
{"matrix": [3, 2], "x": 2.75, "y": 3.25},
{"matrix": [3, 3], "x": 3.75, "y": 3.25},
{"matrix": [3, 4], "x": 4.75, "y": 3.25},
{"matrix": [3, 5], "x": 5.75, "y": 3.25},
{"matrix": [3, 6], "x": 6.75, "y": 3.25},
{"matrix": [9, 0], "x": 9.25, "y": 3.25},
{"matrix": [9, 1], "x": 10.25, "y": 3.25},
{"matrix": [9, 2], "x": 11.25, "y": 3.25},
{"matrix": [9, 3], "x": 12.25, "y": 3.25},
{"matrix": [9, 4], "x": 13.25, "y": 3.25},
{"matrix": [9, 5], "x": 14.25, "y": 3.25},
{"matrix": [9, 7], "x": 15.25, "y": 3.25, "w": 2.25},
{"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
{"matrix": [4, 2], "x": 2.25, "y": 4.25},
{"matrix": [4, 3], "x": 3.25, "y": 4.25},
{"matrix": [4, 4], "x": 4.25, "y": 4.25},
{"matrix": [4, 5], "x": 5.25, "y": 4.25},
{"matrix": [4, 6], "x": 6.25, "y": 4.25},
{"matrix": [10, 0], "x": 8.75, "y": 4.25},
{"matrix": [10, 1], "x": 9.75, "y": 4.25},
{"matrix": [10, 2], "x": 10.75, "y": 4.25},
{"matrix": [10, 3], "x": 11.75, "y": 4.25},
{"matrix": [10, 4], "x": 12.75, "y": 4.25},
{"matrix": [10, 5], "x": 13.75, "y": 4.25},
{"matrix": [10, 6], "x": 14.75, "y": 4.25, "w": 1.75},
{"matrix": [10, 7], "x": 16.75, "y": 4.5},
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
{"matrix": [5, 1], "x": 1.5, "y": 5.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 5], "x": 4.75, "y": 5.5, "w": 2.25},
{"matrix": [5, 6], "x": 7, "y": 5.5},
{"matrix": [11, 2], "x": 9.5, "y": 5.5, "w": 2.75},
{"matrix": [11, 4], "x": 13, "y": 5.25, "w": 1.5},
{"matrix": [11, 5], "x": 14.5, "y": 5.25},
{"matrix": [11, 6], "x": 15.75, "y": 5.5},
{"matrix": [11, 7], "x": 16.75, "y": 5.5},
{"matrix": [11, 8], "x": 17.75, "y": 5.5}
]
}
}
}

View File

@@ -0,0 +1,24 @@
// Copyright 2024 Hyojin Bak (@eerraa)
// SPDX-License-Identifier: GPL-2.0-or-later
#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_F13, KC_PSCR,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, 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_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_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_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all(
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, RGB_MOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};

View File

@@ -0,0 +1,27 @@
# Tomak79H, Hotswap ver
![Tomak79H](https://i.imgur.com/yJ5n7ll.jpeg)
Ergonomics Split Keyboard powered by RP2040.
* Keyboard Maintainer: [ERA](https://github.com/eerraa)
* Hardware supported: SIRIND Tomak79
* Hardware availability: [Syryan](https://srind.mysoho.com/)
Make example for this keyboard (after setting up your build environment):
make era/sirind/tomak79h:default
Flashing example for this keyboard:
make era/sirind/tomak79h:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the 'top-left(ESC, F7)' key and plug in the keyboard.
* **Physical reset**: Short the 'RESET' and 'GND' holes twice within one second, or plug in the keyboard with the 'BOOT' and 'GND' holes shorted.
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available.

View File

@@ -0,0 +1,16 @@
// Copyright 2024 Hyojin Bak (@eerraa)
// SPDX-License-Identifier: GPL-2.0-or-later
#include "quantum.h"
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
}
if (host_keyboard_led_state().caps_lock) {
for (uint8_t i = 87; i <= 95; i++) {
rgb_matrix_set_color(i, 0, 128, 128);
}
}
return true;
}

View File

@@ -0,0 +1,69 @@
{
"manufacturer": "ScottoKeebs",
"keyboard_name": "Scotto37",
"maintainer": "joe-scotto",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP29", "GP28"],
"rows": ["GP22", "GP20", "GP23", "GP21"]
},
"processor": "RP2040",
"url": "https://scottokeebs.com",
"usb": {
"device_version": "1.0.0",
"pid": "0x0027",
"vid": "0x534B"
},
"layouts": {
"LAYOUT_3x10_7": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [1, 5], "x": 5, "y": 1},
{"matrix": [1, 6], "x": 6, "y": 1},
{"matrix": [1, 7], "x": 7, "y": 1},
{"matrix": [1, 8], "x": 8, "y": 1},
{"matrix": [1, 9], "x": 9, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2},
{"matrix": [2, 5], "x": 5, "y": 2},
{"matrix": [2, 6], "x": 6, "y": 2},
{"matrix": [2, 7], "x": 7, "y": 2},
{"matrix": [2, 8], "x": 8, "y": 2},
{"matrix": [2, 9], "x": 9, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [3, 4], "x": 4, "y": 3},
{"matrix": [3, 7], "x": 7, "y": 3},
{"matrix": [3, 8], "x": 8, "y": 3},
{"matrix": [3, 9], "x": 9, "y": 3}
]
}
}
}

View File

@@ -0,0 +1,22 @@
/*
Copyright 2024 Joe Scotto
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
// Define options
#define TAPPING_TERM 135
#define PERMISSIVE_HOLD

View File

@@ -0,0 +1,45 @@
/*
Copyright 2024 Joe Scotto
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_3x10_7(
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_BSPC,
LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), KC_ESC
),
[1] = LAYOUT_3x10_7(
KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[2] = LAYOUT_3x10_7(
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[3] = LAYOUT_3x10_7(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};

View File

@@ -0,0 +1,29 @@
# Scotto37
![Scotto37](https://i.imgur.com/WOXAGc3h.jpg)
A 37-key gasket-mounted 0.25u column-staggered keyboard with a 3u spacebar.
* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto)
* Hardware Supported: RP2040 Pro Micro
* Hardware Availability: [ScottoKeebs](https://scottokeebs.com), [Amazon](https://amazon.com), [AliExpress](https://aliexpress.com)
# Compiling
Make example for this keyboard (after setting up your build environment):
make handwired/scottokeebs/scotto37:default
Flashing example for this keyboard:
make handwired/scottokeebs/scotto37:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
# Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -0,0 +1,85 @@
{
"manufacturer": "Amund Tenstad",
"keyboard_name": "tenstad",
"maintainer": "tenstad",
"bootloader": "rp2040",
"diode_direction": "ROW2COL",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["GP29", "GP28", "GP27", "GP26", "GP15", "GP14"],
"rows": ["GP3", "GP4", "GP5", "GP6"]
},
"processor": "RP2040",
"split": {
"enabled": true,
"serial": {
"driver": "vendor"
},
"transport": {
"protocol": "serial"
}
},
"url": "https://github.com/tenstad/keyboard",
"usb": {
"device_version": "1.0.0",
"pid": "0x0000",
"vid": "0xFEED"
},
"layouts": {
"LAYOUT_split_3x6_5": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 1.35},
{"matrix": [0, 1], "x": 1, "y": 0.95},
{"matrix": [0, 2], "x": 2.35, "y": 0.35},
{"matrix": [0, 3], "x": 3.35, "y": 0},
{"matrix": [0, 4], "x": 4.65, "y": 0.4},
{"matrix": [0, 5], "x": 5.65, "y": 0.4},
{"matrix": [4, 5], "x": 12.25, "y": 0.4},
{"matrix": [4, 4], "x": 13.25, "y": 0.4},
{"matrix": [4, 3], "x": 14.55, "y": 0},
{"matrix": [4, 2], "x": 15.55, "y": 0.35},
{"matrix": [4, 1], "x": 16.9, "y": 0.95},
{"matrix": [4, 0], "x": 17.9, "y": 1.35},
{"matrix": [1, 0], "x": 0.1, "y": 2.35},
{"matrix": [1, 1], "x": 1.1, "y": 1.95},
{"matrix": [1, 2], "x": 2.4, "y": 1.35},
{"matrix": [1, 3], "x": 3.4, "y": 1},
{"matrix": [1, 4], "x": 4.65, "y": 1.4},
{"matrix": [1, 5], "x": 5.65, "y": 1.4},
{"matrix": [5, 5], "x": 12.25, "y": 1.4},
{"matrix": [5, 4], "x": 13.25, "y": 1.4},
{"matrix": [5, 3], "x": 14.5, "y": 1},
{"matrix": [5, 2], "x": 15.5, "y": 1.35},
{"matrix": [5, 1], "x": 16.8, "y": 1.95},
{"matrix": [5, 0], "x": 17.8, "y": 2.35},
{"matrix": [2, 0], "x": 0.2, "y": 3.35},
{"matrix": [2, 1], "x": 1.2, "y": 2.95},
{"matrix": [2, 2], "x": 2.45, "y": 2.35},
{"matrix": [2, 3], "x": 3.45, "y": 2},
{"matrix": [2, 4], "x": 4.65, "y": 2.4},
{"matrix": [2, 5], "x": 5.65, "y": 2.4},
{"matrix": [6, 5], "x": 12.25, "y": 2.4},
{"matrix": [6, 4], "x": 13.25, "y": 2.4},
{"matrix": [6, 3], "x": 14.45, "y": 2},
{"matrix": [6, 2], "x": 15.45, "y": 2.35},
{"matrix": [6, 1], "x": 16.7, "y": 2.95},
{"matrix": [6, 0], "x": 17.7, "y": 3.35},
{"matrix": [3, 5], "x": 6.85, "y": 3},
{"matrix": [3, 3], "x": 7.95, "y": 3.35},
{"matrix": [3, 4], "x": 5.6, "y": 3.95},
{"matrix": [3, 1], "x": 6.7, "y": 4.1},
{"matrix": [3, 2], "x": 7.8, "y": 4.45},
{"matrix": [7, 3], "x": 9.95, "y": 3.35},
{"matrix": [7, 5], "x": 11.05, "y": 3},
{"matrix": [7, 2], "x": 10.1, "y": 4.45},
{"matrix": [7, 1], "x": 11.2, "y": 4.1},
{"matrix": [7, 4], "x": 12.3, "y": 3.95}
]
}
}
}

View File

@@ -0,0 +1,55 @@
{
"keyboard": "handwired/tenstad",
"keymap": "default",
"layout": "LAYOUT_split_3x6_5",
"layers": [
[
"KC_ESC",
"KC_Q",
"KC_W",
"KC_E",
"KC_R",
"KC_T",
"KC_Y",
"KC_U",
"KC_I",
"KC_O",
"KC_P",
"KC_RBRC",
"KC_TAB",
"KC_A",
"KC_S",
"KC_D",
"KC_F",
"KC_G",
"KC_H",
"KC_J",
"KC_K",
"KC_L",
"KC_GRV",
"KC_QUOT",
"KC_LCTL",
"KC_Z",
"KC_X",
"KC_C",
"KC_V",
"KC_B",
"KC_N",
"KC_M",
"KC_COMM",
"KC_DOT",
"KC_MINS",
"KC_RSFT",
"KC_NO",
"KC_NO",
"KC_TAB",
"KC_NO",
"KC_NO",
"KC_DEL",
"KC_NO",
"KC_BSPC",
"KC_SPC",
"KC_ENT"
]
]
}

View File

@@ -0,0 +1,19 @@
# tenstad
![tenstad](https://i.imgur.com/Lh4TAUF.png)
[tenstad/keyboard](https://github.com/tenstad/keyboard) - hand-soldered ergonomic split 3x6 keyboard with 5 thumb keys
* Keyboard Maintainer: [Amund Tenstad](https://github.com/tenstad)
* Hardware Supported: RP2040 Zero
* Hardware Availability: [List of Parts](https://github.com/tenstad/keyboard/blob/main/README.md#parts) from [AliExpress](https://aliexpress.com)
Make example for this keyboard (after setting up your build environment):
make handwired/tenstad:default
Flashing example for this keyboard:
make handwired/tenstad: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).

View File

@@ -0,0 +1,137 @@
{
"keyboard_name": "Buff75",
"processor": "STM32F103",
"bootloader": "stm32duino",
"manufacturer": "HereVoLand",
"url": "",
"maintainer": "Here VoLand @Vem",
"usb": {
"vid": "0xB727",
"pid": "0xB727",
"device_version": "0.0.1"
},
"features": {
"bootmagic": true,
"mousekey": true,
"extrakey": true,
"nkro": true,
"rgblight": true
},
"rgblight": {
"led_count": 1,
"brightness_steps": 8,
"saturation_steps": 8,
"sleep": true,
"animations": {
"breathing": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"snake": true,
"knight": true,
"christmas": true,
"static_gradient": true,
"alternating": true,
"twinkle": true
}
},
"ws2812": {
"pin": "B2"
},
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": ["B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A8", "B15", "B14", "B13", "B12", "A3", "A4" ],
"rows": ["A5", "B10", "B1", "B0", "A7", "A6"]
},
"layouts": {
"LAYOUT": {
"layout": [
{"label":"Esc", "matrix": [0,0], "x":0, "y":0},
{"label":"F1", "matrix": [0,1], "x":1.5, "y":0},
{"label":"F2", "matrix": [0,2], "x":2.5, "y":0},
{"label":"F3", "matrix": [0,3], "x":3.5, "y":0},
{"label":"F4", "matrix": [0,4], "x":4.5, "y":0},
{"label":"F5", "matrix": [0,6], "x":6, "y":0},
{"label":"F6", "matrix": [0,7], "x":7, "y":0},
{"label":"F7", "matrix": [0,8], "x":8, "y":0},
{"label":"F8", "matrix": [0,9], "x":9, "y":0},
{"label":"F9", "matrix": [0,10], "x":10.5, "y":0},
{"label":"F10", "matrix": [0,11], "x":11.5, "y":0},
{"label":"F11", "matrix": [0,12], "x":12.5, "y":0},
{"label":"F12", "matrix": [0,13], "x":13.5, "y":0},
{"label":"Home", "matrix": [0,14], "x":15, "y":0},
{"label":"`~", "matrix": [1,0], "x":0, "y":1.25},
{"label":"1!", "matrix": [1,1], "x":1, "y":1.25},
{"label":"2@", "matrix": [1,2], "x":2, "y":1.25},
{"label":"3#", "matrix": [1,3], "x":3, "y":1.25},
{"label":"4$", "matrix": [1,4], "x":4, "y":1.25},
{"label":"5%", "matrix": [1,5], "x":5, "y":1.25},
{"label":"6^", "matrix": [1,6], "x":6, "y":1.25},
{"label":"7&", "matrix": [1,7], "x":7, "y":1.25},
{"label":"8*", "matrix": [1,8], "x":8, "y":1.25},
{"label":"9(", "matrix": [1,9], "x":9, "y":1.25},
{"label":"0)", "matrix": [1,10], "x":10, "y":1.25},
{"label":"-_", "matrix": [1,11], "x":11, "y":1.25},
{"label":"=+", "matrix": [1,12], "x":12, "y":1.25},
{"label":"Backspace", "matrix": [1,13], "x":13, "y":1.25},
{"label":"Page Up", "matrix": [1,14], "x":15, "y":1.25},
{"label":"Tab", "matrix": [2,0], "x":0, "y":2.25, "w":1.5},
{"label":"Q", "matrix": [2,1], "x":1.5, "y":2.25},
{"label":"W", "matrix": [2,2], "x":2.5, "y":2.25},
{"label":"E", "matrix": [2,3], "x":3.5, "y":2.25},
{"label":"R", "matrix": [2,4], "x":4.5, "y":2.25},
{"label":"T", "matrix": [2,5], "x":5.5, "y":2.25},
{"label":"Y", "matrix": [2,6], "x":6.5, "y":2.25},
{"label":"U", "matrix": [2,7], "x":7.5, "y":2.25},
{"label":"I", "matrix": [2,8], "x":8.5, "y":2.25},
{"label":"O", "matrix": [2,9], "x":9.5, "y":2.25},
{"label":"P", "matrix": [2,10], "x":10.5, "y":2.25},
{"label":"[", "matrix": [2,11], "x":11.5, "y":2.25},
{"label":"]", "matrix": [2,12], "x":12.5, "y":2.25},
{"label":"\\", "matrix": [2,13], "x":13.5, "y":2.25, "w":1.5},
{"label":"Page Down", "matrix": [2,14], "x":15, "y":2.25},
{"label":"Caps Lock", "matrix": [3,0], "x":0, "y":3.25, "w":1.75},
{"label":"A", "matrix": [3,1], "x":1.75, "y":3.25},
{"label":"S", "matrix": [3,2], "x":2.75, "y":3.25},
{"label":"D", "matrix": [3,3], "x":3.75, "y":3.25},
{"label":"F", "matrix": [3,4], "x":4.75, "y":3.25},
{"label":"G", "matrix": [3,5], "x":5.75, "y":3.25},
{"label":"H", "matrix": [3,6], "x":6.75, "y":3.25},
{"label":"J", "matrix": [3,7], "x":7.75, "y":3.25},
{"label":"K", "matrix": [3,8], "x":8.75, "y":3.25},
{"label":"L", "matrix": [3,9], "x":9.75, "y":3.25},
{"label":";", "matrix": [3,10], "x":10.75, "y":3.25},
{"label":"'", "matrix": [3,11], "x":11.75, "y":3.25},
{"label":"Enter", "matrix": [3,13], "x":12.75, "y":3.25, "w":2.25},
{"label":"End", "matrix": [3,14], "x":15, "y":3.25},
{"label":"Shift", "matrix": [4,0], "x":0, "y":4.25, "w":2.25},
{"label":"Z", "matrix": [4,2], "x":2.25, "y":4.25},
{"label":"X", "matrix": [4,3], "x":3.25, "y":4.25},
{"label":"C", "matrix": [4,4], "x":4.25, "y":4.25},
{"label":"V", "matrix": [4,5], "x":5.25, "y":4.25},
{"label":"B", "matrix": [4,6], "x":6.25, "y":4.25},
{"label":"N", "matrix": [4,7], "x":7.25, "y":4.25},
{"label":"M", "matrix": [4,8], "x":8.25, "y":4.25},
{"label":",", "matrix": [4,9], "x":9.25, "y":4.25},
{"label":".", "matrix": [4,10], "x":10.25, "y":4.25},
{"label":"/", "matrix": [4,11], "x":11.25, "y":4.25},
{"label":"Shift", "matrix": [4,12], "x":12.25, "y":4.25, "w":1.75},
{"label":"Up", "matrix": [4,13], "x":14, "y":4.25},
{"label":"End", "matrix": [4,14], "x":15, "y":4.25},
{"label":"Ctrl", "matrix": [5,0], "x":0, "y":5.25, "w":1.25},
{"label":"Win", "matrix": [5,1], "x":1.25, "y":5.25, "w":1.25},
{"label":"Alt", "matrix": [5,2], "x":2.5, "y":5.25, "w":1.25},
{"label":"Space", "matrix": [5,6], "x":3.75, "y":5.25, "w":6.25},
{"label":"Alt", "matrix": [5,10], "x":10, "y":5.25, "w":1.25},
{"label":"Fn", "matrix": [5,11], "x":11.25, "y":5.25, "w":1.25},
{"label":"Left", "matrix": [5,12], "x":13, "y":5.25},
{"label":"Down", "matrix": [5,13], "x":14, "y":5.25},
{"label":"Right", "matrix": [5,14], "x":15, "y":5.25}
]
}
}
}

View File

@@ -0,0 +1,36 @@
/* Copyright 2024 楽HereVoLand @Vem
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include 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_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_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_DEL,
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_RIGHT
),
[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_PSCR,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS,
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};

View File

@@ -0,0 +1,18 @@
# Matrix Diagram for Buff75
```
┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┐
│00 │ │01 │02 │03 │04 │ │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 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D│2E │
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬─────┴──┼───┤
│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3E │
├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
│40 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │4E │
├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴───┴┬─┬───┼───┼───┤
│50 │51 │52 │56 │5A │ 5B │ │5C │5D |5E |
└────┴────┴────┴────────────────────────┴───┴─────┘ └───┴───┘───┘
```

View File

@@ -0,0 +1,25 @@
# Buff75
![Buff75](https://imgur.com/pQfzIZr.jpg)
An 75%/TenKeyLess sized keyboard with 1 RGB.
* Keyboard Maintainer: [HereVoLand](https://github.com/Vem-596)
* Hardware Supported: buff75
* Hardware Availability: [BUFF Customer-Keyboard](https://shop107132374.taobao.com)
Make example for this keyboard (after setting up your build environment):
make herevoland/buff75:default
Flashing example for this keyboard:
make herevoland/buff75:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 2 ways:
- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key which is Escape in this keyboard) and plug in the keyboard
- **Keycode in layout**: Press the key mapped to `QK_BOOT`

View File

@@ -20,12 +20,12 @@ led_config_t g_led_config = {
{ 13, 12, 11, 10, 9, 8, 7 },
{ 0, 1, 2, 3, 4, 5, 6 },
/*right*/
{ NO_LED, 72, 71, 70, 73, 75, 74 },
{ 65, 66, 67, 68, 69, NO_LED, NO_LED },
{ 64, 63, 62, 61, 60, 59, 58 },
{ 52, 53, 54, 55, 56, 57, NO_LED },
{ 51, 50, 49, 48, 47, 46, 45 },
{ 38, 39, 40, 41, 42, 43, 44 }
{ NO_LED, 77, 76, 75, 78, 80, 79 },
{ 70, 71, 72, 73, 74, NO_LED, NO_LED },
{ 69, 68, 67, 66, 65, 64, 63 },
{ 57, 58, 59, 60, 61, 62, NO_LED },
{ 56, 55, 54, 53, 52, 51, 50 },
{ 43, 44, 45, 46, 47, 48, 49 }
},
{
// LED Index to Physical Position
@@ -60,7 +60,7 @@ led_config_t g_led_config = {
#ifdef OLED_ENABLE
# define UNC (94 + 0x21)
# define UNC (' ')
typedef struct _master_to_slave_t {
int cur_alp_index;
char current_alp[7];
@@ -115,8 +115,8 @@ void render_layer_helper_fun(uint8_t start_line, const char *data, uint8_t gap_w
for (j = 0; j < l; ++j) { // font index
for (k = 0; k < 12; ++k) { // font byte index
// base + logo_w(32) + gap_w(12) +l*font_w(12)+current_byte_index
oled_write_raw_byte(pgm_read_byte(&ext_big_font[pgm_read_byte(&data[j]) - 0x21][k]), start_line * 2 * 128 + 32 + gap_w + j * 12 + k);
oled_write_raw_byte(pgm_read_byte(&ext_big_font[pgm_read_byte(&data[j]) - 0x21][k + 12]), start_line * 2 * 128 + 128 + 32 + gap_w + j * 12 + k);
oled_write_raw_byte(pgm_read_byte(&ext_big_font[pgm_read_byte(&data[j]) - 0x20][k]), start_line * 2 * 128 + 32 + gap_w + j * 12 + k);
oled_write_raw_byte(pgm_read_byte(&ext_big_font[pgm_read_byte(&data[j]) - 0x20][k + 12]), start_line * 2 * 128 + 128 + 32 + gap_w + j * 12 + k);
}
}
for (j = 0; j < gap_w; ++j) {
@@ -151,8 +151,8 @@ void render_cur_input_helper_fun(uint8_t start_line, const char *data, uint8_t g
for (j = 0; j < l; ++j) { // font index
for (k = 0; k < 12; ++k) { // font byte index
// base + logo_w(0) + gap_w(12) +l*font_w(12)+current_byte_index
oled_write_raw_byte(pgm_read_byte(&ext_big_font[data[j] - 0x21][k]), start_line * 2 * 128 + gap_w + j * 12 + k);
oled_write_raw_byte(pgm_read_byte(&ext_big_font[data[j] - 0x21][12 + k]), start_line * 2 * 128 + 128 + gap_w + j * 12 + k);
oled_write_raw_byte(pgm_read_byte(&ext_big_font[data[j] - 0x20][k]), start_line * 2 * 128 + gap_w + j * 12 + k);
oled_write_raw_byte(pgm_read_byte(&ext_big_font[data[j] - 0x20][12 + k]), start_line * 2 * 128 + 128 + gap_w + j * 12 + k);
}
}
for (j = 0; j < gap_w; ++j) {

View File

@@ -7,116 +7,116 @@
#include "progmem.h"
/*
!(0) "(1) #(2) $(3) %(4) &(5) '(6) ((7)
)(8) *(9) +(10) ,(11) -(12) .(13) /(14) 0(15)
1(16) 2(17) 3(18) 4(19) 5(20) 6(21) 7(22) 8(23)
9(24) :(25) ;(26) <(27) =(28) >(29) ?(30) @(31)
A(32) B(33) C(34) D(35) E(36) F(37) G(38) H(39)
I(40) J(41) K(42) L(43) M(44) N(45) O(46) P(47)
Q(48) R(49) S(50) T(51) U(52) V(53) W(54) X(55)
Y(56) Z(57) [(58) \(59) ](60) ^(61) _(62) `(63)
a(64) b(65) c(66) d(67) e(68) f(69) g(70) h(71)
i(72) j(73) k(74) l(75) m(76) n(77) o(78) p(79)
q(80) r(81) s(82) t(83) u(84) v(85) w(86) x(87)
y(88) z(89) {(90) |(91) }(92) ~(93) (94)
(0) !(1) "(2) #(3) $(4) %(5) &(6) '(7) ((8)
)(9) *(10) +(11) ,(12) -(13) .(14) /(15) 0(16)
1(17) 2(18) 3(19) 4(20) 5(21) 6(22) 7(23) 8(24)
9(25) :(26) ;(27) <(28) =(29) >(30) ?(31) @(32)
A(33) B(34) C(35) D(36) E(37) F(38) G(39) H(40)
I(41) J(42) K(43) L(44) M(45) N(46) O(47) P(48)
Q(49) R(50) S(51) T(52) U(53) V(54) W(55) X(56)
Y(57) Z(58) [(59) \(60) ](61) ^(62) _(63) `(64)
a(65) b(66) c(67) d(68) e(69) f(70) g(71) h(72)
i(73) j(74) k(75) l(76) m(77) n(78) o(79) p(80)
q(81) r(82) s(83) t(84) u(85) v(86) w(87) x(88)
y(89) z(90) {(91) |(92) }(93) ~(94)
*/
static const unsigned char ext_big_font[95][24] PROGMEM = {
{0x00,0x00,0x00,0x00,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1B,0x1B,0x1B,0x1B,0x00,0x00,0x00,0x00},/*"!",0*/
{0x00,0x00,0x00,0x18,0xF8,0x18,0x00,0x18,0xF8,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*""",1*/
{0x00,0x00,0x60,0x60,0xFE,0xFE,0x60,0xFE,0xFE,0x60,0x00,0x00,0x00,0x00,0x06,0x7F,0x7F,0x06,0x7F,0x7F,0x06,0x06,0x00,0x00},/*"#",2*/
{0x00,0x00,0x00,0xF0,0xF8,0x9E,0x9E,0xB8,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0xF9,0xF9,0x1F,0x0F,0x00,0x00,0x00},/*"$",3*/
{0x00,0x00,0x38,0x44,0xC4,0xC4,0xB8,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x0E,0x11,0x11,0x11,0x0E,0x00,0x00,0x00},/*"%",4*/
{0x00,0x00,0x60,0xE0,0xB0,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x00,0x0E,0x0F,0x19,0x19,0x1B,0x1E,0x0E,0x0F,0x1B,0x00,0x00},/*"&",5*/
{0x00,0x00,0x00,0x00,0x00,0x18,0xF8,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",6*/
{0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0x3C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1F,0x78,0x60,0x00,0x00,0x00},/*"(",7*/
{0x00,0x00,0x0C,0x3C,0xF0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x78,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x00},/*")",8*/
{0x00,0x00,0x30,0xB0,0xF0,0xFC,0xFC,0xF0,0xB0,0x30,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x00},/*"*",9*/
{0x00,0x80,0x80,0x80,0x80,0xF8,0xF8,0x80,0x80,0x80,0x80,0x00,0x00,0x01,0x01,0x01,0x01,0x1F,0x1F,0x01,0x01,0x01,0x01,0x00},/*"+",10*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x38,0x08,0x00,0x00,0x00,0x00,0x00},/*",",11*/
{0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00},/*"-",12*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x00,0x00,0x00,0x00},/*".",13*/
{0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0x78,0x1E,0x06,0x00,0x00,0x00,0x00,0x60,0x78,0x1E,0x07,0x01,0x00,0x00,0x00,0x00,0x00},/*"/",14*/
{0x00,0x00,0xF0,0xF8,0x1C,0x0C,0x1C,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x1C,0x0F,0x07,0x00,0x00,0x00},/*"0",15*/
{0x00,0x00,0x18,0x18,0x18,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00},/*"1",16*/
{0x00,0x00,0x30,0x38,0x0C,0x0C,0x8C,0xF8,0x70,0x00,0x00,0x00,0x00,0x00,0x18,0x1C,0x1E,0x1B,0x19,0x18,0x18,0x00,0x00,0x00},/*"2",17*/
{0x00,0x00,0x18,0x1C,0xCC,0xCC,0xCC,0xFC,0x38,0x00,0x00,0x00,0x00,0x0C,0x1C,0x18,0x18,0x18,0x19,0x0F,0x07,0x00,0x00,0x00},/*"3",18*/
{0x00,0x00,0xC0,0xE0,0x78,0x1C,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x1B,0x1B,0x1F,0x1F,0x1B,0x00,0x00,0x00},/*"4",19*/
{0x00,0x00,0xFC,0xFC,0xCC,0xCC,0xCC,0x8C,0x00,0x00,0x00,0x00,0x00,0x0C,0x1C,0x18,0x18,0x18,0x18,0x0F,0x07,0x00,0x00,0x00},/*"5",20*/
{0x00,0x00,0xE0,0xF0,0xB8,0xDC,0xCC,0xCC,0x8C,0x00,0x00,0x00,0x00,0x00,0x07,0x0F,0x19,0x18,0x18,0x1F,0x0F,0x00,0x00,0x00},/*"6",21*/
{0x00,0x00,0x1C,0x1C,0x0C,0x0C,0xCC,0xFC,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1F,0x03,0x00,0x00,0x00,0x00},/*"7",22*/
{0x00,0x00,0x38,0xFC,0xCC,0xCC,0xCC,0xFC,0x38,0x00,0x00,0x00,0x00,0x00,0x0F,0x1F,0x18,0x18,0x18,0x1F,0x0F,0x00,0x00,0x00},/*"8",23*/
{0x00,0x00,0xF8,0xFC,0x8C,0x8C,0xCC,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x18,0x19,0x19,0x1D,0x0E,0x07,0x03,0x00,0x00,0x00},/*"9",24*/
{0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x00,0x00,0x00,0x00},/*":",25*/
{0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x18,0x08,0x00,0x00,0x00,0x00,0x00},/*";",26*/
{0x00,0x00,0x00,0x80,0x80,0xC0,0x60,0x60,0x30,0x30,0x00,0x00,0x00,0x01,0x01,0x03,0x03,0x06,0x0C,0x0C,0x18,0x18,0x00,0x00},/*"<",27*/
{0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x00},/*"=",28*/
{0x00,0x30,0x30,0x60,0x60,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x0C,0x0C,0x06,0x03,0x03,0x01,0x01,0x00,0x00},/*">",29*/
{0x00,0x00,0x70,0x78,0x18,0x18,0x98,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1B,0x1B,0x01,0x01,0x00,0x00,0x00,0x00},/*"?",30*/
{0x00,0x00,0xF0,0x08,0xC4,0x24,0x24,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x10,0x21,0x22,0x22,0x13,0x00,0x00,0x00,0x00},/*"@",31*/
{0x00,0x00,0x18,0x98,0xF8,0x38,0x38,0xF0,0x80,0x00,0x00,0x00,0x00,0x18,0x1C,0x1F,0x1B,0x03,0x03,0x1B,0x1F,0x1C,0x18,0x00},/*"A",32*/
{0x00,0x18,0xF8,0xF8,0x98,0x98,0x98,0xF8,0x70,0x00,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x19,0x19,0x19,0x1F,0x0E,0x00,0x00},/*"B",33*/
{0x00,0xE0,0xF0,0x38,0x18,0x18,0x18,0x10,0x78,0x78,0x00,0x00,0x00,0x07,0x0F,0x0C,0x18,0x18,0x18,0x18,0x0C,0x0C,0x00,0x00},/*"C",34*/
{0x00,0x18,0xF8,0xF8,0x18,0x18,0x18,0x38,0xF0,0xE0,0x00,0x00,0x00,0x18,0x1F,0x1F,0x18,0x18,0x18,0x1C,0x0F,0x07,0x00,0x00},/*"D",35*/
{0x00,0x18,0xF8,0xF8,0x98,0xD8,0xD8,0x18,0x78,0x78,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x1B,0x1B,0x18,0x1E,0x1E,0x00,0x00},/*"E",36*/
{0x00,0x18,0xF8,0xF8,0x98,0xD8,0xD8,0x18,0x78,0x78,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x1B,0x1B,0x00,0x00,0x00,0x00,0x00},/*"F",37*/
{0x00,0xE0,0xF0,0x38,0x18,0x18,0x10,0x38,0x38,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x1B,0x1B,0x1F,0x0F,0x03,0x00,0x00},/*"G",38*/
{0x00,0x18,0xF8,0xF8,0x98,0x80,0x98,0xF8,0xF8,0x18,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x01,0x19,0x1F,0x1F,0x18,0x00,0x00},/*"H",39*/
{0x00,0x00,0x18,0x18,0x18,0xF8,0xF8,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00},/*"I",40*/
{0x00,0x00,0x00,0x00,0x18,0x18,0x18,0xF8,0xF8,0x18,0x18,0x00,0x00,0x00,0x0F,0x0F,0x18,0x18,0x18,0x0F,0x0F,0x00,0x00,0x00},/*"J",41*/
{0x00,0x18,0xF8,0xF8,0x98,0xC0,0x78,0x38,0x18,0x18,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x01,0x07,0x1E,0x18,0x18,0x00,0x00},/*"K",42*/
{0x00,0x18,0x18,0xF8,0xF8,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x1F,0x1F,0x00,0x00},/*"L",43*/
{0x18,0xF8,0xF8,0x38,0xE0,0x00,0xE0,0x38,0xF8,0xF8,0x18,0x00,0x18,0x1F,0x1F,0x18,0x19,0x03,0x19,0x18,0x1F,0x1F,0x18,0x00},/*"M",44*/
{0x00,0x18,0xF8,0xF8,0xF8,0xE0,0x18,0xF8,0xF8,0x18,0x00,0x00,0x00,0x18,0x1F,0x1F,0x18,0x03,0x1F,0x1F,0x1F,0x00,0x00,0x00},/*"N",45*/
{0x00,0xC0,0xF0,0x30,0x18,0x18,0x18,0x30,0xF0,0xC0,0x00,0x00,0x00,0x03,0x0F,0x0C,0x18,0x18,0x18,0x0C,0x0F,0x03,0x00,0x00},/*"O",46*/
{0x00,0x18,0xF8,0xF8,0x98,0x98,0x98,0xF8,0xF0,0x00,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x19,0x19,0x01,0x00,0x00,0x00,0x00},/*"P",47*/
{0x00,0xC0,0xF0,0x30,0x18,0x18,0x18,0x30,0xF0,0xC0,0x00,0x00,0x00,0x03,0x0F,0xCC,0xF8,0x78,0x78,0xCC,0xEF,0x63,0x00,0x00},/*"Q",48*/
{0x00,0x18,0xF8,0xF8,0x98,0x98,0x98,0xF8,0x70,0x00,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x1B,0x07,0x0E,0x1C,0x18,0x00,0x00},/*"R",49*/
{0x00,0x00,0x70,0xF8,0x98,0x98,0x90,0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x09,0x19,0x19,0x1F,0x0E,0x00,0x00,0x00},/*"S",50*/
{0x00,0xF8,0xF8,0x18,0x18,0xF8,0xF8,0x18,0x18,0xF8,0xF8,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x00,0x00,0x00},/*"T",51*/
{0x00,0x18,0xF8,0xF8,0x18,0x00,0x18,0xF8,0xF8,0x18,0x00,0x00,0x00,0x00,0x07,0x0F,0x18,0x18,0x18,0x0F,0x07,0x00,0x00,0x00},/*"U",52*/
{0x00,0x18,0x78,0xF8,0x98,0x00,0x98,0xF8,0x78,0x18,0x00,0x00,0x00,0x00,0x00,0x03,0x1F,0x18,0x1F,0x03,0x00,0x00,0x00,0x00},/*"V",53*/
{0x18,0xF8,0xF8,0x18,0xD8,0xC0,0xD8,0x18,0xF8,0xF8,0x18,0x00,0x00,0x01,0x1F,0x1C,0x1F,0x01,0x1F,0x1C,0x1F,0x01,0x00,0x00},/*"W",54*/
{0x00,0x18,0x38,0x78,0xD8,0x80,0xD8,0x78,0x38,0x18,0x00,0x00,0x00,0x18,0x1C,0x1E,0x1B,0x01,0x1B,0x1E,0x1C,0x18,0x00,0x00},/*"X",55*/
{0x00,0x18,0x38,0x78,0xD8,0x80,0x80,0xD8,0x78,0x38,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x00,0x00,0x00},/*"Y",56*/
{0x00,0x00,0x78,0x78,0x18,0x98,0xD8,0x78,0x38,0x00,0x00,0x00,0x00,0x00,0x1C,0x1E,0x1B,0x19,0x18,0x1E,0x1E,0x00,0x00,0x00},/*"Z",57*/
{0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x60,0x60,0x00,0x00,0x00},/*"[",58*/
{0x00,0x00,0x06,0x1E,0x78,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x1E,0x78,0x60,0x00,0x00},/*"\",59*/
{0x00,0x00,0x00,0x0C,0x0C,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00},/*"]",60*/
{0x00,0x00,0x00,0x60,0x70,0x18,0x0C,0x18,0x70,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"^",61*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"_",62*/
{0x00,0x00,0x00,0x00,0x02,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",63*/
{0x00,0x00,0x00,0x60,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x0E,0x1F,0x1B,0x1B,0x0B,0x1F,0x1F,0x18,0x00,0x00},/*"a",64*/
{0x00,0x0C,0xFC,0xFC,0xC0,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x18,0x1F,0x1F,0x0C,0x18,0x18,0x1C,0x0F,0x07,0x00,0x00},/*"b",65*/
{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0xC0,0xE0,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x18,0x18,0x18,0x0C,0x00,0x00},/*"c",66*/
{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0xCC,0xFC,0xFC,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x18,0x0C,0x1F,0x1F,0x18,0x00},/*"d",67*/
{0x00,0x00,0x80,0xC0,0x60,0x60,0x60,0x60,0xC0,0x80,0x00,0x00,0x00,0x00,0x07,0x0F,0x1B,0x1B,0x1B,0x1B,0x1B,0x0B,0x00,0x00},/*"e",68*/
{0x00,0x00,0x60,0x60,0xF8,0xFC,0x6C,0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00,0x00},/*"f",69*/
{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0xC0,0xE0,0xE0,0x60,0x00,0x00,0x00,0x07,0x0F,0xDC,0xD8,0xD8,0xCC,0xFF,0x7F,0x00,0x00},/*"g",70*/
{0x00,0x0C,0xFC,0xFC,0xC0,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,0x18,0x1F,0x1F,0x18,0x00,0x00,0x18,0x1F,0x1F,0x18,0x00},/*"h",71*/
{0x00,0x00,0x00,0x60,0x60,0xEC,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00},/*"i",72*/
{0x00,0x00,0x60,0x60,0x60,0x6C,0x6C,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xFF,0x7F,0x00,0x00,0x00},/*"j",73*/
{0x00,0x00,0x0C,0xFC,0xFC,0x80,0xE0,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x18,0x1F,0x1F,0x03,0x06,0x1C,0x18,0x18,0x00,0x00},/*"k",74*/
{0x00,0x00,0x00,0x0C,0x0C,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00},/*"l",75*/
{0x00,0x60,0xE0,0xE0,0x60,0xE0,0xC0,0x60,0xE0,0xC0,0x00,0x00,0x00,0x18,0x1F,0x1F,0x00,0x1F,0x1F,0x00,0x1F,0x1F,0x18,0x00},/*"m",76*/
{0x00,0x60,0xE0,0xE0,0xC0,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,0x18,0x1F,0x1F,0x18,0x00,0x00,0x18,0x1F,0x1F,0x18,0x00},/*"n",77*/
{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x18,0x1C,0x0F,0x07,0x00,0x00},/*"o",78*/
{0x00,0x60,0xE0,0xE0,0xC0,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0xC0,0xFF,0xFF,0xCC,0xD8,0x18,0x1C,0x0F,0x07,0x00,0x00},/*"p",79*/
{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0xC0,0xE0,0xE0,0x60,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0xD8,0xCC,0xFF,0xFF,0xC0,0x00},/*"q",80*/
{0x00,0x00,0x60,0x60,0xE0,0xE0,0xC0,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00,0x00},/*"r",81*/
{0x00,0x00,0xC0,0xE0,0x60,0x60,0x60,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x1D,0x1D,0x1B,0x1B,0x1B,0x1E,0x0E,0x00,0x00,0x00},/*"s",82*/
{0x00,0x00,0x60,0x60,0xFC,0xFC,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x1F,0x18,0x18,0x18,0x0C,0x00,0x00},/*"t",83*/
{0x00,0x60,0xE0,0xE0,0x00,0x00,0x00,0x60,0xE0,0xE0,0x00,0x00,0x00,0x00,0x0F,0x1F,0x18,0x18,0x18,0x0C,0x1F,0x1F,0x18,0x00},/*"u",84*/
{0x00,0x60,0xE0,0xE0,0x60,0x00,0x60,0xE0,0xE0,0x60,0x00,0x00,0x00,0x00,0x00,0x07,0x1F,0x18,0x1F,0x07,0x00,0x00,0x00,0x00},/*"v",85*/
{0x60,0xE0,0xE0,0x60,0x00,0x80,0x00,0x60,0xE0,0xE0,0x60,0x00,0x00,0x01,0x1F,0x1E,0x07,0x03,0x07,0x1E,0x1F,0x01,0x00,0x00},/*"w",86*/
{0x00,0x00,0x60,0xE0,0xE0,0x00,0x00,0xE0,0xE0,0x60,0x00,0x00,0x00,0x00,0x18,0x1C,0x1F,0x03,0x03,0x1F,0x1C,0x18,0x00,0x00},/*"x",87*/
{0x00,0x60,0xE0,0xE0,0x60,0x00,0x00,0x60,0xE0,0xE0,0x60,0x00,0x00,0xC0,0xC0,0xC1,0xE7,0xFE,0xDC,0xC7,0x03,0x00,0x00,0x00},/*"y",88*/
{0x00,0x00,0xE0,0xE0,0x60,0x60,0x60,0xE0,0xE0,0x60,0x00,0x00,0x00,0x00,0x18,0x1C,0x1E,0x1B,0x1B,0x19,0x1C,0x1C,0x00,0x00},/*"z",89*/
{0x00,0x00,0x00,0x00,0x00,0xF8,0xFC,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x3F,0x7E,0x60,0x00,0x00,0x00,0x00},/*"{",90*/
{0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00},/*"|",91*/
{0x00,0x00,0x00,0x00,0x0C,0xFC,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x7E,0x3F,0x01,0x00,0x00,0x00,0x00},/*"}",92*/
{0x00,0x00,0x80,0xC0,0xC0,0xC0,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x03,0x03,0x03,0x01,0x00,0x00},/*"~",93*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",94*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
{0x00,0x00,0x00,0x00,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1B,0x1B,0x1B,0x1B,0x00,0x00,0x00,0x00},/*"!",1*/
{0x00,0x00,0x00,0x18,0xF8,0x18,0x00,0x18,0xF8,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*""",2*/
{0x00,0x00,0x60,0x60,0xFE,0xFE,0x60,0xFE,0xFE,0x60,0x00,0x00,0x00,0x00,0x06,0x7F,0x7F,0x06,0x7F,0x7F,0x06,0x06,0x00,0x00},/*"#",3*/
{0x00,0x00,0x00,0xF0,0xF8,0x9E,0x9E,0xB8,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0xF9,0xF9,0x1F,0x0F,0x00,0x00,0x00},/*"$",4*/
{0x00,0x00,0x38,0x44,0xC4,0xC4,0xB8,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x0E,0x11,0x11,0x11,0x0E,0x00,0x00,0x00},/*"%",5*/
{0x00,0x00,0x60,0xE0,0xB0,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x00,0x0E,0x0F,0x19,0x19,0x1B,0x1E,0x0E,0x0F,0x1B,0x00,0x00},/*"&",6*/
{0x00,0x00,0x00,0x00,0x00,0x18,0xF8,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/
{0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0x3C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1F,0x78,0x60,0x00,0x00,0x00},/*"(",8*/
{0x00,0x00,0x0C,0x3C,0xF0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x78,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x00},/*")",9*/
{0x00,0x00,0x30,0xB0,0xF0,0xFC,0xFC,0xF0,0xB0,0x30,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x00},/*"*",10*/
{0x00,0x80,0x80,0x80,0x80,0xF8,0xF8,0x80,0x80,0x80,0x80,0x00,0x00,0x01,0x01,0x01,0x01,0x1F,0x1F,0x01,0x01,0x01,0x01,0x00},/*"+",11*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x38,0x08,0x00,0x00,0x00,0x00,0x00},/*",",12*/
{0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00},/*"-",13*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x00,0x00,0x00,0x00},/*".",14*/
{0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0x78,0x1E,0x06,0x00,0x00,0x00,0x00,0x60,0x78,0x1E,0x07,0x01,0x00,0x00,0x00,0x00,0x00},/*"/",15*/
{0x00,0x00,0xF0,0xF8,0x1C,0x0C,0x1C,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x1C,0x0F,0x07,0x00,0x00,0x00},/*"0",16*/
{0x00,0x00,0x18,0x18,0x18,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00},/*"1",17*/
{0x00,0x00,0x30,0x38,0x0C,0x0C,0x8C,0xF8,0x70,0x00,0x00,0x00,0x00,0x00,0x18,0x1C,0x1E,0x1B,0x19,0x18,0x18,0x00,0x00,0x00},/*"2",18*/
{0x00,0x00,0x18,0x1C,0xCC,0xCC,0xCC,0xFC,0x38,0x00,0x00,0x00,0x00,0x0C,0x1C,0x18,0x18,0x18,0x19,0x0F,0x07,0x00,0x00,0x00},/*"3",19*/
{0x00,0x00,0xC0,0xE0,0x78,0x1C,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x1B,0x1B,0x1F,0x1F,0x1B,0x00,0x00,0x00},/*"4",20*/
{0x00,0x00,0xFC,0xFC,0xCC,0xCC,0xCC,0x8C,0x00,0x00,0x00,0x00,0x00,0x0C,0x1C,0x18,0x18,0x18,0x18,0x0F,0x07,0x00,0x00,0x00},/*"5",21*/
{0x00,0x00,0xE0,0xF0,0xB8,0xDC,0xCC,0xCC,0x8C,0x00,0x00,0x00,0x00,0x00,0x07,0x0F,0x19,0x18,0x18,0x1F,0x0F,0x00,0x00,0x00},/*"6",22*/
{0x00,0x00,0x1C,0x1C,0x0C,0x0C,0xCC,0xFC,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1F,0x03,0x00,0x00,0x00,0x00},/*"7",23*/
{0x00,0x00,0x38,0xFC,0xCC,0xCC,0xCC,0xFC,0x38,0x00,0x00,0x00,0x00,0x00,0x0F,0x1F,0x18,0x18,0x18,0x1F,0x0F,0x00,0x00,0x00},/*"8",24*/
{0x00,0x00,0xF8,0xFC,0x8C,0x8C,0xCC,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x18,0x19,0x19,0x1D,0x0E,0x07,0x03,0x00,0x00,0x00},/*"9",25*/
{0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x00,0x00,0x00,0x00},/*":",26*/
{0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x18,0x08,0x00,0x00,0x00,0x00,0x00},/*";",27*/
{0x00,0x00,0x00,0x80,0x80,0xC0,0x60,0x60,0x30,0x30,0x00,0x00,0x00,0x01,0x01,0x03,0x03,0x06,0x0C,0x0C,0x18,0x18,0x00,0x00},/*"<",28*/
{0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x00},/*"=",29*/
{0x00,0x30,0x30,0x60,0x60,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x0C,0x0C,0x06,0x03,0x03,0x01,0x01,0x00,0x00},/*">",30*/
{0x00,0x00,0x70,0x78,0x18,0x18,0x98,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1B,0x1B,0x01,0x01,0x00,0x00,0x00,0x00},/*"?",31*/
{0x00,0x00,0xF0,0x08,0xC4,0x24,0x24,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x10,0x21,0x22,0x22,0x13,0x00,0x00,0x00,0x00},/*"@",32*/
{0x00,0x00,0x18,0x98,0xF8,0x38,0x38,0xF0,0x80,0x00,0x00,0x00,0x00,0x18,0x1C,0x1F,0x1B,0x03,0x03,0x1B,0x1F,0x1C,0x18,0x00},/*"A",33*/
{0x00,0x18,0xF8,0xF8,0x98,0x98,0x98,0xF8,0x70,0x00,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x19,0x19,0x19,0x1F,0x0E,0x00,0x00},/*"B",34*/
{0x00,0xE0,0xF0,0x38,0x18,0x18,0x18,0x10,0x78,0x78,0x00,0x00,0x00,0x07,0x0F,0x0C,0x18,0x18,0x18,0x18,0x0C,0x0C,0x00,0x00},/*"C",35*/
{0x00,0x18,0xF8,0xF8,0x18,0x18,0x18,0x38,0xF0,0xE0,0x00,0x00,0x00,0x18,0x1F,0x1F,0x18,0x18,0x18,0x1C,0x0F,0x07,0x00,0x00},/*"D",36*/
{0x00,0x18,0xF8,0xF8,0x98,0xD8,0xD8,0x18,0x78,0x78,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x1B,0x1B,0x18,0x1E,0x1E,0x00,0x00},/*"E",37*/
{0x00,0x18,0xF8,0xF8,0x98,0xD8,0xD8,0x18,0x78,0x78,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x1B,0x1B,0x00,0x00,0x00,0x00,0x00},/*"F",38*/
{0x00,0xE0,0xF0,0x38,0x18,0x18,0x10,0x38,0x38,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x1B,0x1B,0x1F,0x0F,0x03,0x00,0x00},/*"G",39*/
{0x00,0x18,0xF8,0xF8,0x98,0x80,0x98,0xF8,0xF8,0x18,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x01,0x19,0x1F,0x1F,0x18,0x00,0x00},/*"H",40*/
{0x00,0x00,0x18,0x18,0x18,0xF8,0xF8,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00},/*"I",41*/
{0x00,0x00,0x00,0x00,0x18,0x18,0x18,0xF8,0xF8,0x18,0x18,0x00,0x00,0x00,0x0F,0x0F,0x18,0x18,0x18,0x0F,0x0F,0x00,0x00,0x00},/*"J",42*/
{0x00,0x18,0xF8,0xF8,0x98,0xC0,0x78,0x38,0x18,0x18,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x01,0x07,0x1E,0x18,0x18,0x00,0x00},/*"K",43*/
{0x00,0x18,0x18,0xF8,0xF8,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x1F,0x1F,0x00,0x00},/*"L",44*/
{0x18,0xF8,0xF8,0x38,0xE0,0x00,0xE0,0x38,0xF8,0xF8,0x18,0x00,0x18,0x1F,0x1F,0x18,0x19,0x03,0x19,0x18,0x1F,0x1F,0x18,0x00},/*"M",45*/
{0x00,0x18,0xF8,0xF8,0xF8,0xE0,0x18,0xF8,0xF8,0x18,0x00,0x00,0x00,0x18,0x1F,0x1F,0x18,0x03,0x1F,0x1F,0x1F,0x00,0x00,0x00},/*"N",46*/
{0x00,0xC0,0xF0,0x30,0x18,0x18,0x18,0x30,0xF0,0xC0,0x00,0x00,0x00,0x03,0x0F,0x0C,0x18,0x18,0x18,0x0C,0x0F,0x03,0x00,0x00},/*"O",47*/
{0x00,0x18,0xF8,0xF8,0x98,0x98,0x98,0xF8,0xF0,0x00,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x19,0x19,0x01,0x00,0x00,0x00,0x00},/*"P",48*/
{0x00,0xC0,0xF0,0x30,0x18,0x18,0x18,0x30,0xF0,0xC0,0x00,0x00,0x00,0x03,0x0F,0xCC,0xF8,0x78,0x78,0xCC,0xEF,0x63,0x00,0x00},/*"Q",49*/
{0x00,0x18,0xF8,0xF8,0x98,0x98,0x98,0xF8,0x70,0x00,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x1B,0x07,0x0E,0x1C,0x18,0x00,0x00},/*"R",50*/
{0x00,0x00,0x70,0xF8,0x98,0x98,0x90,0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x09,0x19,0x19,0x1F,0x0E,0x00,0x00,0x00},/*"S",51*/
{0x00,0xF8,0xF8,0x18,0x18,0xF8,0xF8,0x18,0x18,0xF8,0xF8,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x00,0x00,0x00},/*"T",52*/
{0x00,0x18,0xF8,0xF8,0x18,0x00,0x18,0xF8,0xF8,0x18,0x00,0x00,0x00,0x00,0x07,0x0F,0x18,0x18,0x18,0x0F,0x07,0x00,0x00,0x00},/*"U",53*/
{0x00,0x18,0x78,0xF8,0x98,0x00,0x98,0xF8,0x78,0x18,0x00,0x00,0x00,0x00,0x00,0x03,0x1F,0x18,0x1F,0x03,0x00,0x00,0x00,0x00},/*"V",54*/
{0x18,0xF8,0xF8,0x18,0xD8,0xC0,0xD8,0x18,0xF8,0xF8,0x18,0x00,0x00,0x01,0x1F,0x1C,0x1F,0x01,0x1F,0x1C,0x1F,0x01,0x00,0x00},/*"W",55*/
{0x00,0x18,0x38,0x78,0xD8,0x80,0xD8,0x78,0x38,0x18,0x00,0x00,0x00,0x18,0x1C,0x1E,0x1B,0x01,0x1B,0x1E,0x1C,0x18,0x00,0x00},/*"X",56*/
{0x00,0x18,0x38,0x78,0xD8,0x80,0x80,0xD8,0x78,0x38,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x00,0x00,0x00},/*"Y",57*/
{0x00,0x00,0x78,0x78,0x18,0x98,0xD8,0x78,0x38,0x00,0x00,0x00,0x00,0x00,0x1C,0x1E,0x1B,0x19,0x18,0x1E,0x1E,0x00,0x00,0x00},/*"Z",58*/
{0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x60,0x60,0x00,0x00,0x00},/*"[",59*/
{0x00,0x00,0x06,0x1E,0x78,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x1E,0x78,0x60,0x00,0x00},/*"\",60*/
{0x00,0x00,0x00,0x0C,0x0C,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00},/*"]",61*/
{0x00,0x00,0x00,0x60,0x70,0x18,0x0C,0x18,0x70,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"^",62*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"_",63*/
{0x00,0x00,0x00,0x00,0x02,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/
{0x00,0x00,0x00,0x60,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x0E,0x1F,0x1B,0x1B,0x0B,0x1F,0x1F,0x18,0x00,0x00},/*"a",65*/
{0x00,0x0C,0xFC,0xFC,0xC0,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x18,0x1F,0x1F,0x0C,0x18,0x18,0x1C,0x0F,0x07,0x00,0x00},/*"b",66*/
{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0xC0,0xE0,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x18,0x18,0x18,0x0C,0x00,0x00},/*"c",67*/
{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0xCC,0xFC,0xFC,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x18,0x0C,0x1F,0x1F,0x18,0x00},/*"d",68*/
{0x00,0x00,0x80,0xC0,0x60,0x60,0x60,0x60,0xC0,0x80,0x00,0x00,0x00,0x00,0x07,0x0F,0x1B,0x1B,0x1B,0x1B,0x1B,0x0B,0x00,0x00},/*"e",69*/
{0x00,0x00,0x60,0x60,0xF8,0xFC,0x6C,0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00,0x00},/*"f",70*/
{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0xC0,0xE0,0xE0,0x60,0x00,0x00,0x00,0x07,0x0F,0xDC,0xD8,0xD8,0xCC,0xFF,0x7F,0x00,0x00},/*"g",71*/
{0x00,0x0C,0xFC,0xFC,0xC0,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,0x18,0x1F,0x1F,0x18,0x00,0x00,0x18,0x1F,0x1F,0x18,0x00},/*"h",72*/
{0x00,0x00,0x00,0x60,0x60,0xEC,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00},/*"i",73*/
{0x00,0x00,0x60,0x60,0x60,0x6C,0x6C,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xFF,0x7F,0x00,0x00,0x00},/*"j",74*/
{0x00,0x00,0x0C,0xFC,0xFC,0x80,0xE0,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x18,0x1F,0x1F,0x03,0x06,0x1C,0x18,0x18,0x00,0x00},/*"k",75*/
{0x00,0x00,0x00,0x0C,0x0C,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00},/*"l",76*/
{0x00,0x60,0xE0,0xE0,0x60,0xE0,0xC0,0x60,0xE0,0xC0,0x00,0x00,0x00,0x18,0x1F,0x1F,0x00,0x1F,0x1F,0x00,0x1F,0x1F,0x18,0x00},/*"m",77*/
{0x00,0x60,0xE0,0xE0,0xC0,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,0x18,0x1F,0x1F,0x18,0x00,0x00,0x18,0x1F,0x1F,0x18,0x00},/*"n",78*/
{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x18,0x1C,0x0F,0x07,0x00,0x00},/*"o",79*/
{0x00,0x60,0xE0,0xE0,0xC0,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0xC0,0xFF,0xFF,0xCC,0xD8,0x18,0x1C,0x0F,0x07,0x00,0x00},/*"p",80*/
{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0xC0,0xE0,0xE0,0x60,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0xD8,0xCC,0xFF,0xFF,0xC0,0x00},/*"q",81*/
{0x00,0x00,0x60,0x60,0xE0,0xE0,0xC0,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00,0x00},/*"r",82*/
{0x00,0x00,0xC0,0xE0,0x60,0x60,0x60,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x1D,0x1D,0x1B,0x1B,0x1B,0x1E,0x0E,0x00,0x00,0x00},/*"s",83*/
{0x00,0x00,0x60,0x60,0xFC,0xFC,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x1F,0x18,0x18,0x18,0x0C,0x00,0x00},/*"t",84*/
{0x00,0x60,0xE0,0xE0,0x00,0x00,0x00,0x60,0xE0,0xE0,0x00,0x00,0x00,0x00,0x0F,0x1F,0x18,0x18,0x18,0x0C,0x1F,0x1F,0x18,0x00},/*"u",85*/
{0x00,0x60,0xE0,0xE0,0x60,0x00,0x60,0xE0,0xE0,0x60,0x00,0x00,0x00,0x00,0x00,0x07,0x1F,0x18,0x1F,0x07,0x00,0x00,0x00,0x00},/*"v",86*/
{0x60,0xE0,0xE0,0x60,0x00,0x80,0x00,0x60,0xE0,0xE0,0x60,0x00,0x00,0x01,0x1F,0x1E,0x07,0x03,0x07,0x1E,0x1F,0x01,0x00,0x00},/*"w",87*/
{0x00,0x00,0x60,0xE0,0xE0,0x00,0x00,0xE0,0xE0,0x60,0x00,0x00,0x00,0x00,0x18,0x1C,0x1F,0x03,0x03,0x1F,0x1C,0x18,0x00,0x00},/*"x",88*/
{0x00,0x60,0xE0,0xE0,0x60,0x00,0x00,0x60,0xE0,0xE0,0x60,0x00,0x00,0xC0,0xC0,0xC1,0xE7,0xFE,0xDC,0xC7,0x03,0x00,0x00,0x00},/*"y",89*/
{0x00,0x00,0xE0,0xE0,0x60,0x60,0x60,0xE0,0xE0,0x60,0x00,0x00,0x00,0x00,0x18,0x1C,0x1E,0x1B,0x1B,0x19,0x1C,0x1C,0x00,0x00},/*"z",90*/
{0x00,0x00,0x00,0x00,0x00,0xF8,0xFC,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x3F,0x7E,0x60,0x00,0x00,0x00,0x00},/*"{",91*/
{0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00},/*"|",92*/
{0x00,0x00,0x00,0x00,0x0C,0xFC,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x7E,0x3F,0x01,0x00,0x00,0x00,0x00},/*"}",93*/
{0x00,0x00,0x80,0xC0,0xC0,0xC0,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x03,0x03,0x03,0x01,0x00,0x00},/*"~",94*/
};
static const unsigned char blank_block PROGMEM = 0x00;

View File

@@ -284,6 +284,93 @@
{"matrix": [0, 12], "x": 18.5, "y": 5.5, "w": 2},
{"matrix": [0, 13], "x": 20.5, "y": 5.5}
]
}
},
"LAYOUT_wheelwriter_1x_iso": {
"layout": [
{"matrix": [2, 2], "x": 0, "y": 0},
{"matrix": [2, 4], "x": 1.25, "y": 0},
{"matrix": [3, 4], "x": 2.25, "y": 0},
{"matrix": [3, 5], "x": 3.25, "y": 0},
{"matrix": [3, 6], "x": 4.25, "y": 0},
{"matrix": [3, 7], "x": 5.25, "y": 0},
{"matrix": [2, 7], "x": 6.25, "y": 0},
{"matrix": [2, 8], "x": 7.25, "y": 0},
{"matrix": [3, 8], "x": 8.25, "y": 0},
{"matrix": [3, 9], "x": 9.25, "y": 0},
{"matrix": [3, 10], "x": 10.25, "y": 0},
{"matrix": [3, 11], "x": 11.25, "y": 0},
{"matrix": [2, 11], "x": 12.25, "y": 0},
{"matrix": [2, 9], "x": 13.25, "y": 0},
{"matrix": [2, 12], "x": 14.25, "y": 0, "w": 2},
{"matrix": [2, 13], "x": 17.5, "y": 0},
{"matrix": [4, 1], "x": 0, "y": 1},
{"matrix": [4, 2], "x": 1.25, "y": 1, "w": 1.5},
{"matrix": [4, 4], "x": 2.75, "y": 1},
{"matrix": [4, 5], "x": 3.75, "y": 1},
{"matrix": [4, 6], "x": 4.75, "y": 1},
{"matrix": [4, 7], "x": 5.75, "y": 1},
{"matrix": [5, 7], "x": 6.75, "y": 1},
{"matrix": [5, 8], "x": 7.75, "y": 1},
{"matrix": [4, 8], "x": 8.75, "y": 1},
{"matrix": [4, 9], "x": 9.75, "y": 1},
{"matrix": [4, 10], "x": 10.75, "y": 1},
{"matrix": [4, 11], "x": 11.75, "y": 1},
{"matrix": [5, 11], "x": 12.75, "y": 1},
{"matrix": [5, 9], "x": 13.75, "y": 1},
{"matrix": [4, 13], "x": 17.5, "y": 1},
{"matrix": [5, 2], "x": 0, "y": 2},
{"matrix": [6, 2], "x": 1.25, "y": 2, "w": 1.5},
{"matrix": [1, 4], "x": 3, "y": 2},
{"matrix": [1, 5], "x": 4, "y": 2},
{"matrix": [1, 6], "x": 5, "y": 2},
{"matrix": [1, 7], "x": 6, "y": 2},
{"matrix": [0, 7], "x": 7, "y": 2},
{"matrix": [0, 8], "x": 8, "y": 2},
{"matrix": [1, 8], "x": 9, "y": 2},
{"matrix": [1, 9], "x": 10, "y": 2},
{"matrix": [1, 10], "x": 11, "y": 2},
{"matrix": [1, 11], "x": 12, "y": 2},
{"matrix": [0, 11], "x": 13, "y": 2},
{"matrix": [6, 11], "x": 14, "y": 2},
{"matrix": [0, 12], "x": 15, "y": 2, "w": 1.25, "h": 2},
{"matrix": [1, 13], "x": 17.5, "y": 2},
{"matrix": [1, 2], "x": 0, "y": 3},
{"matrix": [7, 3], "x": 1.25, "y": 3, "w": 1.25},
{"matrix": [7, 4], "x": 2.5, "y": 3},
{"matrix": [6, 4], "x": 3.5, "y": 3},
{"matrix": [6, 5], "x": 4.5, "y": 3},
{"matrix": [6, 6], "x": 5.5, "y": 3},
{"matrix": [6, 7], "x": 6.5, "y": 3},
{"matrix": [7, 7], "x": 7.5, "y": 3},
{"matrix": [7, 8], "x": 8.5, "y": 3},
{"matrix": [6, 8], "x": 9.5, "y": 3},
{"matrix": [6, 9], "x": 10.5, "y": 3},
{"matrix": [6, 10], "x": 11.5, "y": 3},
{"matrix": [7, 11], "x": 12.5, "y": 3},
{"matrix": [6, 3], "x": 13.5, "y": 3, "w": 2.75},
{"matrix": [6, 12], "x": 17.5, "y": 3},
{"matrix": [0, 1], "x": 0, "y": 4},
{"matrix": [7, 14], "x": 3.75, "y": 4, "w": 2.5},
{"matrix": [7, 1], "x": 6.25, "y": 4, "w": 7.25},
{"matrix": [7, 2], "x": 14.75, "y": 4, "w": 1.5},
{"matrix": [7, 12], "x": 16.5, "y": 4},
{"matrix": [0, 13], "x": 17.5, "y": 4},
{"matrix": [7, 13], "x": 18.5, "y": 4}
]
}
}
}

View File

@@ -0,0 +1,33 @@
/* Copyright 2024 Robin Haberkorn
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_wheelwriter_1x_iso( /* Base layer */
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_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_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_NUHS, KC_ENT, MO(1),
KC_APP, 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_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_wheelwriter_1x_iso( /* Function key layer */
KC_MUTE, KC_NO, 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_NO, KC_BRIU,
KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BRID,
KC_VOLD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP,
KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGDN, KC_END
),
};

View File

@@ -17,4 +17,8 @@ Flashing example for this keyboard:
make ibm/model_m/modelh:default:flash
For IBM Wheelwriter 10/15/1000 modules (ISO), you can try the `wheelwriter_1x_iso` keymap:
make ibm/model_m/modelh:wheelwriter_1x_iso
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).

View File

@@ -0,0 +1,36 @@
{
"manufacturer": "Zykrah",
"keyboard_name": "Pizza Pad",
"maintainer": "zykrah",
"processor": "RP2040",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"dynamic_keymap": {
"layer_count": 6
},
"matrix_pins": {
"cols": ["GP1", "GP0", "GP7"],
"rows": ["GP6", "GP29", "GP28"]
},
"usb": {
"device_version": "0.0.1",
"pid": "0x5050",
"vid": "0x7A79"
},
"community_layouts": ["ortho_3x3"],
"layouts": {
"LAYOUT_ortho_3x3": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2}
]
}
}
}

View File

@@ -0,0 +1,12 @@
// Copyright 2024 Zykrah (@zykrah)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ortho_3x3(
KC_P7, KC_P8, KC_P9,
KC_P4, KC_P5, KC_P6,
KC_P1, KC_P2, KC_P3
)
};

View File

@@ -0,0 +1,27 @@
# Pizza Pad PCB
![Pizza Pad PCB](https://i.imgur.com/eJLuaZY.jpg)
A 3x3 PCB designed for the Idyllic Pretty Pad.
* Keyboard Maintainer: Zykrah
* Hardware Supported: Pizza Pad PCB (using a SEEED XIAO RP2040)
* Hardware Availability: [Mechstock](https://mechstock.com.au/)
Make example for this keyboard (after setting up your build environment):
make idyllic/pizzapad:default
Flashing example for this keyboard:
make idyllic/pizzapad:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press both the `BOOT` and `RESET` buttons at the same time
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -3,8 +3,8 @@
#pragma once
/* Serial communication */
/* Split keyboard configuration */
#define EE_HANDS
#define SERIAL_USART_FULL_DUPLEX
#define SERIAL_USART_TX_PIN GP0
#define SERIAL_USART_RX_PIN GP1

View File

@@ -18,6 +18,8 @@ Flashing example for this 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).
If you would like to plug in your keyboard using either half, then set the EEPROM left/right UF2 bootloader parameter when flashing each half for the first time. Refer to [QMK's handedness by EEPROM documentation](https://docs.qmk.fm/features/split_keyboard#handedness-by-eeprom). Without this bootloader parameter, the configuration assumes the left half will be plugged in.
## Bootloader
Enter the bootloader in 3 ways:

View File

@@ -0,0 +1,29 @@
/* Copyright 2024 Alabahuy
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
}
if (host_keyboard_led_state().caps_lock) { // Capslock = WHITE
rgb_matrix_set_color(36, 255, 255, 255);
}
return true;
}
#endif

View File

@@ -0,0 +1,238 @@
{
"manufacturer": "Jaykeeb Studio",
"keyboard_name": "JK60 RGB",
"maintainer": "Alabahuy",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP20", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"],
"rows": ["GP21", "GP22", "GP23", "GP24", "GP15"]
},
"ws2812": {
"driver": "vendor",
"pin": "GP19"
},
"rgb_matrix": {
"max_brightness": 125,
"sleep": true,
"animations": {
"alphas_mods": true,
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_sat": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"band_val": true,
"breathing": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"cycle_up_down": true,
"digital_rain": true,
"dual_beacon": true,
"gradient_left_right": true,
"gradient_up_down": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"jellybean_raindrops": true,
"multisplash": true,
"pixel_flow": true,
"pixel_rain": true,
"rainbow_beacon": true,
"rainbow_moving_chevron": true,
"rainbow_pinwheels": true,
"raindrops": true,
"solid_multisplash": true,
"solid_reactive": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
"solid_reactive_multinexus": true,
"solid_reactive_multiwide": true,
"solid_reactive_nexus": true,
"solid_reactive_simple": true,
"solid_reactive_wide": true,
"solid_splash": true,
"splash": true,
"typing_heatmap": true
},
"driver": "ws2812",
"layout": [
{"x": 4, "y": 5, "flags": 2},
{"matrix": [0, 0], "x": 8, "y": 7, "flags": 1},
{"matrix": [0, 1], "x": 23, "y": 7, "flags": 4},
{"matrix": [0, 2], "x": 37, "y": 7, "flags": 4},
{"matrix": [0, 3], "x": 52, "y": 7, "flags": 4},
{"x": 60, "y": 0, "flags": 2},
{"matrix": [0, 4], "x": 67, "y": 7, "flags": 4},
{"matrix": [0, 5], "x": 82, "y": 7, "flags": 4},
{"matrix": [0, 6], "x": 97, "y": 7, "flags": 4},
{"x": 105, "y": 0, "flags": 2},
{"matrix": [0, 7], "x": 112, "y": 7, "flags": 4},
{"matrix": [0, 8], "x": 127, "y": 7, "flags": 4},
{"matrix": [0, 9], "x": 142, "y": 7, "flags": 4},
{"x": 150, "y": 0, "flags": 2},
{"matrix": [0, 10], "x": 157, "y": 7, "flags": 4},
{"matrix": [0, 11], "x": 172, "y": 7, "flags": 4},
{"matrix": [0, 12], "x": 187, "y": 7, "flags": 4},
{"x": 195, "y": 0, "flags": 2},
{"matrix": [0, 13], "x": 201, "y": 7, "flags": 4},
{"matrix": [1, 13], "x": 216, "y": 7, "flags": 1},
{"x": 224, "y": 13, "flags": 2},
{"matrix": [2, 13], "x": 213, "y": 19, "flags": 1},
{"matrix": [1, 12], "x": 194, "y": 19, "flags": 4},
{"matrix": [1, 11], "x": 179, "y": 19, "flags": 4},
{"matrix": [1, 10], "x": 164, "y": 19, "flags": 4},
{"matrix": [1, 9], "x": 149, "y": 19, "flags": 4},
{"matrix": [1, 8], "x": 134, "y": 19, "flags": 4},
{"matrix": [1, 7], "x": 119, "y": 19, "flags": 4},
{"matrix": [1, 6], "x": 105, "y": 19, "flags": 4},
{"matrix": [1, 5], "x": 90, "y": 19, "flags": 4},
{"matrix": [1, 4], "x": 75, "y": 19, "flags": 4},
{"matrix": [1, 3], "x": 60, "y": 19, "flags": 4},
{"matrix": [1, 2], "x": 45, "y": 19, "flags": 4},
{"matrix": [1, 1], "x": 30, "y": 19, "flags": 4},
{"matrix": [1, 0], "x": 11, "y": 19, "flags": 1},
{"x": 4, "y": 19, "flags": 2},
{"matrix": [2, 0], "x": 13, "y": 32, "flags": 8},
{"matrix": [2, 1], "x": 34, "y": 32, "flags": 4},
{"matrix": [2, 2], "x": 49, "y": 32, "flags": 4},
{"matrix": [2, 3], "x": 64, "y": 32, "flags": 4},
{"matrix": [2, 4], "x": 79, "y": 32, "flags": 4},
{"matrix": [2, 5], "x": 94, "y": 32, "flags": 4},
{"matrix": [2, 6], "x": 108, "y": 32, "flags": 4},
{"matrix": [2, 7], "x": 123, "y": 32, "flags": 4},
{"matrix": [2, 8], "x": 138, "y": 32, "flags": 4},
{"matrix": [2, 9], "x": 153, "y": 32, "flags": 4},
{"matrix": [2, 10], "x": 168, "y": 32, "flags": 4},
{"matrix": [2, 11], "x": 183, "y": 32, "flags": 4},
{"matrix": [2, 12], "x": 183, "y": 32, "flags": 1},
{"matrix": [3, 13], "x": 216, "y": 45, "flags": 1},
{"matrix": [3, 12], "x": 196, "y": 45, "flags": 4},
{"matrix": [3, 11], "x": 175, "y": 45, "flags": 4},
{"matrix": [3, 10], "x": 161, "y": 45, "flags": 4},
{"matrix": [3, 9], "x": 146, "y": 45, "flags": 4},
{"matrix": [3, 8], "x": 135, "y": 45, "flags": 4},
{"matrix": [3, 7], "x": 116, "y": 45, "flags": 4},
{"matrix": [3, 6], "x": 101, "y": 45, "flags": 4},
{"matrix": [3, 5], "x": 86, "y": 45, "flags": 4},
{"matrix": [3, 4], "x": 71, "y": 45, "flags": 4},
{"matrix": [3, 3], "x": 56, "y": 45, "flags": 4},
{"matrix": [3, 2], "x": 41, "y": 45, "flags": 4},
{"matrix": [3, 0], "x": 17, "y": 45, "flags": 1},
{"x": 4, "y": 51, "flags": 2},
{"matrix": [4, 0], "x": 11, "y": 57, "flags": 1},
{"x": 15, "y": 57, "flags": 2},
{"matrix": [4, 1], "x": 28, "y": 57, "flags": 1},
{"matrix": [4, 2], "x": 50, "y": 57, "flags": 1},
{"x": 72, "y": 57, "flags": 2},
{"x": 92, "y": 57, "flags": 2},
{"matrix": [4, 7], "x": 112, "y": 57, "flags": 1},
{"x": 132, "y": 57, "flags": 2},
{"x": 152, "y": 57, "flags": 2},
{"matrix": [4, 11], "x": 172, "y": 57, "flags": 1},
{"matrix": [4, 12], "x": 194, "y": 57, "flags": 1},
{"x": 209, "y": 57, "flags": 2},
{"matrix": [4, 13], "x": 213, "y": 57, "flags": 1},
{"x": 220, "y": 51, "flags": 2}
]
},
"processor": "RP2040",
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x7762",
"vid": "0x414C"
},
"community_layouts": [
"60_ansi_tsangan_split_bs_rshift"
],
"layouts": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0},
{"label": "Delete", "matrix": [1, 13], "x": 14, "y": 0},
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "GUI", "matrix": [4, 1], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "Space", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "GUI", "matrix": [4, 12], "x": 12.5, "y": 4},
{"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
}
}
}

View File

@@ -0,0 +1,22 @@
// Copyright 2024 Alabahuy
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_ansi_tsangan_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_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, KC_RCTL
),
[1] = LAYOUT_60_ansi_tsangan_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, _______,
RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS,
_______, RM_PREV, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
_______, _______, _______, QK_BOOT, _______, _______, _______
)
};

View File

@@ -0,0 +1,27 @@
# JK60 RGB
![jk60 RGB]( https://i.imgur.com/YP978wp.jpeg )
Layout 60% rgb per keys support keyboard case existing
* Keyboard Maintainer: [Alabahuy](https://github.com/Alabahuy)
* Hardware Supported: JK60 RGB pcb, RP2040, led sk6812 per switch
* Hardware Availability: Private GB
Make example for this keyboard (after setting up your build environment):
make jaykeeb/jk60rgb:default
Flashing example for this keyboard:
make jaykeeb/jk60rgb:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -0,0 +1,22 @@
/*
Copyright 2022 <hello@keebfront.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* Define MIDI */
#define MIDI_ADVANCED
#define SLIDER_PINA D6

View File

@@ -0,0 +1,744 @@
{
"manufacturer": "Keebfront",
"keyboard_name": "Vanguard65",
"maintainer": "Keebfront",
"bootloader": "atmel-dfu",
"build": {
"lto": true
},
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "E6", "pin_b": "D4"}
]
},
"features": {
"bootmagic": true,
"extrakey": true,
"midi": true,
"rgblight": true,
"mousekey": true,
"encoder": true
},
"matrix_pins": {
"cols": ["F0", "B1", "B2", "B3", "B7", "D0", "D1", "D2", "D3", "D5", "D7", "B4", "B5", "B6", "C6"],
"rows": ["F4", "F1", "F7", "F6", "F5"]
},
"processor": "atmega32u4",
"rgblight": {
"animations": {
"alternating": true,
"breathing": true,
"christmas": true,
"knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"snake": true,
"static_gradient": true,
"twinkle": true
},
"brightness_steps": 12,
"led_count": 36
},
"url": "https://www.keebfront.com",
"usb": {
"device_version": "0.0.1",
"pid": "0x1823",
"vid": "0x7074"
},
"ws2812": {
"pin": "C7"
},
"layouts": {
"LAYOUT_all": {
"layout": [
{"matrix": [3, 14], "x": 0, "y": 0},
{"matrix": [0, 0], "x": 1.5, "y": 0},
{"matrix": [0, 1], "x": 2.5, "y": 0},
{"matrix": [0, 2], "x": 3.5, "y": 0},
{"matrix": [0, 3], "x": 4.5, "y": 0},
{"matrix": [0, 4], "x": 5.5, "y": 0},
{"matrix": [0, 5], "x": 6.5, "y": 0},
{"matrix": [0, 6], "x": 7.5, "y": 0},
{"matrix": [0, 7], "x": 8.5, "y": 0},
{"matrix": [0, 8], "x": 9.5, "y": 0},
{"matrix": [0, 9], "x": 10.5, "y": 0},
{"matrix": [0, 10], "x": 11.5, "y": 0},
{"matrix": [0, 11], "x": 12.5, "y": 0},
{"matrix": [0, 12], "x": 13.5, "y": 0},
{"matrix": [0, 13], "x": 14.5, "y": 0},
{"matrix": [2, 13], "x": 15.5, "y": 0},
{"matrix": [0, 14], "x": 16.75, "y": 0},
{"matrix": [1, 0], "x": 1.5, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 3, "y": 1},
{"matrix": [1, 2], "x": 4, "y": 1},
{"matrix": [1, 3], "x": 5, "y": 1},
{"matrix": [1, 4], "x": 6, "y": 1},
{"matrix": [1, 5], "x": 7, "y": 1},
{"matrix": [1, 6], "x": 8, "y": 1},
{"matrix": [1, 7], "x": 9, "y": 1},
{"matrix": [1, 8], "x": 10, "y": 1},
{"matrix": [1, 9], "x": 11, "y": 1},
{"matrix": [1, 10], "x": 12, "y": 1},
{"matrix": [1, 11], "x": 13, "y": 1},
{"matrix": [1, 12], "x": 14, "y": 1},
{"matrix": [1, 13], "x": 15, "y": 1, "w": 1.5},
{"matrix": [1, 14], "x": 16.75, "y": 1},
{"matrix": [2, 0], "x": 1.5, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 3.25, "y": 2},
{"matrix": [2, 2], "x": 4.25, "y": 2},
{"matrix": [2, 3], "x": 5.25, "y": 2},
{"matrix": [2, 4], "x": 6.25, "y": 2},
{"matrix": [2, 5], "x": 7.25, "y": 2},
{"matrix": [2, 6], "x": 8.25, "y": 2},
{"matrix": [2, 7], "x": 9.25, "y": 2},
{"matrix": [2, 8], "x": 10.25, "y": 2},
{"matrix": [2, 9], "x": 11.25, "y": 2},
{"matrix": [2, 10], "x": 12.25, "y": 2},
{"matrix": [2, 11], "x": 13.25, "y": 2},
{"matrix": [2, 12], "x": 14.25, "y": 2, "w": 2.25},
{"matrix": [2, 14], "x": 16.75, "y": 2},
{"matrix": [3, 0], "x": 1.5, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 2.75, "y": 3},
{"matrix": [3, 2], "x": 3.75, "y": 3},
{"matrix": [3, 3], "x": 4.75, "y": 3},
{"matrix": [3, 4], "x": 5.75, "y": 3},
{"matrix": [3, 5], "x": 6.75, "y": 3},
{"matrix": [3, 6], "x": 7.75, "y": 3},
{"matrix": [3, 7], "x": 8.75, "y": 3},
{"matrix": [3, 8], "x": 9.75, "y": 3},
{"matrix": [3, 9], "x": 10.75, "y": 3},
{"matrix": [3, 10], "x": 11.75, "y": 3},
{"matrix": [3, 11], "x": 12.75, "y": 3},
{"matrix": [3, 12], "x": 13.75, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 15.5, "y": 3},
{"matrix": [4, 0], "x": 1.5, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 2.75, "y": 4, "w": 1.25},
{"matrix": [4, 2], "x": 4, "y": 4, "w": 1.25},
{"matrix": [4, 6], "x": 5.25, "y": 4, "w": 6.25},
{"matrix": [4, 10], "x": 11.5, "y": 4, "w": 1.25},
{"matrix": [4, 11], "x": 12.75, "y": 4, "w": 1.25},
{"matrix": [4, 12], "x": 14.5, "y": 4},
{"matrix": [4, 13], "x": 15.5, "y": 4},
{"matrix": [4, 14], "x": 16.5, "y": 4}
]
},
"LAYOUT_ansi_blocker": {
"layout": [
{"matrix": [3, 14], "x": 0, "y": 0},
{"matrix": [0, 0], "x": 1.5, "y": 0},
{"matrix": [0, 1], "x": 2.5, "y": 0},
{"matrix": [0, 2], "x": 3.5, "y": 0},
{"matrix": [0, 3], "x": 4.5, "y": 0},
{"matrix": [0, 4], "x": 5.5, "y": 0},
{"matrix": [0, 5], "x": 6.5, "y": 0},
{"matrix": [0, 6], "x": 7.5, "y": 0},
{"matrix": [0, 7], "x": 8.5, "y": 0},
{"matrix": [0, 8], "x": 9.5, "y": 0},
{"matrix": [0, 9], "x": 10.5, "y": 0},
{"matrix": [0, 10], "x": 11.5, "y": 0},
{"matrix": [0, 11], "x": 12.5, "y": 0},
{"matrix": [0, 12], "x": 13.5, "y": 0},
{"matrix": [0, 13], "x": 14.5, "y": 0, "w": 2},
{"matrix": [0, 14], "x": 16.75, "y": 0},
{"matrix": [1, 0], "x": 1.5, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 3, "y": 1},
{"matrix": [1, 2], "x": 4, "y": 1},
{"matrix": [1, 3], "x": 5, "y": 1},
{"matrix": [1, 4], "x": 6, "y": 1},
{"matrix": [1, 5], "x": 7, "y": 1},
{"matrix": [1, 6], "x": 8, "y": 1},
{"matrix": [1, 7], "x": 9, "y": 1},
{"matrix": [1, 8], "x": 10, "y": 1},
{"matrix": [1, 9], "x": 11, "y": 1},
{"matrix": [1, 10], "x": 12, "y": 1},
{"matrix": [1, 11], "x": 13, "y": 1},
{"matrix": [1, 12], "x": 14, "y": 1},
{"matrix": [1, 13], "x": 15, "y": 1, "w": 1.5},
{"matrix": [1, 14], "x": 16.75, "y": 1},
{"matrix": [2, 0], "x": 1.5, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 3.25, "y": 2},
{"matrix": [2, 2], "x": 4.25, "y": 2},
{"matrix": [2, 3], "x": 5.25, "y": 2},
{"matrix": [2, 4], "x": 6.25, "y": 2},
{"matrix": [2, 5], "x": 7.25, "y": 2},
{"matrix": [2, 6], "x": 8.25, "y": 2},
{"matrix": [2, 7], "x": 9.25, "y": 2},
{"matrix": [2, 8], "x": 10.25, "y": 2},
{"matrix": [2, 9], "x": 11.25, "y": 2},
{"matrix": [2, 10], "x": 12.25, "y": 2},
{"matrix": [2, 11], "x": 13.25, "y": 2},
{"matrix": [2, 12], "x": 14.25, "y": 2, "w": 2.25},
{"matrix": [2, 14], "x": 16.75, "y": 2},
{"matrix": [3, 0], "x": 1.5, "y": 3, "w": 2.25},
{"matrix": [3, 2], "x": 3.75, "y": 3},
{"matrix": [3, 3], "x": 4.75, "y": 3},
{"matrix": [3, 4], "x": 5.75, "y": 3},
{"matrix": [3, 5], "x": 6.75, "y": 3},
{"matrix": [3, 6], "x": 7.75, "y": 3},
{"matrix": [3, 7], "x": 8.75, "y": 3},
{"matrix": [3, 8], "x": 9.75, "y": 3},
{"matrix": [3, 9], "x": 10.75, "y": 3},
{"matrix": [3, 10], "x": 11.75, "y": 3},
{"matrix": [3, 11], "x": 12.75, "y": 3},
{"matrix": [3, 12], "x": 13.75, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 15.5, "y": 3},
{"matrix": [4, 0], "x": 1.5, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 2.75, "y": 4, "w": 1.25},
{"matrix": [4, 2], "x": 4, "y": 4, "w": 1.25},
{"matrix": [4, 6], "x": 5.25, "y": 4, "w": 6.25},
{"matrix": [4, 10], "x": 11.5, "y": 4, "w": 1.25},
{"matrix": [4, 11], "x": 12.75, "y": 4, "w": 1.25},
{"matrix": [4, 12], "x": 14.5, "y": 4},
{"matrix": [4, 13], "x": 15.5, "y": 4},
{"matrix": [4, 14], "x": 16.5, "y": 4}
]
},
"LAYOUT_ansi_blocker_split_bs": {
"layout": [
{"matrix": [3, 14], "x": 0, "y": 0},
{"matrix": [0, 0], "x": 1.5, "y": 0},
{"matrix": [0, 1], "x": 2.5, "y": 0},
{"matrix": [0, 2], "x": 3.5, "y": 0},
{"matrix": [0, 3], "x": 4.5, "y": 0},
{"matrix": [0, 4], "x": 5.5, "y": 0},
{"matrix": [0, 5], "x": 6.5, "y": 0},
{"matrix": [0, 6], "x": 7.5, "y": 0},
{"matrix": [0, 7], "x": 8.5, "y": 0},
{"matrix": [0, 8], "x": 9.5, "y": 0},
{"matrix": [0, 9], "x": 10.5, "y": 0},
{"matrix": [0, 10], "x": 11.5, "y": 0},
{"matrix": [0, 11], "x": 12.5, "y": 0},
{"matrix": [0, 12], "x": 13.5, "y": 0},
{"matrix": [0, 13], "x": 14.5, "y": 0},
{"matrix": [2, 13], "x": 15.5, "y": 0},
{"matrix": [0, 14], "x": 16.75, "y": 0},
{"matrix": [1, 0], "x": 1.5, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 3, "y": 1},
{"matrix": [1, 2], "x": 4, "y": 1},
{"matrix": [1, 3], "x": 5, "y": 1},
{"matrix": [1, 4], "x": 6, "y": 1},
{"matrix": [1, 5], "x": 7, "y": 1},
{"matrix": [1, 6], "x": 8, "y": 1},
{"matrix": [1, 7], "x": 9, "y": 1},
{"matrix": [1, 8], "x": 10, "y": 1},
{"matrix": [1, 9], "x": 11, "y": 1},
{"matrix": [1, 10], "x": 12, "y": 1},
{"matrix": [1, 11], "x": 13, "y": 1},
{"matrix": [1, 12], "x": 14, "y": 1},
{"matrix": [1, 13], "x": 15, "y": 1, "w": 1.5},
{"matrix": [1, 14], "x": 16.75, "y": 1},
{"matrix": [2, 0], "x": 1.5, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 3.25, "y": 2},
{"matrix": [2, 2], "x": 4.25, "y": 2},
{"matrix": [2, 3], "x": 5.25, "y": 2},
{"matrix": [2, 4], "x": 6.25, "y": 2},
{"matrix": [2, 5], "x": 7.25, "y": 2},
{"matrix": [2, 6], "x": 8.25, "y": 2},
{"matrix": [2, 7], "x": 9.25, "y": 2},
{"matrix": [2, 8], "x": 10.25, "y": 2},
{"matrix": [2, 9], "x": 11.25, "y": 2},
{"matrix": [2, 10], "x": 12.25, "y": 2},
{"matrix": [2, 11], "x": 13.25, "y": 2},
{"matrix": [2, 12], "x": 14.25, "y": 2, "w": 2.25},
{"matrix": [2, 14], "x": 16.75, "y": 2},
{"matrix": [3, 0], "x": 1.5, "y": 3, "w": 2.25},
{"matrix": [3, 2], "x": 3.75, "y": 3},
{"matrix": [3, 3], "x": 4.75, "y": 3},
{"matrix": [3, 4], "x": 5.75, "y": 3},
{"matrix": [3, 5], "x": 6.75, "y": 3},
{"matrix": [3, 6], "x": 7.75, "y": 3},
{"matrix": [3, 7], "x": 8.75, "y": 3},
{"matrix": [3, 8], "x": 9.75, "y": 3},
{"matrix": [3, 9], "x": 10.75, "y": 3},
{"matrix": [3, 10], "x": 11.75, "y": 3},
{"matrix": [3, 11], "x": 12.75, "y": 3},
{"matrix": [3, 12], "x": 13.75, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 15.5, "y": 3},
{"matrix": [4, 0], "x": 1.5, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 2.75, "y": 4, "w": 1.25},
{"matrix": [4, 2], "x": 4, "y": 4, "w": 1.25},
{"matrix": [4, 6], "x": 5.25, "y": 4, "w": 6.25},
{"matrix": [4, 10], "x": 11.5, "y": 4, "w": 1.25},
{"matrix": [4, 11], "x": 12.75, "y": 4, "w": 1.25},
{"matrix": [4, 12], "x": 14.5, "y": 4},
{"matrix": [4, 13], "x": 15.5, "y": 4},
{"matrix": [4, 14], "x": 16.5, "y": 4}
]
},
"LAYOUT_ansi_blocker_tsangan": {
"layout": [
{"matrix": [3, 14], "x": 0, "y": 0},
{"matrix": [0, 0], "x": 1.5, "y": 0},
{"matrix": [0, 1], "x": 2.5, "y": 0},
{"matrix": [0, 2], "x": 3.5, "y": 0},
{"matrix": [0, 3], "x": 4.5, "y": 0},
{"matrix": [0, 4], "x": 5.5, "y": 0},
{"matrix": [0, 5], "x": 6.5, "y": 0},
{"matrix": [0, 6], "x": 7.5, "y": 0},
{"matrix": [0, 7], "x": 8.5, "y": 0},
{"matrix": [0, 8], "x": 9.5, "y": 0},
{"matrix": [0, 9], "x": 10.5, "y": 0},
{"matrix": [0, 10], "x": 11.5, "y": 0},
{"matrix": [0, 11], "x": 12.5, "y": 0},
{"matrix": [0, 12], "x": 13.5, "y": 0},
{"matrix": [0, 13], "x": 14.5, "y": 0, "w": 2},
{"matrix": [0, 14], "x": 16.75, "y": 0},
{"matrix": [1, 0], "x": 1.5, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 3, "y": 1},
{"matrix": [1, 2], "x": 4, "y": 1},
{"matrix": [1, 3], "x": 5, "y": 1},
{"matrix": [1, 4], "x": 6, "y": 1},
{"matrix": [1, 5], "x": 7, "y": 1},
{"matrix": [1, 6], "x": 8, "y": 1},
{"matrix": [1, 7], "x": 9, "y": 1},
{"matrix": [1, 8], "x": 10, "y": 1},
{"matrix": [1, 9], "x": 11, "y": 1},
{"matrix": [1, 10], "x": 12, "y": 1},
{"matrix": [1, 11], "x": 13, "y": 1},
{"matrix": [1, 12], "x": 14, "y": 1},
{"matrix": [1, 13], "x": 15, "y": 1, "w": 1.5},
{"matrix": [1, 14], "x": 16.75, "y": 1},
{"matrix": [2, 0], "x": 1.5, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 3.25, "y": 2},
{"matrix": [2, 2], "x": 4.25, "y": 2},
{"matrix": [2, 3], "x": 5.25, "y": 2},
{"matrix": [2, 4], "x": 6.25, "y": 2},
{"matrix": [2, 5], "x": 7.25, "y": 2},
{"matrix": [2, 6], "x": 8.25, "y": 2},
{"matrix": [2, 7], "x": 9.25, "y": 2},
{"matrix": [2, 8], "x": 10.25, "y": 2},
{"matrix": [2, 9], "x": 11.25, "y": 2},
{"matrix": [2, 10], "x": 12.25, "y": 2},
{"matrix": [2, 11], "x": 13.25, "y": 2},
{"matrix": [2, 12], "x": 14.25, "y": 2, "w": 2.25},
{"matrix": [2, 14], "x": 16.75, "y": 2},
{"matrix": [3, 0], "x": 1.5, "y": 3, "w": 2.25},
{"matrix": [3, 2], "x": 3.75, "y": 3},
{"matrix": [3, 3], "x": 4.75, "y": 3},
{"matrix": [3, 4], "x": 5.75, "y": 3},
{"matrix": [3, 5], "x": 6.75, "y": 3},
{"matrix": [3, 6], "x": 7.75, "y": 3},
{"matrix": [3, 7], "x": 8.75, "y": 3},
{"matrix": [3, 8], "x": 9.75, "y": 3},
{"matrix": [3, 9], "x": 10.75, "y": 3},
{"matrix": [3, 10], "x": 11.75, "y": 3},
{"matrix": [3, 11], "x": 12.75, "y": 3},
{"matrix": [3, 12], "x": 13.75, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 15.5, "y": 3},
{"matrix": [4, 0], "x": 1.5, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 3, "y": 4},
{"matrix": [4, 2], "x": 4, "y": 4, "w": 1.5},
{"matrix": [4, 6], "x": 5.5, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.5},
{"matrix": [4, 12], "x": 14.5, "y": 4},
{"matrix": [4, 13], "x": 15.5, "y": 4},
{"matrix": [4, 14], "x": 16.5, "y": 4}
]
},
"LAYOUT_ansi_blocker_tsangan_split_bs": {
"layout": [
{"matrix": [3, 14], "x": 0, "y": 0},
{"matrix": [0, 0], "x": 1.5, "y": 0},
{"matrix": [0, 1], "x": 2.5, "y": 0},
{"matrix": [0, 2], "x": 3.5, "y": 0},
{"matrix": [0, 3], "x": 4.5, "y": 0},
{"matrix": [0, 4], "x": 5.5, "y": 0},
{"matrix": [0, 5], "x": 6.5, "y": 0},
{"matrix": [0, 6], "x": 7.5, "y": 0},
{"matrix": [0, 7], "x": 8.5, "y": 0},
{"matrix": [0, 8], "x": 9.5, "y": 0},
{"matrix": [0, 9], "x": 10.5, "y": 0},
{"matrix": [0, 10], "x": 11.5, "y": 0},
{"matrix": [0, 11], "x": 12.5, "y": 0},
{"matrix": [0, 12], "x": 13.5, "y": 0},
{"matrix": [0, 13], "x": 14.5, "y": 0},
{"matrix": [2, 13], "x": 15.5, "y": 0},
{"matrix": [0, 14], "x": 16.75, "y": 0},
{"matrix": [1, 0], "x": 1.5, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 3, "y": 1},
{"matrix": [1, 2], "x": 4, "y": 1},
{"matrix": [1, 3], "x": 5, "y": 1},
{"matrix": [1, 4], "x": 6, "y": 1},
{"matrix": [1, 5], "x": 7, "y": 1},
{"matrix": [1, 6], "x": 8, "y": 1},
{"matrix": [1, 7], "x": 9, "y": 1},
{"matrix": [1, 8], "x": 10, "y": 1},
{"matrix": [1, 9], "x": 11, "y": 1},
{"matrix": [1, 10], "x": 12, "y": 1},
{"matrix": [1, 11], "x": 13, "y": 1},
{"matrix": [1, 12], "x": 14, "y": 1},
{"matrix": [1, 13], "x": 15, "y": 1, "w": 1.5},
{"matrix": [1, 14], "x": 16.75, "y": 1},
{"matrix": [2, 0], "x": 1.5, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 3.25, "y": 2},
{"matrix": [2, 2], "x": 4.25, "y": 2},
{"matrix": [2, 3], "x": 5.25, "y": 2},
{"matrix": [2, 4], "x": 6.25, "y": 2},
{"matrix": [2, 5], "x": 7.25, "y": 2},
{"matrix": [2, 6], "x": 8.25, "y": 2},
{"matrix": [2, 7], "x": 9.25, "y": 2},
{"matrix": [2, 8], "x": 10.25, "y": 2},
{"matrix": [2, 9], "x": 11.25, "y": 2},
{"matrix": [2, 10], "x": 12.25, "y": 2},
{"matrix": [2, 11], "x": 13.25, "y": 2},
{"matrix": [2, 12], "x": 14.25, "y": 2, "w": 2.25},
{"matrix": [2, 14], "x": 16.75, "y": 2},
{"matrix": [3, 0], "x": 1.5, "y": 3, "w": 2.25},
{"matrix": [3, 2], "x": 3.75, "y": 3},
{"matrix": [3, 3], "x": 4.75, "y": 3},
{"matrix": [3, 4], "x": 5.75, "y": 3},
{"matrix": [3, 5], "x": 6.75, "y": 3},
{"matrix": [3, 6], "x": 7.75, "y": 3},
{"matrix": [3, 7], "x": 8.75, "y": 3},
{"matrix": [3, 8], "x": 9.75, "y": 3},
{"matrix": [3, 9], "x": 10.75, "y": 3},
{"matrix": [3, 10], "x": 11.75, "y": 3},
{"matrix": [3, 11], "x": 12.75, "y": 3},
{"matrix": [3, 12], "x": 13.75, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 15.5, "y": 3},
{"matrix": [4, 0], "x": 1.5, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 3, "y": 4},
{"matrix": [4, 2], "x": 4, "y": 4, "w": 1.5},
{"matrix": [4, 6], "x": 5.5, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.5},
{"matrix": [4, 12], "x": 14.5, "y": 4},
{"matrix": [4, 13], "x": 15.5, "y": 4},
{"matrix": [4, 14], "x": 16.5, "y": 4}
]
},
"LAYOUT_iso_blocker": {
"layout": [
{"matrix": [3, 14], "x": 0, "y": 0},
{"matrix": [0, 0], "x": 1.5, "y": 0},
{"matrix": [0, 1], "x": 2.5, "y": 0},
{"matrix": [0, 2], "x": 3.5, "y": 0},
{"matrix": [0, 3], "x": 4.5, "y": 0},
{"matrix": [0, 4], "x": 5.5, "y": 0},
{"matrix": [0, 5], "x": 6.5, "y": 0},
{"matrix": [0, 6], "x": 7.5, "y": 0},
{"matrix": [0, 7], "x": 8.5, "y": 0},
{"matrix": [0, 8], "x": 9.5, "y": 0},
{"matrix": [0, 9], "x": 10.5, "y": 0},
{"matrix": [0, 10], "x": 11.5, "y": 0},
{"matrix": [0, 11], "x": 12.5, "y": 0},
{"matrix": [0, 12], "x": 13.5, "y": 0},
{"matrix": [0, 13], "x": 14.5, "y": 0, "w": 2},
{"matrix": [0, 14], "x": 16.75, "y": 0},
{"matrix": [1, 0], "x": 1.5, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 3, "y": 1},
{"matrix": [1, 2], "x": 4, "y": 1},
{"matrix": [1, 3], "x": 5, "y": 1},
{"matrix": [1, 4], "x": 6, "y": 1},
{"matrix": [1, 5], "x": 7, "y": 1},
{"matrix": [1, 6], "x": 8, "y": 1},
{"matrix": [1, 7], "x": 9, "y": 1},
{"matrix": [1, 8], "x": 10, "y": 1},
{"matrix": [1, 9], "x": 11, "y": 1},
{"matrix": [1, 10], "x": 12, "y": 1},
{"matrix": [1, 11], "x": 13, "y": 1},
{"matrix": [1, 12], "x": 14, "y": 1},
{"matrix": [1, 14], "x": 16.75, "y": 1},
{"matrix": [2, 0], "x": 1.5, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 3.25, "y": 2},
{"matrix": [2, 2], "x": 4.25, "y": 2},
{"matrix": [2, 3], "x": 5.25, "y": 2},
{"matrix": [2, 4], "x": 6.25, "y": 2},
{"matrix": [2, 5], "x": 7.25, "y": 2},
{"matrix": [2, 6], "x": 8.25, "y": 2},
{"matrix": [2, 7], "x": 9.25, "y": 2},
{"matrix": [2, 8], "x": 10.25, "y": 2},
{"matrix": [2, 9], "x": 11.25, "y": 2},
{"matrix": [2, 10], "x": 12.25, "y": 2},
{"matrix": [2, 11], "x": 13.25, "y": 2},
{"matrix": [2, 12], "x": 14.25, "y": 2},
{"matrix": [1, 13], "x": 15.25, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 14], "x": 16.75, "y": 2},
{"matrix": [3, 0], "x": 1.5, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 2.75, "y": 3},
{"matrix": [3, 2], "x": 3.75, "y": 3},
{"matrix": [3, 3], "x": 4.75, "y": 3},
{"matrix": [3, 4], "x": 5.75, "y": 3},
{"matrix": [3, 5], "x": 6.75, "y": 3},
{"matrix": [3, 6], "x": 7.75, "y": 3},
{"matrix": [3, 7], "x": 8.75, "y": 3},
{"matrix": [3, 8], "x": 9.75, "y": 3},
{"matrix": [3, 9], "x": 10.75, "y": 3},
{"matrix": [3, 10], "x": 11.75, "y": 3},
{"matrix": [3, 11], "x": 12.75, "y": 3},
{"matrix": [3, 12], "x": 13.75, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 15.5, "y": 3},
{"matrix": [4, 0], "x": 1.5, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 2.75, "y": 4, "w": 1.25},
{"matrix": [4, 2], "x": 4, "y": 4, "w": 1.25},
{"matrix": [4, 6], "x": 5.25, "y": 4, "w": 6.25},
{"matrix": [4, 10], "x": 11.5, "y": 4, "w": 1.25},
{"matrix": [4, 11], "x": 12.75, "y": 4, "w": 1.25},
{"matrix": [4, 12], "x": 14.5, "y": 4},
{"matrix": [4, 13], "x": 15.5, "y": 4},
{"matrix": [4, 14], "x": 16.5, "y": 4}
]
},
"LAYOUT_iso_blocker_split_bs": {
"layout": [
{"matrix": [3, 14], "x": 0, "y": 0},
{"matrix": [0, 0], "x": 1.5, "y": 0},
{"matrix": [0, 1], "x": 2.5, "y": 0},
{"matrix": [0, 2], "x": 3.5, "y": 0},
{"matrix": [0, 3], "x": 4.5, "y": 0},
{"matrix": [0, 4], "x": 5.5, "y": 0},
{"matrix": [0, 5], "x": 6.5, "y": 0},
{"matrix": [0, 6], "x": 7.5, "y": 0},
{"matrix": [0, 7], "x": 8.5, "y": 0},
{"matrix": [0, 8], "x": 9.5, "y": 0},
{"matrix": [0, 9], "x": 10.5, "y": 0},
{"matrix": [0, 10], "x": 11.5, "y": 0},
{"matrix": [0, 11], "x": 12.5, "y": 0},
{"matrix": [0, 12], "x": 13.5, "y": 0},
{"matrix": [0, 13], "x": 14.5, "y": 0},
{"matrix": [2, 13], "x": 15.5, "y": 0},
{"matrix": [0, 14], "x": 16.75, "y": 0},
{"matrix": [1, 0], "x": 1.5, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 3, "y": 1},
{"matrix": [1, 2], "x": 4, "y": 1},
{"matrix": [1, 3], "x": 5, "y": 1},
{"matrix": [1, 4], "x": 6, "y": 1},
{"matrix": [1, 5], "x": 7, "y": 1},
{"matrix": [1, 6], "x": 8, "y": 1},
{"matrix": [1, 7], "x": 9, "y": 1},
{"matrix": [1, 8], "x": 10, "y": 1},
{"matrix": [1, 9], "x": 11, "y": 1},
{"matrix": [1, 10], "x": 12, "y": 1},
{"matrix": [1, 11], "x": 13, "y": 1},
{"matrix": [1, 12], "x": 14, "y": 1},
{"matrix": [1, 14], "x": 16.75, "y": 1},
{"matrix": [2, 0], "x": 1.5, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 3.25, "y": 2},
{"matrix": [2, 2], "x": 4.25, "y": 2},
{"matrix": [2, 3], "x": 5.25, "y": 2},
{"matrix": [2, 4], "x": 6.25, "y": 2},
{"matrix": [2, 5], "x": 7.25, "y": 2},
{"matrix": [2, 6], "x": 8.25, "y": 2},
{"matrix": [2, 7], "x": 9.25, "y": 2},
{"matrix": [2, 8], "x": 10.25, "y": 2},
{"matrix": [2, 9], "x": 11.25, "y": 2},
{"matrix": [2, 10], "x": 12.25, "y": 2},
{"matrix": [2, 11], "x": 13.25, "y": 2},
{"matrix": [2, 12], "x": 14.25, "y": 2},
{"matrix": [1, 13], "x": 15.25, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 14], "x": 16.75, "y": 2},
{"matrix": [3, 0], "x": 1.5, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 2.75, "y": 3},
{"matrix": [3, 2], "x": 3.75, "y": 3},
{"matrix": [3, 3], "x": 4.75, "y": 3},
{"matrix": [3, 4], "x": 5.75, "y": 3},
{"matrix": [3, 5], "x": 6.75, "y": 3},
{"matrix": [3, 6], "x": 7.75, "y": 3},
{"matrix": [3, 7], "x": 8.75, "y": 3},
{"matrix": [3, 8], "x": 9.75, "y": 3},
{"matrix": [3, 9], "x": 10.75, "y": 3},
{"matrix": [3, 10], "x": 11.75, "y": 3},
{"matrix": [3, 11], "x": 12.75, "y": 3},
{"matrix": [3, 12], "x": 13.75, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 15.5, "y": 3},
{"matrix": [4, 0], "x": 1.5, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 2.75, "y": 4, "w": 1.25},
{"matrix": [4, 2], "x": 4, "y": 4, "w": 1.25},
{"matrix": [4, 6], "x": 5.25, "y": 4, "w": 6.25},
{"matrix": [4, 10], "x": 11.5, "y": 4, "w": 1.25},
{"matrix": [4, 11], "x": 12.75, "y": 4, "w": 1.25},
{"matrix": [4, 12], "x": 14.5, "y": 4},
{"matrix": [4, 13], "x": 15.5, "y": 4},
{"matrix": [4, 14], "x": 16.5, "y": 4}
]
},
"LAYOUT_iso_blocker_tsangan": {
"layout": [
{"matrix": [3, 14], "x": 0, "y": 0},
{"matrix": [0, 0], "x": 1.5, "y": 0},
{"matrix": [0, 1], "x": 2.5, "y": 0},
{"matrix": [0, 2], "x": 3.5, "y": 0},
{"matrix": [0, 3], "x": 4.5, "y": 0},
{"matrix": [0, 4], "x": 5.5, "y": 0},
{"matrix": [0, 5], "x": 6.5, "y": 0},
{"matrix": [0, 6], "x": 7.5, "y": 0},
{"matrix": [0, 7], "x": 8.5, "y": 0},
{"matrix": [0, 8], "x": 9.5, "y": 0},
{"matrix": [0, 9], "x": 10.5, "y": 0},
{"matrix": [0, 10], "x": 11.5, "y": 0},
{"matrix": [0, 11], "x": 12.5, "y": 0},
{"matrix": [0, 12], "x": 13.5, "y": 0},
{"matrix": [0, 13], "x": 14.5, "y": 0, "w": 2},
{"matrix": [0, 14], "x": 16.75, "y": 0},
{"matrix": [1, 0], "x": 1.5, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 3, "y": 1},
{"matrix": [1, 2], "x": 4, "y": 1},
{"matrix": [1, 3], "x": 5, "y": 1},
{"matrix": [1, 4], "x": 6, "y": 1},
{"matrix": [1, 5], "x": 7, "y": 1},
{"matrix": [1, 6], "x": 8, "y": 1},
{"matrix": [1, 7], "x": 9, "y": 1},
{"matrix": [1, 8], "x": 10, "y": 1},
{"matrix": [1, 9], "x": 11, "y": 1},
{"matrix": [1, 10], "x": 12, "y": 1},
{"matrix": [1, 11], "x": 13, "y": 1},
{"matrix": [1, 12], "x": 14, "y": 1},
{"matrix": [1, 14], "x": 16.75, "y": 1},
{"matrix": [2, 0], "x": 1.5, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 3.25, "y": 2},
{"matrix": [2, 2], "x": 4.25, "y": 2},
{"matrix": [2, 3], "x": 5.25, "y": 2},
{"matrix": [2, 4], "x": 6.25, "y": 2},
{"matrix": [2, 5], "x": 7.25, "y": 2},
{"matrix": [2, 6], "x": 8.25, "y": 2},
{"matrix": [2, 7], "x": 9.25, "y": 2},
{"matrix": [2, 8], "x": 10.25, "y": 2},
{"matrix": [2, 9], "x": 11.25, "y": 2},
{"matrix": [2, 10], "x": 12.25, "y": 2},
{"matrix": [2, 11], "x": 13.25, "y": 2},
{"matrix": [2, 12], "x": 14.25, "y": 2},
{"matrix": [1, 13], "x": 15.25, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 14], "x": 16.75, "y": 2},
{"matrix": [3, 0], "x": 1.5, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 2.75, "y": 3},
{"matrix": [3, 2], "x": 3.75, "y": 3},
{"matrix": [3, 3], "x": 4.75, "y": 3},
{"matrix": [3, 4], "x": 5.75, "y": 3},
{"matrix": [3, 5], "x": 6.75, "y": 3},
{"matrix": [3, 6], "x": 7.75, "y": 3},
{"matrix": [3, 7], "x": 8.75, "y": 3},
{"matrix": [3, 8], "x": 9.75, "y": 3},
{"matrix": [3, 9], "x": 10.75, "y": 3},
{"matrix": [3, 10], "x": 11.75, "y": 3},
{"matrix": [3, 11], "x": 12.75, "y": 3},
{"matrix": [3, 12], "x": 13.75, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 15.5, "y": 3},
{"matrix": [4, 0], "x": 1.5, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 3, "y": 4},
{"matrix": [4, 2], "x": 4, "y": 4, "w": 1.5},
{"matrix": [4, 6], "x": 5.5, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.5},
{"matrix": [4, 12], "x": 14.5, "y": 4},
{"matrix": [4, 13], "x": 15.5, "y": 4},
{"matrix": [4, 14], "x": 16.5, "y": 4}
]
},
"LAYOUT_iso_blocker_tsangan_split_bs": {
"layout": [
{"matrix": [3, 14], "x": 0, "y": 0},
{"matrix": [0, 0], "x": 1.5, "y": 0},
{"matrix": [0, 1], "x": 2.5, "y": 0},
{"matrix": [0, 2], "x": 3.5, "y": 0},
{"matrix": [0, 3], "x": 4.5, "y": 0},
{"matrix": [0, 4], "x": 5.5, "y": 0},
{"matrix": [0, 5], "x": 6.5, "y": 0},
{"matrix": [0, 6], "x": 7.5, "y": 0},
{"matrix": [0, 7], "x": 8.5, "y": 0},
{"matrix": [0, 8], "x": 9.5, "y": 0},
{"matrix": [0, 9], "x": 10.5, "y": 0},
{"matrix": [0, 10], "x": 11.5, "y": 0},
{"matrix": [0, 11], "x": 12.5, "y": 0},
{"matrix": [0, 12], "x": 13.5, "y": 0},
{"matrix": [0, 13], "x": 14.5, "y": 0},
{"matrix": [2, 13], "x": 15.5, "y": 0},
{"matrix": [0, 14], "x": 16.75, "y": 0},
{"matrix": [1, 0], "x": 1.5, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 3, "y": 1},
{"matrix": [1, 2], "x": 4, "y": 1},
{"matrix": [1, 3], "x": 5, "y": 1},
{"matrix": [1, 4], "x": 6, "y": 1},
{"matrix": [1, 5], "x": 7, "y": 1},
{"matrix": [1, 6], "x": 8, "y": 1},
{"matrix": [1, 7], "x": 9, "y": 1},
{"matrix": [1, 8], "x": 10, "y": 1},
{"matrix": [1, 9], "x": 11, "y": 1},
{"matrix": [1, 10], "x": 12, "y": 1},
{"matrix": [1, 11], "x": 13, "y": 1},
{"matrix": [1, 12], "x": 14, "y": 1},
{"matrix": [1, 14], "x": 16.75, "y": 1},
{"matrix": [2, 0], "x": 1.5, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 3.25, "y": 2},
{"matrix": [2, 2], "x": 4.25, "y": 2},
{"matrix": [2, 3], "x": 5.25, "y": 2},
{"matrix": [2, 4], "x": 6.25, "y": 2},
{"matrix": [2, 5], "x": 7.25, "y": 2},
{"matrix": [2, 6], "x": 8.25, "y": 2},
{"matrix": [2, 7], "x": 9.25, "y": 2},
{"matrix": [2, 8], "x": 10.25, "y": 2},
{"matrix": [2, 9], "x": 11.25, "y": 2},
{"matrix": [2, 10], "x": 12.25, "y": 2},
{"matrix": [2, 11], "x": 13.25, "y": 2},
{"matrix": [2, 12], "x": 14.25, "y": 2},
{"matrix": [1, 13], "x": 15.25, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 14], "x": 16.75, "y": 2},
{"matrix": [3, 0], "x": 1.5, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 2.75, "y": 3},
{"matrix": [3, 2], "x": 3.75, "y": 3},
{"matrix": [3, 3], "x": 4.75, "y": 3},
{"matrix": [3, 4], "x": 5.75, "y": 3},
{"matrix": [3, 5], "x": 6.75, "y": 3},
{"matrix": [3, 6], "x": 7.75, "y": 3},
{"matrix": [3, 7], "x": 8.75, "y": 3},
{"matrix": [3, 8], "x": 9.75, "y": 3},
{"matrix": [3, 9], "x": 10.75, "y": 3},
{"matrix": [3, 10], "x": 11.75, "y": 3},
{"matrix": [3, 11], "x": 12.75, "y": 3},
{"matrix": [3, 12], "x": 13.75, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 15.5, "y": 3},
{"matrix": [4, 0], "x": 1.5, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 3, "y": 4},
{"matrix": [4, 2], "x": 4, "y": 4, "w": 1.5},
{"matrix": [4, 6], "x": 5.5, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.5},
{"matrix": [4, 12], "x": 14.5, "y": 4},
{"matrix": [4, 13], "x": 15.5, "y": 4},
{"matrix": [4, 14], "x": 16.5, "y": 4}
]
}
}
}

View File

@@ -0,0 +1,63 @@
/*
Copyright 2022 <hello@keebfront.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "analog.h"
uint8_t last_val = 0;
extern MidiDevice midi_device;
enum layers {
_LAYER0,
_LAYER1,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_LAYER0] = LAYOUT_all(
KC_MUTE, QK_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_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_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_LEFT, KC_DOWN, KC_RGHT
),
[_LAYER1] = LAYOUT_all(
_______, QK_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_END,
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______,
_______, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU,
_______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_LAYER0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_LAYER1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
};
#endif
void slider(void) {
uint8_t current_val = analogReadPin(SLIDER_PINA) >>3;
if ( last_val - current_val < -1 || last_val - current_val > 1 ) {
midi_send_cc(&midi_device, 0, 90, current_val );
}
last_val = current_val;
}
void housekeeping_task_user(void) {
slider();
}

View File

@@ -0,0 +1,2 @@
ENCODER_MAP_ENABLE = yes
ANALOG_DRIVER_REQUIRED = yes

View File

@@ -0,0 +1,29 @@
# Vanguard65
![Vanguard65](https://i.imgur.com/1AnyRaEh.png)
*A 65% keyboard with knob and slider by [Keebfront](https://keebfront.com/).*
* Keyboard Maintainer: [Keebfront](https://keebfront.com/)
* Hardware Supported: Vanguard65
* Hardware Availability: https://www.keebfront.com/product/vanguard65
Make example for this keyboard (after setting up your build environment):
make keebfront/vanguard65:default
Flashing example for this keyboard:
make keebfront/vanguard65:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 2 ways:
* **Physical reset**: pressing the two reset pads on the back of the PCB with tweezers.
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
## Matrix Diagram
![MatrixCoordinates](https://i.imgur.com/rQfEXyeh.jpeg)

View File

@@ -0,0 +1,2 @@
# Processor frequency
F_CPU = 8000000

View File

@@ -0,0 +1,26 @@
// Copyright 2024 Danny Nguyen (@nooges)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/* Defines for the split keyboard setup */
#define SERIAL_USART_DRIVER SD3 // USART 3
#define SERIAL_USART_TX_PIN B10
#define SERIAL_USART_RX_PIN B11
#define SERIAL_USART_TX_PAL_MODE 7
#define SERIAL_USART_RX_PAL_MODE 7
#define SERIAL_USART_FULL_DUPLEX
#define SERIAL_USART_PIN_SWAP
#define USB_VBUS_PIN C6
#define SPLIT_HAND_PIN A0
/* Defines for the RGB matrix */
#ifdef RGB_MATRIX_ENABLE
# define WS2812_PWM_DRIVER PWMD3
# define WS2812_PWM_CHANNEL 4
# define WS2812_PWM_PAL_MODE 10
# define WS2812_DMA_STREAM STM32_DMA1_STREAM2
# define WS2812_DMA_CHANNEL 2
# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP
#endif

View File

@@ -0,0 +1,11 @@
// Copyright 2024 Danny Nguyen (@nooges)
// SPDX-License-Identifier: GPL-2.0-or-later
#include "quantum.h"
void keyboard_pre_init_kb(void) {
// Disable the PD peripheral in pre-init because its pins (B4, B6) are being used in the matrix:
PWR->CR3 |= PWR_CR3_UCPD_DBDIS;
// Call the corresponding _user() function (see https://docs.qmk.fm/#/custom_quantum_functions)
keyboard_pre_init_user();
}

View File

@@ -0,0 +1,10 @@
// Copyright 2024 Danny Nguyen (@nooges)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define HAL_USE_SERIAL TRUE
#define HAL_USE_PWM TRUE
#include_next <halconf.h>

View File

@@ -0,0 +1,257 @@
{
"keyboard_name": "Iris LM-G Rev. 1",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"encoder": true,
"extrakey": true,
"mousekey": true,
"rgb_matrix": true
},
"encoder": {
"rotary": [
{"pin_a": "A15", "pin_b": "C10"},
{"pin_a": "B13", "pin_b": "B12"}
]
},
"ws2812": {
"driver": "pwm",
"pin": "B7"
},
"matrix_pins": {
"cols": ["C4", "B2", "A5", "C11", "C13", "C14"],
"rows": ["A4", "A3", "B14", "B5", "F1"]
},
"split": {
"enabled": true,
"encoder": {
"right": {
"rotary": [
{"pin_a": "A5", "pin_b": "A6"},
{"pin_a": "A15", "pin_b": "C10"}
]
}
},
"matrix_pins": {
"right": {
"cols": ["C11", "C13", "B6", "B9", "B12", "B2"],
"rows": ["C4", "A7", "B14", "B5", "F1"]
}
},
"serial": {
"driver": "usart"
},
"transport": {
"sync" :{
"matrix_state": true
}
}
},
"processor": "STM32G431",
"usb": {
"device_version": "1.0.0",
"pid": "0x1656"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.375},
{"matrix": [0, 1], "x": 1, "y": 0.375},
{"matrix": [0, 2], "x": 2, "y": 0.125},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0.125},
{"matrix": [0, 5], "x": 5, "y": 0.25},
{"matrix": [5, 5], "x": 9, "y": 0.25},
{"matrix": [5, 4], "x": 10, "y": 0.125},
{"matrix": [5, 3], "x": 11, "y": 0},
{"matrix": [5, 2], "x": 12, "y": 0.125},
{"matrix": [5, 1], "x": 13, "y": 0.375},
{"matrix": [5, 0], "x": 14, "y": 0.375},
{"matrix": [1, 0], "x": 0, "y": 1.375},
{"matrix": [1, 1], "x": 1, "y": 1.375},
{"matrix": [1, 2], "x": 2, "y": 1.125},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1.125},
{"matrix": [1, 5], "x": 5, "y": 1.25},
{"matrix": [6, 5], "x": 9, "y": 1.25},
{"matrix": [6, 4], "x": 10, "y": 1.125},
{"matrix": [6, 3], "x": 11, "y": 1},
{"matrix": [6, 2], "x": 12, "y": 1.125},
{"matrix": [6, 1], "x": 13, "y": 1.375},
{"matrix": [6, 0], "x": 14, "y": 1.375},
{"matrix": [2, 0], "x": 0, "y": 2.375},
{"matrix": [2, 1], "x": 1, "y": 2.375},
{"matrix": [2, 2], "x": 2, "y": 2.125},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2.125},
{"matrix": [2, 5], "x": 5, "y": 2.25},
{"matrix": [7, 5], "x": 9, "y": 2.25},
{"matrix": [7, 4], "x": 10, "y": 2.125},
{"matrix": [7, 3], "x": 11, "y": 2},
{"matrix": [7, 2], "x": 12, "y": 2.125},
{"matrix": [7, 1], "x": 13, "y": 2.375},
{"matrix": [7, 0], "x": 14, "y": 2.375},
{"matrix": [3, 0], "x": 0, "y": 3.375},
{"matrix": [3, 1], "x": 1, "y": 3.375},
{"matrix": [3, 2], "x": 2, "y": 3.125},
{"matrix": [3, 3], "x": 3, "y": 3},
{"matrix": [3, 4], "x": 4, "y": 3.125},
{"matrix": [3, 5], "x": 5, "y": 3.25},
{"matrix": [4, 5], "x": 6.15, "y": 3.75},
{"matrix": [9, 5], "x": 7.85, "y": 3.75},
{"matrix": [8, 5], "x": 9, "y": 3.25},
{"matrix": [8, 4], "x": 10, "y": 3.125},
{"matrix": [8, 3], "x": 11, "y": 3},
{"matrix": [8, 2], "x": 12, "y": 3.125},
{"matrix": [8, 1], "x": 13, "y": 3.375},
{"matrix": [8, 0], "x": 14, "y": 3.375},
{"matrix": [4, 2], "x": 3.5, "y": 4.25},
{"matrix": [4, 3], "x": 4.5, "y": 4.375},
{"matrix": [4, 4], "x": 5.6, "y": 4.75},
{"matrix": [9, 4], "x": 8.4, "y": 4.75},
{"matrix": [9, 3], "x": 9.5, "y": 4.375},
{"matrix": [9, 2], "x": 10.5, "y": 4.25}
]
}
},
"rgb_matrix": {
"animations": {
"alphas_mods": true,
"gradient_up_down": true,
"gradient_left_right": true,
"breathing": true,
"band_sat": true,
"band_val": true,
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_up_down": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"rainbow_moving_chevron": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"dual_beacon": true,
"rainbow_beacon": true,
"rainbow_pinwheels": true,
"raindrops": true,
"jellybean_raindrops": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"pixel_fractal": true,
"pixel_flow": true,
"pixel_rain": true,
"typing_heatmap": true,
"digital_rain": true,
"solid_reactive_simple": true,
"solid_reactive": true,
"solid_reactive_wide": true,
"solid_reactive_multiwide": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
"solid_reactive_nexus": true,
"solid_reactive_multinexus": true,
"splash": true,
"multisplash": true,
"solid_splash": true,
"solid_multisplash": true
},
"driver": "ws2812",
"split_count": [34, 34],
"max_brightness": 120,
"layout": [
{"matrix": [0,0], "flags":4, "x":0, "y":5},
{"flags":2, "x":8, "y":5},
{"matrix": [0,1], "flags":4, "x":16, "y":5},
{"matrix": [0,2], "flags":4, "x":32, "y":2},
{"flags":2, "x":40, "y":1},
{"matrix": [0,3], "flags":4, "x":48, "y":0},
{"matrix": [0,4], "flags":4, "x":64, "y":5},
{"flags":2, "x":72, "y":3},
{"matrix": [0,5], "flags":4, "x":80, "y":3},
{"matrix": [1,5], "flags":4, "x":80, "y":17},
{"matrix": [1,4], "flags":4, "x":64, "y":15},
{"matrix": [1,3], "flags":4, "x":48, "y":13},
{"matrix": [1,2], "flags":4, "x":32, "y":15},
{"matrix": [1,1], "flags":4, "x":16, "y":18},
{"matrix": [1,0], "flags":4, "x":0, "y":18},
{"matrix": [2,0], "flags":4, "x":0, "y":32},
{"matrix": [2,1], "flags":4, "x":16, "y":32},
{"matrix": [2,2], "flags":4, "x":32, "y":28},
{"matrix": [2,3], "flags":4, "x":48, "y":27},
{"matrix": [2,4], "flags":4, "x":64, "y":28},
{"matrix": [2,5], "flags":4, "x":80, "y":30},
{"matrix": [3,5], "flags":4, "x":80, "y":43},
{"matrix": [3,4], "flags":4, "x":64, "y":42},
{"matrix": [3,3], "flags":4, "x":48, "y":40},
{"flags":2, "x":40, "y":50},
{"matrix": [3,2], "flags":4, "x":32, "y":42},
{"matrix": [3,1], "flags":4, "x":16, "y":45},
{"flags":2, "x":8, "y":43},
{"matrix": [3,0], "flags":4, "x":0, "y":45},
{"matrix": [4,5], "flags":4, "x":98, "y":52},
{"matrix": [4,4], "flags":4, "x":90, "y":64},
{"flags":2, "x":80, "y":58},
{"matrix": [4,3], "flags":4, "x":72, "y":58},
{"matrix": [4,2], "flags":4, "x":56, "y":47},
{"matrix": [5,0], "flags":4, "x":224, "y":5},
{"flags":2, "x":216, "y":5},
{"matrix": [5,1], "flags":4, "x":208, "y":5},
{"matrix": [5,2], "flags":4, "x":192, "y":2},
{"flags":2, "x":184, "y":1},
{"matrix": [5,3], "flags":4, "x":176, "y":0},
{"matrix": [5,4], "flags":4, "x":160, "y":5},
{"flags":2, "x":152, "y":3},
{"matrix": [5,5], "flags":4, "x":144, "y":3},
{"matrix": [6,5], "flags":4, "x":144, "y":17},
{"matrix": [6,4], "flags":4, "x":160, "y":15},
{"matrix": [6,3], "flags":4, "x":176, "y":13},
{"matrix": [6,2], "flags":4, "x":192, "y":15},
{"matrix": [6,1], "flags":4, "x":208, "y":18},
{"matrix": [6,0], "flags":4, "x":224, "y":18},
{"matrix": [7,0], "flags":4, "x":224, "y":32},
{"matrix": [7,1], "flags":4, "x":208, "y":32},
{"matrix": [7,2], "flags":4, "x":192, "y":28},
{"matrix": [7,3], "flags":4, "x":176, "y":27},
{"matrix": [7,4], "flags":4, "x":160, "y":28},
{"matrix": [7,5], "flags":4, "x":144, "y":30},
{"matrix": [8,5], "flags":4, "x":144, "y":43},
{"matrix": [8,4], "flags":4, "x":160, "y":42},
{"matrix": [8,3], "flags":4, "x":176, "y":40},
{"flags":2, "x":184, "y":50},
{"matrix": [8,2], "flags":4, "x":192, "y":42},
{"matrix": [8,1], "flags":4, "x":208, "y":45},
{"flags":2, "x":216, "y":43},
{"matrix": [8,0], "flags":4, "x":224, "y":45},
{"matrix": [9,2], "flags":4, "x":168, "y":47},
{"matrix": [9,3], "flags":4, "x":152, "y":58},
{"flags":2, "x":144, "y":58},
{"matrix": [9,4], "flags":4, "x":134, "y":64},
{"matrix": [9,5], "flags":4, "x":126, "y":52}
],
"sleep": true
}
}

View File

@@ -0,0 +1,14 @@
// Copyright 2024 Danny Nguyen (@nooges)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include_next <mcuconf.h>
/* enable USART3, used for split comms */
#undef STM32_SERIAL_USE_USART3
#define STM32_SERIAL_USE_USART3 TRUE
/* enable TIM3, used for RGB LED PWM driver */
#undef STM32_PWM_USE_TIM3
#define STM32_PWM_USE_TIM3 TRUE

View File

@@ -0,0 +1,25 @@
# Iris LM-G
A split ergo 4x6 keyboard with 4 thumb keys made and sold by Keebio that supports Gateron KS-33 low-profile switches. [More info at Keebio](https://keeb.io).
* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
* Hardware Supported: Iris LM-G PCBs
* Hardware Availability: [Keebio](https://keeb.io)
Make example for this keyboard (after setting up your build environment):
make keebio/iris_lm/g1:default
Example of flashing this keyboard:
make keebio/iris_lm/g1:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at the top left and plug in the keyboard
* **Physical reset button**: Press and hold the button on the back of the PCB for at least 1 second and let go
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -0,0 +1,8 @@
{
"manufacturer": "Keebio",
"maintainer": "Keebio",
"url": "https://keeb.io",
"usb": {
"vid": "0xCB10"
}
}

View File

@@ -0,0 +1,26 @@
// Copyright 2024 Danny Nguyen (@nooges)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/* Defines for the split keyboard setup */
#define SERIAL_USART_DRIVER SD3 // USART 3
#define SERIAL_USART_TX_PIN B10
#define SERIAL_USART_RX_PIN B11
#define SERIAL_USART_TX_PAL_MODE 7
#define SERIAL_USART_RX_PAL_MODE 7
#define SERIAL_USART_FULL_DUPLEX
#define SERIAL_USART_PIN_SWAP
#define USB_VBUS_PIN C6
#define SPLIT_HAND_PIN A0
/* Defines for the RGB matrix */
#ifdef RGB_MATRIX_ENABLE
# define WS2812_PWM_DRIVER PWMD3
# define WS2812_PWM_CHANNEL 4
# define WS2812_PWM_PAL_MODE 10
# define WS2812_DMA_STREAM STM32_DMA1_STREAM2
# define WS2812_DMA_CHANNEL 2
# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP
#endif

View File

@@ -0,0 +1,10 @@
// Copyright 2024 Danny Nguyen (@nooges)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define HAL_USE_SERIAL TRUE
#define HAL_USE_PWM TRUE
#include_next <halconf.h>

View File

@@ -0,0 +1,11 @@
// Copyright 2024 Danny Nguyen (@nooges)
// SPDX-License-Identifier: GPL-2.0-or-later
#include "quantum.h"
void keyboard_pre_init_kb(void) {
// Disable the PD peripheral in pre-init because its pins (B4, B6) are being used in the matrix:
PWR->CR3 |= PWR_CR3_UCPD_DBDIS;
// Call the corresponding _user() function (see https://docs.qmk.fm/#/custom_quantum_functions)
keyboard_pre_init_user();
}

View File

@@ -0,0 +1,242 @@
{
"keyboard_name": "Iris LM-K Rev. 1",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"rgb_matrix": true
},
"ws2812": {
"driver": "pwm",
"pin": "B7"
},
"matrix_pins": {
"cols": ["A6", "A5", "B2", "B13", "B12", "C11"],
"rows": ["B1", "B0", "B14", "A15", "F1"]
},
"split": {
"enabled": true,
"matrix_pins": {
"right": {
"cols": ["C11", "C13", "B6", "B9", "B12", "B2"],
"rows": ["C4", "A7", "A6", "B5", "F1"]
}
},
"serial": {
"driver": "usart"
},
"transport": {
"sync" :{
"matrix_state": true
}
}
},
"processor": "STM32G431",
"usb": {
"device_version": "1.0.0",
"pid": "0x1756"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.375},
{"matrix": [0, 1], "x": 1, "y": 0.375},
{"matrix": [0, 2], "x": 2, "y": 0.125},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0.125},
{"matrix": [0, 5], "x": 5, "y": 0.25},
{"matrix": [5, 5], "x": 9, "y": 0.25},
{"matrix": [5, 4], "x": 10, "y": 0.125},
{"matrix": [5, 3], "x": 11, "y": 0},
{"matrix": [5, 2], "x": 12, "y": 0.125},
{"matrix": [5, 1], "x": 13, "y": 0.375},
{"matrix": [5, 0], "x": 14, "y": 0.375},
{"matrix": [1, 0], "x": 0, "y": 1.375},
{"matrix": [1, 1], "x": 1, "y": 1.375},
{"matrix": [1, 2], "x": 2, "y": 1.125},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1.125},
{"matrix": [1, 5], "x": 5, "y": 1.25},
{"matrix": [6, 5], "x": 9, "y": 1.25},
{"matrix": [6, 4], "x": 10, "y": 1.125},
{"matrix": [6, 3], "x": 11, "y": 1},
{"matrix": [6, 2], "x": 12, "y": 1.125},
{"matrix": [6, 1], "x": 13, "y": 1.375},
{"matrix": [6, 0], "x": 14, "y": 1.375},
{"matrix": [2, 0], "x": 0, "y": 2.375},
{"matrix": [2, 1], "x": 1, "y": 2.375},
{"matrix": [2, 2], "x": 2, "y": 2.125},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2.125},
{"matrix": [2, 5], "x": 5, "y": 2.25},
{"matrix": [7, 5], "x": 9, "y": 2.25},
{"matrix": [7, 4], "x": 10, "y": 2.125},
{"matrix": [7, 3], "x": 11, "y": 2},
{"matrix": [7, 2], "x": 12, "y": 2.125},
{"matrix": [7, 1], "x": 13, "y": 2.375},
{"matrix": [7, 0], "x": 14, "y": 2.375},
{"matrix": [3, 0], "x": 0, "y": 3.375},
{"matrix": [3, 1], "x": 1, "y": 3.375},
{"matrix": [3, 2], "x": 2, "y": 3.125},
{"matrix": [3, 3], "x": 3, "y": 3},
{"matrix": [3, 4], "x": 4, "y": 3.125},
{"matrix": [3, 5], "x": 5, "y": 3.25},
{"matrix": [4, 5], "x": 6.15, "y": 3.75},
{"matrix": [9, 5], "x": 7.85, "y": 3.75},
{"matrix": [8, 5], "x": 9, "y": 3.25},
{"matrix": [8, 4], "x": 10, "y": 3.125},
{"matrix": [8, 3], "x": 11, "y": 3},
{"matrix": [8, 2], "x": 12, "y": 3.125},
{"matrix": [8, 1], "x": 13, "y": 3.375},
{"matrix": [8, 0], "x": 14, "y": 3.375},
{"matrix": [4, 2], "x": 3.5, "y": 4.25},
{"matrix": [4, 3], "x": 4.5, "y": 4.375},
{"matrix": [4, 4], "x": 5.6, "y": 4.75},
{"matrix": [9, 4], "x": 8.4, "y": 4.75},
{"matrix": [9, 3], "x": 9.5, "y": 4.375},
{"matrix": [9, 2], "x": 10.5, "y": 4.25}
]
}
},
"rgb_matrix": {
"animations": {
"alphas_mods": true,
"gradient_up_down": true,
"gradient_left_right": true,
"breathing": true,
"band_sat": true,
"band_val": true,
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_up_down": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"rainbow_moving_chevron": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"dual_beacon": true,
"rainbow_beacon": true,
"rainbow_pinwheels": true,
"raindrops": true,
"jellybean_raindrops": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"pixel_fractal": true,
"pixel_flow": true,
"pixel_rain": true,
"typing_heatmap": true,
"digital_rain": true,
"solid_reactive_simple": true,
"solid_reactive": true,
"solid_reactive_wide": true,
"solid_reactive_multiwide": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
"solid_reactive_nexus": true,
"solid_reactive_multinexus": true,
"splash": true,
"multisplash": true,
"solid_splash": true,
"solid_multisplash": true
},
"driver": "ws2812",
"split_count": [34, 34],
"max_brightness": 120,
"layout": [
{"matrix": [0,0], "flags":4, "x":0, "y":5},
{"flags":2, "x":8, "y":5},
{"matrix": [0,1], "flags":4, "x":16, "y":5},
{"matrix": [0,2], "flags":4, "x":32, "y":2},
{"flags":2, "x":40, "y":1},
{"matrix": [0,3], "flags":4, "x":48, "y":0},
{"matrix": [0,4], "flags":4, "x":64, "y":5},
{"flags":2, "x":72, "y":3},
{"matrix": [0,5], "flags":4, "x":80, "y":3},
{"matrix": [1,5], "flags":4, "x":80, "y":17},
{"matrix": [1,4], "flags":4, "x":64, "y":15},
{"matrix": [1,3], "flags":4, "x":48, "y":13},
{"matrix": [1,2], "flags":4, "x":32, "y":15},
{"matrix": [1,1], "flags":4, "x":16, "y":18},
{"matrix": [1,0], "flags":4, "x":0, "y":18},
{"matrix": [2,0], "flags":4, "x":0, "y":32},
{"matrix": [2,1], "flags":4, "x":16, "y":32},
{"matrix": [2,2], "flags":4, "x":32, "y":28},
{"matrix": [2,3], "flags":4, "x":48, "y":27},
{"matrix": [2,4], "flags":4, "x":64, "y":28},
{"matrix": [2,5], "flags":4, "x":80, "y":30},
{"matrix": [3,5], "flags":4, "x":80, "y":43},
{"matrix": [3,4], "flags":4, "x":64, "y":42},
{"matrix": [3,3], "flags":4, "x":48, "y":40},
{"flags":2, "x":40, "y":50},
{"matrix": [3,2], "flags":4, "x":32, "y":42},
{"matrix": [3,1], "flags":4, "x":16, "y":45},
{"flags":2, "x":8, "y":43},
{"matrix": [3,0], "flags":4, "x":0, "y":45},
{"matrix": [4,5], "flags":4, "x":98, "y":52},
{"matrix": [4,4], "flags":4, "x":90, "y":64},
{"flags":2, "x":80, "y":58},
{"matrix": [4,3], "flags":4, "x":72, "y":58},
{"matrix": [4,2], "flags":4, "x":56, "y":47},
{"matrix": [5,0], "flags":4, "x":224, "y":5},
{"flags":2, "x":216, "y":5},
{"matrix": [5,1], "flags":4, "x":208, "y":5},
{"matrix": [5,2], "flags":4, "x":192, "y":2},
{"flags":2, "x":184, "y":1},
{"matrix": [5,3], "flags":4, "x":176, "y":0},
{"matrix": [5,4], "flags":4, "x":160, "y":5},
{"flags":2, "x":152, "y":3},
{"matrix": [5,5], "flags":4, "x":144, "y":3},
{"matrix": [6,5], "flags":4, "x":144, "y":17},
{"matrix": [6,4], "flags":4, "x":160, "y":15},
{"matrix": [6,3], "flags":4, "x":176, "y":13},
{"matrix": [6,2], "flags":4, "x":192, "y":15},
{"matrix": [6,1], "flags":4, "x":208, "y":18},
{"matrix": [6,0], "flags":4, "x":224, "y":18},
{"matrix": [7,0], "flags":4, "x":224, "y":32},
{"matrix": [7,1], "flags":4, "x":208, "y":32},
{"matrix": [7,2], "flags":4, "x":192, "y":28},
{"matrix": [7,3], "flags":4, "x":176, "y":27},
{"matrix": [7,4], "flags":4, "x":160, "y":28},
{"matrix": [7,5], "flags":4, "x":144, "y":30},
{"matrix": [8,5], "flags":4, "x":144, "y":43},
{"matrix": [8,4], "flags":4, "x":160, "y":42},
{"matrix": [8,3], "flags":4, "x":176, "y":40},
{"flags":2, "x":184, "y":50},
{"matrix": [8,2], "flags":4, "x":192, "y":42},
{"matrix": [8,1], "flags":4, "x":208, "y":45},
{"flags":2, "x":216, "y":43},
{"matrix": [8,0], "flags":4, "x":224, "y":45},
{"matrix": [9,2], "flags":4, "x":168, "y":47},
{"matrix": [9,3], "flags":4, "x":152, "y":58},
{"flags":2, "x":144, "y":58},
{"matrix": [9,4], "flags":4, "x":134, "y":64},
{"matrix": [9,5], "flags":4, "x":126, "y":52}
],
"sleep": true
}
}

View File

@@ -0,0 +1,14 @@
// Copyright 2024 Danny Nguyen (@nooges)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include_next <mcuconf.h>
/* enable USART3, used for split comms */
#undef STM32_SERIAL_USE_USART3
#define STM32_SERIAL_USE_USART3 TRUE
/* enable TIM3, used for RGB LED PWM driver */
#undef STM32_PWM_USE_TIM3
#define STM32_PWM_USE_TIM3 TRUE

View File

@@ -0,0 +1,25 @@
# Iris LM-K
A split ergo 4x6 keyboard with 4 thumb keys made and sold by Keebio that supports Kailh Choc V1 & V2 low-profile switches. [More info at Keebio](https://keeb.io).
* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
* Hardware Supported: Iris LM-K PCBs
* Hardware Availability: [Keebio](https://keeb.io)
Make example for this keyboard (after setting up your build environment):
make keebio/iris_lm/k1:default
Example of flashing this keyboard:
make keebio/iris_lm/k1:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at the top left and plug in the keyboard
* **Physical reset button**: Press and hold the button on the back of the PCB for at least 1 second and let go
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -0,0 +1,55 @@
// Copyright 2023 Danny Nguyen (@nooges)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum custom_layers {
_QWERTY,
_LOWER,
_RAISE
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
QK_GESC, 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_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_HOME, KC_END, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
KC_LGUI, TL_LOWR, KC_ENT, KC_SPC, TL_UPPR, KC_RALT
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
),
[_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_PGUP,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
KC_GRV, _______, KC_UP, _______, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, KC_P0, KC_PGDN,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_PLUS, KC_PIPE,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
RGB_MOD, EE_CLR, _______, _______, _______, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_P1, KC_P2, KC_P3, KC_MINS, _______,
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
_______, _______, KC_DEL, KC_DEL, _______, KC_P0
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
),
[_RAISE] = 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_TOG, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, QK_BOOT,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
RGB_MOD, KC_MPRV, KC_MNXT, KC_VOLU, KC_PGUP, KC_UNDS, KC_EQL, KC_HOME, RGB_HUI, RGB_SAI, RGB_VAI, KC_BSLS,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
KC_MUTE, KC_MSTP, KC_MPLY, KC_VOLD, KC_PGDN, KC_MINS, KC_LPRN, _______, KC_PLUS, KC_END, RGB_HUD, RGB_SAD, RGB_VAD, EE_CLR,
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
_______, _______, _______, _______, _______, _______
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
)
};

View File

@@ -0,0 +1 @@
TRI_LAYER_ENABLE = yes

View File

@@ -0,0 +1,6 @@
# Iris LM
The Iris LM comes in two variants:
- [Iris LM-G](g1/readme.md) - Supports Gateron KS-33 low-profile switches
- [Iris LM-K](k1/readme.md) - Supports Kailh Choc V1 & V2 low-profile switches

View File

@@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | ` | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | - |
* | ` | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | ~ |
* |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
* | | | | | | |-------| |-------| | _ | + | { | } | | |
* `-----------------------------------------/ / \ \-----------------------------------------'

View File

@@ -0,0 +1,55 @@
{
"manufacturer": "MadJax",
"keyboard_name": "madjax_macropad",
"maintainer": "guidoism",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["GP26", "GP27", "GP28", "GP29"],
"rows": ["GP6", "GP7", "GP0", "GP4", "GP3"]
},
"encoder": {
"rotary": [
{"pin_a": "GP1", "pin_b": "GP2"}
]
},
"processor": "RP2040",
"url": "https://github.com/guidoism/madjax_macropad",
"usb": {
"device_version": "1.0.0",
"pid": "0x0000",
"vid": "0xFEED"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [3, 3], "x": 3, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4},
{"matrix": [4, 1], "x": 1, "y": 4},
{"matrix": [4, 2], "x": 2, "y": 4},
{"matrix": [4, 3], "x": 3, "y": 4}
]
}
}
}

View File

@@ -0,0 +1,49 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum custom_keycodes {
KC_P00 = SAFE_RANGE
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* ┌───┐
* │ - │
* ┌───┬───┬───┼───┤
* │ 7 │ 8 │ 9 │ + │
* ├───┼───┼───┼───┤
* │ 4 │ 5 │ 6 │ % │
* ├───┼───┼───┼───┤
* │ 1 │ 2 │ 3 │ = │
* ├───┼───┼───┼───┤
* │ 0 │00 │ . │Ent│
* └───┴───┴───┴───┘
*/
[0] = LAYOUT(
KC_PMNS,
KC_P7, KC_P8, KC_P9, KC_PPLS,
KC_P4, KC_P5, KC_P6, KC_PERC,
KC_P1, KC_P2, KC_P3, KC_EQL,
KC_P0, KC_P00, KC_PDOT, KC_PENT
)
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
switch(keycode) {
case KC_P00:
tap_code(KC_P0);
tap_code(KC_P0);
return false;
}
}
return true;
}
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }
};
#endif

View File

@@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes

View File

@@ -0,0 +1,24 @@
# MadJax Macropad
* Keyboard Maintainer: [Guido Bartolucci](https://github.com/guidoism)
* Hardware Supported: Seeed Studio XIAO RP2040
* Hardware Availability: https://github.com/guidoism/madjax_macropad
Make example for this keyboard (after setting up your build environment):
make madjax_macropad:default
Flashing example for this keyboard:
make madjax_macropad:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -0,0 +1,113 @@
{
"manufacturer": "Bennett Balogh",
"keyboard_name": "teton_78",
"maintainer": "qmk",
"bootloader": "atmel-dfu",
"bootmagic": {
"matrix": [0, 2]
},
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["F7", "F6", "F5", "F4", "F1", "F0", "B0", "B1", "B2", "B3", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7"],
"rows": ["D0", "D1", "D2", "D3", "D5"]
},
"processor": "atmega32u4",
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x3349",
"vid": "0x8A5B"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 0, "y": 1},
{"matrix": [0, 2], "x": 2.25, "y": 0},
{"matrix": [0, 3], "x": 3.25, "y": 0},
{"matrix": [0, 4], "x": 4.25, "y": 0},
{"matrix": [0, 5], "x": 5.25, "y": 0},
{"matrix": [0, 6], "x": 6.25, "y": 0},
{"matrix": [0, 7], "x": 7.25, "y": 0},
{"matrix": [0, 8], "x": 8.25, "y": 0},
{"matrix": [0, 9], "x": 9.25, "y": 0},
{"matrix": [0, 10], "x": 10.25, "y": 0},
{"matrix": [0, 11], "x": 11.25, "y": 0},
{"matrix": [0, 12], "x": 12.25, "y": 0},
{"matrix": [0, 13], "x": 13.25, "y": 0},
{"matrix": [0, 14], "x": 14.25, "y": 0},
{"matrix": [0, 15], "x": 15.25, "y": 0, "w": 2},
{"matrix": [0, 16], "x": 17.5, "y": 0},
{"matrix": [0, 17], "x": 18.5, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5},
{"matrix": [1, 3], "x": 3.75, "y": 1},
{"matrix": [1, 4], "x": 4.75, "y": 1},
{"matrix": [1, 5], "x": 5.75, "y": 1},
{"matrix": [1, 6], "x": 6.75, "y": 1},
{"matrix": [1, 7], "x": 7.75, "y": 1},
{"matrix": [1, 8], "x": 8.75, "y": 1},
{"matrix": [1, 9], "x": 9.75, "y": 1},
{"matrix": [1, 10], "x": 10.75, "y": 1},
{"matrix": [1, 11], "x": 11.75, "y": 1},
{"matrix": [1, 12], "x": 12.75, "y": 1},
{"matrix": [1, 13], "x": 13.75, "y": 1},
{"matrix": [1, 14], "x": 14.75, "y": 1},
{"matrix": [1, 15], "x": 15.75, "y": 1, "w": 1.5},
{"matrix": [1, 16], "x": 17.5, "y": 1},
{"matrix": [1, 17], "x": 18.5, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75},
{"matrix": [2, 3], "x": 4, "y": 2},
{"matrix": [2, 4], "x": 5, "y": 2},
{"matrix": [2, 5], "x": 6, "y": 2},
{"matrix": [2, 6], "x": 7, "y": 2},
{"matrix": [2, 7], "x": 8, "y": 2},
{"matrix": [2, 8], "x": 9, "y": 2},
{"matrix": [2, 9], "x": 10, "y": 2},
{"matrix": [2, 10], "x": 11, "y": 2},
{"matrix": [2, 11], "x": 12, "y": 2},
{"matrix": [2, 12], "x": 13, "y": 2},
{"matrix": [2, 13], "x": 14, "y": 2},
{"matrix": [2, 14], "x": 15, "y": 2, "w": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3, "w": 2.25},
{"matrix": [3, 3], "x": 4.5, "y": 3},
{"matrix": [3, 4], "x": 5.5, "y": 3},
{"matrix": [3, 5], "x": 6.5, "y": 3},
{"matrix": [3, 6], "x": 7.5, "y": 3},
{"matrix": [3, 7], "x": 8.5, "y": 3},
{"matrix": [3, 8], "x": 9.5, "y": 3},
{"matrix": [3, 9], "x": 10.5, "y": 3},
{"matrix": [3, 10], "x": 11.5, "y": 3},
{"matrix": [3, 11], "x": 12.5, "y": 3},
{"matrix": [3, 12], "x": 13.5, "y": 3},
{"matrix": [3, 13], "x": 14.5, "y": 3, "w": 2.75},
{"matrix": [3, 16], "x": 17.5, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4},
{"matrix": [4, 1], "x": 1, "y": 4},
{"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.25},
{"matrix": [4, 3], "x": 3.5, "y": 4, "w": 1.25},
{"matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.25},
{"matrix": [4, 7], "x": 6, "y": 4, "w": 6.25},
{"matrix": [4, 11], "x": 12.25, "y": 4, "w": 1.25},
{"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.25},
{"matrix": [4, 13], "x": 14.75, "y": 4, "w": 1.25},
{"matrix": [4, 14], "x": 16.5, "y": 4, "w": 1.25},
{"matrix": [4, 16], "x": 17.5, "y": 4, "w": 1.25},
{"matrix": [4, 17], "x": 18.5, "y": 4, "w": 1.25}
]
}
}
}

View File

@@ -0,0 +1,29 @@
/* Copyright 2024 Bennett Balogh LLC <bennettsbalogh@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_F1, KC_F6, 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_F2, KC_F7, 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_F3, KC_F8, 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_F4, KC_F9, 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_F5, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT)
};

View File

@@ -0,0 +1,37 @@
# Teton 78 QMK Firmware
## Introduction
![Teton 78](https://i.imgur.com/MnASIrv.jpeg)
This is the QMK firmware repository for the Teton78, a 68XT solder and hotswao keyboard designed by Mountain Mech Designs - Bennett Balogh.
The Teton 78 has entered GB and sucessfully finalized in November 2024 The IC page for the keyboard can be found [here](https://geekhack.org/index.php?topic=123275.0).
The sale page can be found [here](https://www.mountainmechdesigns.com/)
Discord link can be found [here](https://discord.gg/h9dMwRNfVy)
## About
* Keyboard Maintainer: [Bennett Balogh](https://github.com/AwesomeBalogh)
* Hardware Supported: Atmega32u4
* Hardware Availability: N/A
## How to compile
After setting up your build environment, you can compile the Teton 78 default keymap by using:
make mountainmechdesigns/teton_78:default
Flash using
make mountainmechdesigns/teton_78:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -0,0 +1,389 @@
{
"manufacturer": "zlkb",
"keyboard_name": "IRIS65",
"maintainer": "5217zl",
"bootloader": "atmel-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["B6", "C6", "C7", "F1", "F0", "E6", "B0", "B1", "B3", "B7", "D2", "D1", "D0", "D7", "B4", "B5"],
"rows": ["F7", "F6", "F5", "B2", "F4"]
},
"processor": "atmega32u4",
"url": "",
"usb": {
"device_version": "0.1.0",
"pid": "0x4953",
"vid": "0x5A4C"
},
"community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_iso_blocker", "65_iso_blocker_split_bs"],
"layouts": {
"LAYOUT_65_ansi_blocker": {
"layout": [
{"label": "0,0", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "0,1", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "0,2", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "0,3", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "0,4", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "0,5", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "0,6", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "0,7", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "0,8", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "0,9", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "0,10", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "0,11", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "0,12", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "0,14", "matrix": [0, 14], "x": 13, "y": 0, "w": 2},
{"label": "0,15", "matrix": [0, 15], "x": 15, "y": 0},
{"label": "1,0", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "1,,8", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "1,13", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "1,14", "matrix": [1, 14], "x": 15, "y": 1},
{"label": "2,0", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "2,13", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "2,14", "matrix": [2, 14], "x": 15, "y": 2},
{"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "3,2", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "3,3", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "3,4", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "3,5", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "3,6", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "3,7", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "3,8", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "3,9", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "3,10", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "3,11", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "3,12", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "3,13", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "3,14", "matrix": [3, 14], "x": 15, "y": 3},
{"label": "4,0", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"label": "4,1", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"label": "4,2", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"label": "4,3", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 6.25},
{"label": "4,10", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"label": "4,11", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"label": "4,12", "matrix": [4, 12], "x": 13, "y": 4},
{"label": "4,13", "matrix": [4, 13], "x": 14, "y": 4},
{"label": "4,14", "matrix": [4, 14], "x": 15, "y": 4}
]
},
"LAYOUT_65_ansi_blocker_split_bs": {
"layout": [
{"label": "0,0", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "0,1", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "0,2", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "0,3", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "0,4", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "0,5", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "0,6", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "0,7", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "0,8", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "0,9", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "0,10", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "0,11", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "0,12", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "0,13", "matrix": [0, 13], "x": 13, "y": 0},
{"label": "0,14", "matrix": [0, 14], "x": 14, "y": 0},
{"label": "0,15", "matrix": [0, 15], "x": 15, "y": 0},
{"label": "1,0", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "1,,8", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "1,13", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "1,14", "matrix": [1, 14], "x": 15, "y": 1},
{"label": "2,0", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "2,13", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "2,14", "matrix": [2, 14], "x": 15, "y": 2},
{"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "3,2", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "3,3", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "3,4", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "3,5", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "3,6", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "3,7", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "3,8", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "3,9", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "3,10", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "3,11", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "3,12", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "3,13", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "3,14", "matrix": [3, 14], "x": 15, "y": 3},
{"label": "4,0", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"label": "4,1", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"label": "4,2", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"label": "4,3", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 6.25},
{"label": "4,10", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"label": "4,11", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"label": "4,12", "matrix": [4, 12], "x": 13, "y": 4},
{"label": "4,13", "matrix": [4, 13], "x": 14, "y": 4},
{"label": "4,14", "matrix": [4, 14], "x": 15, "y": 4}
]
},
"LAYOUT_65_iso_blocker": {
"layout": [
{"label": "0,0", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "0,1", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "0,2", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "0,3", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "0,4", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "0,5", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "0,6", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "0,7", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "0,8", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "0,9", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "0,10", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "0,11", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "0,12", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "0,14", "matrix": [0, 14], "x": 13, "y": 0, "w": 2},
{"label": "0,15", "matrix": [0, 15], "x": 15, "y": 0},
{"label": "1,0", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "1,,8", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "1,14", "matrix": [1, 14], "x": 15, "y": 1},
{"label": "2,0", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "2,12", "matrix": [2, 12], "x": 12.75, "y": 2},
{"label": "2,13", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "2,14", "matrix": [2, 14], "x": 15, "y": 2},
{"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "3,1", "matrix": [3, 1], "x": 1.25, "y": 3},
{"label": "3,2", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "3,3", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "3,4", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "3,5", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "3,6", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "3,7", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "3,8", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "3,9", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "3,10", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "3,11", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "3,12", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "3,13", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "3,14", "matrix": [3, 14], "x": 15, "y": 3},
{"label": "4,0", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"label": "4,1", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"label": "4,2", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"label": "4,3", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 6.25},
{"label": "4,10", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"label": "4,11", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"label": "4,12", "matrix": [4, 12], "x": 13, "y": 4},
{"label": "4,13", "matrix": [4, 13], "x": 14, "y": 4},
{"label": "4,14", "matrix": [4, 14], "x": 15, "y": 4}
]
},
"LAYOUT_65_iso_blocker_split_bs": {
"layout": [
{"label": "0,0", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "0,1", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "0,2", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "0,3", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "0,4", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "0,5", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "0,6", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "0,7", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "0,8", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "0,9", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "0,10", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "0,11", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "0,12", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "0,13", "matrix": [0, 13], "x": 13, "y": 0},
{"label": "0,14", "matrix": [0, 14], "x": 14, "y": 0},
{"label": "0,15", "matrix": [0, 15], "x": 15, "y": 0},
{"label": "1,0", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "1,,8", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "1,14", "matrix": [1, 14], "x": 15, "y": 1},
{"label": "2,0", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "2,12", "matrix": [2, 12], "x": 12.75, "y": 2},
{"label": "2,13", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "2,14", "matrix": [2, 14], "x": 15, "y": 2},
{"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "3,1", "matrix": [3, 1], "x": 1.25, "y": 3},
{"label": "3,2", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "3,3", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "3,4", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "3,5", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "3,6", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "3,7", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "3,8", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "3,9", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "3,10", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "3,11", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "3,12", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "3,13", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "3,14", "matrix": [3, 14], "x": 15, "y": 3},
{"label": "4,0", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"label": "4,1", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"label": "4,2", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"label": "4,3", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 6.25},
{"label": "4,10", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"label": "4,11", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"label": "4,12", "matrix": [4, 12], "x": 13, "y": 4},
{"label": "4,13", "matrix": [4, 13], "x": 14, "y": 4},
{"label": "4,14", "matrix": [4, 14], "x": 15, "y": 4}
]
},
"LAYOUT_all": {
"layout": [
{"label": "0,0", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "0,1", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "0,2", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "0,3", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "0,4", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "0,5", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "0,6", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "0,7", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "0,8", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "0,9", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "0,10", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "0,11", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "0,12", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "0,13", "matrix": [0, 13], "x": 13, "y": 0},
{"label": "0,14", "matrix": [0, 14], "x": 14, "y": 0},
{"label": "0,15", "matrix": [0, 15], "x": 15, "y": 0},
{"label": "1,0", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "1,,8", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "1,13", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "1,14", "matrix": [1, 14], "x": 15, "y": 1},
{"label": "2,0", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "2,12", "matrix": [2, 12], "x": 12.75, "y": 2},
{"label": "2,13", "matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25},
{"label": "2,14", "matrix": [2, 14], "x": 15, "y": 2},
{"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "3,1", "matrix": [3, 1], "x": 1.25, "y": 3},
{"label": "3,2", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "3,3", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "3,4", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "3,5", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "3,6", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "3,7", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "3,8", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "3,9", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "3,10", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "3,11", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "3,12", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "3,13", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "3,14", "matrix": [3, 14], "x": 15, "y": 3},
{"label": "4,0", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"label": "4,1", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"label": "4,2", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"label": "4,3", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 6.25},
{"label": "4,10", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"label": "4,11", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"label": "4,12", "matrix": [4, 12], "x": 13, "y": 4},
{"label": "4,13", "matrix": [4, 13], "x": 14, "y": 4},
{"label": "4,14", "matrix": [4, 14], "x": 15, "y": 4}
]
}
}
}

View File

@@ -0,0 +1,21 @@
{
"keyboard": "mykeyclub/jris65/hotswap",
"keymap": "default",
"layout": "LAYOUT_all",
"layers": [
[
"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_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_BSLS", "KC_ENT", "KC_END",
"KC_LSFT", "KC_BSLS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_DOT", "KC_COMM", "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"
],
[
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "QK_BOOT", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"
]
]
}

View File

@@ -0,0 +1,35 @@
# JRIS65
![hotswap](https://i.imgur.com/kJzebgd.jpeg)
**Hotswap PCB**
A 65% keyboard sold by Mykeyclub.
* Keyboard Maintainer: [The QMK Community](https://github.com/qmk)
* Hardware Supported: JRIS65 R1 hotswap.
* Hardware Availability: intermitently via group buys from [Mykeyclub](https://www.mykeyclub.com/)
Make example for this keyboard (after setting up your build environment):
make mykeyclub/jris65/hotswap:default
Flashing example for this keyboard:
make mykeyclub/jris65/hotswap:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Keycode in layout**: Using the default firmware, assign a key to Reset (`QK_BOOT`) and press the assigned key.
* **Physical reset button**: Briefly press the button on the back of the PCB
The QMK default keymap has FN+Backspace assigned to `QK_BOOT` so you can use that key sequence for subsequent flashing.
## Disclaimer
In May 2024 Mykeyclub was contacted to see if they had interest in contributing firmware to the QMK project they did not. This code is thus community supported.
This firmware has only been tested with JRIS65 R1 hotswap and is likely to work with R2 hotswap. The soldered variant of this PCB requires testing, with actual hardware, before being added.

View File

@@ -0,0 +1,5 @@
# Mykeyclub
Mykeyclub is a retailer of mechanical keyboards and related products. They also facilitate the design and manufacture of keyboard products.
**Website:** https://www.mykeyclub.com/

View File

@@ -43,6 +43,10 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
for (uint8_t i = 50; i <= 55; i++) {
rgb_matrix_set_color(i, 255, 86, 0);
}
} else if ((rgb_matrix_get_mode() == RGB_MATRIX_TYPING_HEATMAP) || (rgb_matrix_get_mode() == RGB_MATRIX_DIGITAL_RAIN)) {
for (uint8_t i = 50; i <= 55; i++) {
rgb_matrix_set_color(i, 0, 0, 0);
}
}
return false;
}

View File

@@ -43,6 +43,10 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
for (uint8_t i = 50; i <= 55; i++) {
rgb_matrix_set_color(i, 255, 86, 0);
}
} else if ((rgb_matrix_get_mode() == RGB_MATRIX_TYPING_HEATMAP) || (rgb_matrix_get_mode() == RGB_MATRIX_DIGITAL_RAIN)) {
for (uint8_t i = 50; i <= 55; i++) {
rgb_matrix_set_color(i, 0, 0, 0);
}
}
return false;
}

View File

@@ -0,0 +1,25 @@
/* Copyright 2023 Gondolindrim <gondolindrim@acheronproject.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "quantum.h"
bool led_update_kb(led_t led_state) {
if (!led_update_user(led_state)) {
return false;
}
(led_state.caps_lock && is_backlight_enabled()) ? backlight_set(get_backlight_level()) : backlight_set(0);
return true;
}

View File

@@ -0,0 +1,12 @@
// Copyright 2022 beekeeb
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U
#define SERIAL_USART_FULL_DUPLEX
#define SERIAL_USART_TX_PIN GP0
#define SERIAL_USART_RX_PIN GP1

View File

@@ -0,0 +1,98 @@
{
"manufacturer": "azhizhinov",
"keyboard_name": "PIANTORUV44",
"maintainer": "azhizhinov",
"bootloader": "rp2040",
"bootmagic": {
"matrix": [0, 5]
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"direct": [
["GP5", "GP4", "GP11", "GP15", "GP3", "GP2"],
["GP22", "GP20", "GP10", "GP14", "GP9", "GP8"],
["GP21", "GP19", "GP6", "GP7", "GP13", "GP12"],
["GP17", "GP18", "GP16", "GP26", null, null]
]
},
"processor": "RP2040",
"split": {
"enabled": true,
"matrix_pins": {
"right": {
"direct": [
["GP2", "GP3", "GP15", "GP11", "GP4", "GP5"],
["GP8", "GP9", "GP14", "GP10", "GP20", "GP22"],
["GP12", "GP13", "GP7", "GP6", "GP19", "GP21"],
["GP26", "GP16", "GP18", "GP17", null, null]
]
}
},
"serial": {
"driver": "vendor"
}
},
"url": "https://github.com/azhizhinov/PIANTORUV44",
"usb": {
"device_version": "1.0.0",
"pid": "0x0004",
"vid": "0x415A"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.25},
{"matrix": [0, 1], "x": 1, "y": 0.25},
{"matrix": [0, 2], "x": 2, "y": 0.125},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0.125},
{"matrix": [0, 5], "x": 5, "y": 0.25},
{"matrix": [4, 0], "x": 8, "y": 0.25},
{"matrix": [4, 1], "x": 9, "y": 0.125},
{"matrix": [4, 2], "x": 10, "y": 0},
{"matrix": [4, 3], "x": 11, "y": 0.125},
{"matrix": [4, 4], "x": 12, "y": 0.25},
{"matrix": [4, 5], "x": 13, "y": 0.25},
{"matrix": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"matrix": [1, 2], "x": 2, "y": 1.125},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1.125},
{"matrix": [1, 5], "x": 5, "y": 1.25},
{"matrix": [5, 0], "x": 8, "y": 1.25},
{"matrix": [5, 1], "x": 9, "y": 1.125},
{"matrix": [5, 2], "x": 10, "y": 1},
{"matrix": [5, 3], "x": 11, "y": 1.125},
{"matrix": [5, 4], "x": 12, "y": 1.25},
{"matrix": [5, 5], "x": 13, "y": 1.25},
{"matrix": [2, 0], "x": 0, "y": 2.25},
{"matrix": [2, 1], "x": 1, "y": 2.25},
{"matrix": [2, 2], "x": 2, "y": 2.125},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2.125},
{"matrix": [2, 5], "x": 5, "y": 2.25},
{"matrix": [6, 0], "x": 8, "y": 2.25},
{"matrix": [6, 1], "x": 9, "y": 2.125},
{"matrix": [6, 2], "x": 10, "y": 2},
{"matrix": [6, 3], "x": 11, "y": 2.125},
{"matrix": [6, 4], "x": 12, "y": 2.25},
{"matrix": [6, 5], "x": 13, "y": 2.25},
{"matrix": [3, 0], "x": 2.5, "y": 3},
{"matrix": [3, 1], "x": 3.5, "y": 3.25},
{"matrix": [3, 2], "x": 4.5, "y": 3.5},
{"matrix": [3, 3], "x": 5.5, "y": 3.75},
{"matrix": [7, 0], "x": 7.5, "y": 3.75},
{"matrix": [7, 1], "x": 8.5, "y": 3.5},
{"matrix": [7, 2], "x": 9.5, "y": 3.25},
{"matrix": [7, 3], "x": 10.5, "y": 3}
]
}
}
}

View File

@@ -0,0 +1,30 @@
// Copyright 2021 azhizhinov (@azhizhinov)
// SPDX-License-Identifier: GPL-2.0-or-late
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
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_TAB, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RBRC,
KC_LALT, KC_LSFT, MO(1), KC_BSPC, KC_ENT, MO(2), KC_SPC, RCTL(KC_BSPC)
),
[1] = 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_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_UP, KC_RGHT, KC_NO, KC_HOME, KC_NO,
KC_LSFT, KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DOWN, KC_NO, KC_NO, KC_END, KC_RALT,
KC_LALT, KC_LGUI, KC_TRNS, KC_ESC, KC_ENT, MO(3), KC_SPC, RCTL(KC_BSPC)
),
[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_F12,
KC_LCTL, KC_BSPC, KC_C, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_LSFT, KC_X, KC_V, KC_S, KC_L, KC_NO, KC_UNDS, KC_PLUS, KC_PMNS, KC_NO, KC_NO, KC_RALT,
KC_LALT, KC_LGUI, MO(3), KC_ESC, KC_ENT, KC_TRNS, KC_SPC, RCTL(KC_BSPC)
),
[3] = LAYOUT(
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, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV,
KC_LSFT, KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_RALT,
KC_LALT, KC_LGUI, KC_TRNS, KC_ESC, KC_ENT, KC_TRNS, KC_SPC, RCTL(KC_BSPC)
)
};

View File

@@ -0,0 +1,27 @@
# Piantor UV 44
![Piantor UV 44](https://i.ibb.co/QvJM1GR/20240806-PIANTORUV44-00.png)
PiantorUV44 is a Piantor/Cantor fork with Raspberry Pi Pico, hybrid hotswap socket and soldered-in switches support and flippable PCB.
* Keyboard Maintainer: [azhizhinov](https://github.com/azhizhinov)
* Hardware Supported: RP2040
* Hardware Availability: https://github.com/azhizhinov/PIANTORUV44
Make example for this keyboard (after setting up your build environment):
make piantoruv44:default
Flashing example for this keyboard:
make piantoruv44:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 2 ways:
* **Physical reset button**: Hold the `BOOT` button on the Pico and press the `RST` button on the Pico, release the the `RST` button before the `BOOT` button.
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
Once you enter the bootloader, the keyboard will show up as a USB device on your computer, you could drag and drop a firmware file to flash it, but I recommend using the flash commands for the respective side.

View File

@@ -0,0 +1,71 @@
{
"manufacturer": "Diego Andres Rabaioli",
"keyboard_name": "sdrakb00",
"maintainer": "drabaioli",
"bootloader": "atmel-dfu",
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "B5", "pin_b": "B6", "resolution": 2}
]
},
"features": {
"bootmagic": true,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["F0", "F1", "F4", "F5"],
"rows": ["D4", "D6", "D7"]
},
"processor": "atmega32u4",
"rgb_matrix": {
"driver": "ws2812",
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
{"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
{"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
{"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
{"matrix": [1, 1], "x": 16, "y": 16, "flags": 4},
{"matrix": [1, 2], "x": 32, "y": 16, "flags": 4},
{"matrix": [1, 3], "x": 48, "y": 16, "flags": 4},
{"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
{"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
{"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
{"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}
],
"max_brightness": 100,
"sleep": true,
"timeout": 300000
},
"url": "https://github.com/drabaioli/SdraKb00",
"usb": {
"device_version": "1.0.0",
"pid": "0x4200",
"vid": "0x7331"
},
"ws2812": {
"pin": "B0"
},
"layouts": {
"LAYOUT_ortho_3x4": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0, "encoder": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2}
]
}
}
}

View File

@@ -0,0 +1,74 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
/* Keymap for 3x4 Macropad
*
* Layer 0 (Base Layer) - Numpad layout with mute button and layer toggle:
* ,----------------------,
* | 7 | 8 | 9 | MUTE |
* |-------+-------+-------+--------|
* | 4 | 5 | 6 | Layer1 |
* |-------+-------+-------+--------|
* | 1 | 2 | 3 | 0 |
* `-----------------------^--------'
*
* Layer 1 (Function Layer) - Accessed by holding MO(1):
* ,----------------------,
* | BKSP | / | - | ---- |
* |-------+-------+-------+--------|
* | = | * | + | ---- |
* |-------+-------+-------+--------|
* | ENTER | ---- | ---- | . |
* `-----------------------^--------'
*
* The base layer (0) provides standard numpad functionality with:
* - Numbers 0-9 in traditional numpad layout
* - Mute button in top right
* - Layer 1 momentary toggle (MO1) in middle right
*
* The function layer (1) adds:
* - Basic mathematical operators (+, -, *, /)
* - Backspace, Enter, and decimal point
* - Equal sign for calculations
* - Empty slots marked as ---- (KC_NO)
*/
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ortho_3x4(
KC_KP_7, KC_KP_8, KC_KP_9, KC_MUTE,
KC_KP_4, KC_KP_5, KC_KP_6, MO(1),
KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_0
),
[1] = LAYOUT_ortho_3x4(
KC_BACKSPACE, KC_KP_SLASH, KC_KP_MINUS, _______,
KC_EQUAL, KC_KP_ASTERISK, KC_KP_PLUS, _______,
KC_ENTER, _______, _______, KC_KP_DOT
)
};
/*
* Handle layer state changes by updating RGB matrix colors
*
* Sets RGB matrix colors based on active layer:
* - Layer 0: Light green (#88FB7A)
* - Layer 1: Red
* - Other layers: Red (fallback)
*/
layer_state_t layer_state_set_user(layer_state_t state) {
switch (get_highest_layer(state)) {
case 0:
rgb_matrix_sethsv(85, 255, 251); // #88FB7A for layer 0
break;
case 1:
rgb_matrix_sethsv(0, 255, 255); // Red for layer 1
break;
default:
rgb_matrix_sethsv(0, 255, 255); // Red for any other layer
break;
}
return state;
}

View File

@@ -0,0 +1,52 @@
# sdrakb00
![sdrakb00](https://i.imgur.com/0HfpFqW.jpeg)
11 keys hot-swap macropad with rotary encoder.
Macropad features:
- 11 hot-swap keys
- Rotary encoder with push button
- AtMega32U4 MCU
- Per-key RGB led for backlighting
- USB-C connector
- On PCB SPI header
- MCU reset button
- Switch mounting plate
- Power LED indicator
* Keyboard Maintainer: [Diego Andres Rabaioli](https://github.com/drabaioli)
* Hardware Supported: Pro Micro Atmega32u4 based macropad with 11 keys, RGB LED chain and rotary encoder
* Hardware Availability: [Get the gerbers and have fun building it your self ;)](https://github.com/drabaioli/SdraKb00)
Build SdraKb00 firmware:
make sdrakbs/sdrakb00:default
Flashing SdraKb00 firmware, execute:
make sdrakbs/sdrakb00:default:flash
Then press the reset button on the back side 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).
## Bootloader
Enter the bootloader in 3 ways:
* **Physical reset button** (preferred): Briefly press the button on the back of the PCB
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
## Default Keymap
### Base Layer (0)
- NumPad layout (1-9, 0)
- Encoder: Volume Up/Down
- Encoder Push: Mute
- Layer Switch: Hold (1,3) key for function layer
### Function Layer (1)
- NumPad operators (+, -, *, /)
- Enter, "=" and backspace keys
- Decimal point

View File

@@ -0,0 +1,48 @@
{
"manufacturer": "Hawtkeys",
"keyboard_name": "shorty",
"maintainer": "hawtkeys",
"bootloader": "rp2040",
"diode_direction": "ROW2COL",
"encoder": {
"rotary": [
{"pin_a": "GP28", "pin_b": "GP27"},
{"pin_a": "GP3", "pin_b": "GP4"}
]
},
"features": {
"bootmagic": true,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["GP14", "GP13", "GP12"],
"rows": ["GP11", "GP10", "GP9", "GP29", "GP2"]
},
"processor": "RP2040",
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x5400",
"vid": "0x5453"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [3, 0], "x": 0, "y": 0},
{"matrix": [4, 0], "x": 2, "y": 0},
{"matrix": [0, 0], "x": 0, "y": 1},
{"matrix": [0, 1], "x": 1, "y": 1},
{"matrix": [0, 2], "x": 2, "y": 1},
{"matrix": [1, 0], "x": 0, "y": 2},
{"matrix": [1, 1], "x": 1, "y": 2},
{"matrix": [1, 2], "x": 2, "y": 2},
{"matrix": [2, 0], "x": 0, "y": 3},
{"matrix": [2, 1], "x": 1, "y": 3},
{"matrix": [2, 2], "x": 2, "y": 3}
]
}
}
}

View File

@@ -0,0 +1,18 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_A, KC_D,
KC_P7, KC_P8, KC_P9,
KC_P4, KC_P5, KC_P6,
KC_P1, KC_P2, KC_P3
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(MS_WHLD, MS_WHLU) }
};
#endif

View File

@@ -0,0 +1,27 @@
# Shorty Zero
![Shorty Zero by hawtkeys.com](https://i.imgur.com/hoMHYLW.png)
The Shorty Zero is a 3x3 customizable macropad designed for productivity, gaming, and creative workflows, featuring programmable keys and rotary knobs.
* Keyboard Maintainer: [Hawtkeys](https://github.com/hawtkeys)
* Hardware Supported: Raspberry Pi Pico, Hawtkeys Shorty Zero PCB
* Hardware Availability: [Available @ hawtkeys.com](https://hawtkeys.com)
Make example for this keyboard (after setting up your build environment):
make shorty:default
Flashing example for this keyboard:
make shorty:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -0,0 +1,77 @@
{
"manufacturer": "takashicompany",
"keyboard_name": "KLEC-01",
"maintainer": "takashicompany",
"development_board": "promicro",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6"],
"rows": ["D4", "C6", "D7", "E6", "B4", "B5"]
},
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x1001",
"vid": "0x7463"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [1, 0], "x": 4, "y": 0},
{"matrix": [1, 1], "x": 5, "y": 0},
{"matrix": [1, 2], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [2, 0], "x": 8, "y": 0},
{"matrix": [2, 1], "x": 9, "y": 0},
{"matrix": [2, 2], "x": 10, "y": 0},
{"matrix": [2, 3], "x": 11, "y": 0, "w": 1.75},
{"matrix": [0, 4], "x": 0, "y": 1, "w": 1.25},
{"matrix": [0, 5], "x": 1.25, "y": 1},
{"matrix": [0, 6], "x": 2.25, "y": 1},
{"matrix": [0, 7], "x": 3.25, "y": 1},
{"matrix": [1, 4], "x": 4.25, "y": 1},
{"matrix": [1, 5], "x": 5.25, "y": 1},
{"matrix": [1, 6], "x": 6.25, "y": 1},
{"matrix": [1, 7], "x": 7.25, "y": 1},
{"matrix": [2, 4], "x": 8.25, "y": 1},
{"matrix": [2, 5], "x": 9.25, "y": 1},
{"matrix": [2, 6], "x": 10.25, "y": 1},
{"matrix": [2, 7], "x": 11.25, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 2},
{"matrix": [3, 2], "x": 2.75, "y": 2},
{"matrix": [3, 3], "x": 3.75, "y": 2},
{"matrix": [4, 0], "x": 4.75, "y": 2},
{"matrix": [4, 1], "x": 5.75, "y": 2},
{"matrix": [4, 2], "x": 6.75, "y": 2},
{"matrix": [4, 3], "x": 7.75, "y": 2},
{"matrix": [5, 0], "x": 8.75, "y": 2},
{"matrix": [5, 1], "x": 9.75, "y": 2},
{"matrix": [5, 2], "x": 10.75, "y": 2},
{"matrix": [5, 3], "x": 11.75, "y": 2},
{"matrix": [3, 4], "x": 0, "y": 3},
{"matrix": [3, 5], "x": 1, "y": 3},
{"matrix": [3, 6], "x": 2, "y": 3},
{"matrix": [3, 7], "x": 3, "y": 3, "w": 1.25},
{"matrix": [4, 4], "x": 4.25, "y": 3, "w": 2},
{"matrix": [4, 5], "x": 6.25, "y": 3, "w": 2.25},
{"matrix": [5, 4], "x": 8.5, "y": 3, "w": 1.25},
{"matrix": [5, 5], "x": 9.75, "y": 3},
{"matrix": [5, 6], "x": 10.75, "y": 3},
{"matrix": [5, 7], "x": 11.75, "y": 3}
]
}
}
}

View File

@@ -0,0 +1,69 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, LT(7, 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, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_ENT,
KC_LSFT, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_UP, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LNG1), KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT(
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, LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, KC_TRNS,
KC_TRNS, LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), 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_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_INT3), KC_TRNS,
KC_TRNS, KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), KC_TRNS,
KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, 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, LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS,
KC_TRNS, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_TRNS,
KC_TRNS, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[4] = LAYOUT(
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_TRNS, KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_INT3, KC_TRNS,
KC_TRNS, LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[5] = LAYOUT(
KC_TRNS, KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS,
KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[6] = LAYOUT(
KC_TRNS, KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_TRNS,
KC_TRNS, KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS,
KC_TRNS, KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_TRNS, KC_NO, KC_LNG1, KC_NO, KC_NO, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[7] = LAYOUT(
KC_TRNS, KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_TRNS,
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
KC_TRNS, KC_LSFT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, MO(8), KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[8] = LAYOUT(
KC_TRNS, UG_TOGG, UG_NEXT, UG_HUEU, UG_SATU, UG_VALU, KC_NO, KC_NO, KC_NO, DF(0), DF(3), KC_TRNS, KC_TRNS,
KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};

View File

@@ -0,0 +1,29 @@
# takashicompany/klec_01
![takashicompany/klec_01](https://i.imgur.com/oFZHNFJ.jpeg)
46-key integrated keyboard.
The layout is similar to a conventional keyboard, making it a good introduction to 40% keyboards.
* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany)
* Hardware Supported: PCB, Pro Micro
* Hardware Availability: https://github.com/takashicompany/klec_01
Make example for this keyboard (after setting up your build environment):
make takashicompany/klec_01:default
Flashing example for this keyboard:
make takashicompany/klec_01:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -0,0 +1,73 @@
{
"manufacturer": "takashicompany",
"keyboard_name": "KLEC-02",
"maintainer": "takashicompany",
"development_board": "promicro",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["D4", "C6", "D7", "E6", "B4"],
"rows": ["F4", "F5", "F6", "F7"]
},
"split": {
"enabled": true,
"serial": {
"pin": "D2"
}
},
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x1002",
"vid": "0x7463"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [4, 0], "x": 6.25, "y": 0},
{"matrix": [4, 1], "x": 7.25, "y": 0},
{"matrix": [4, 2], "x": 8.25, "y": 0},
{"matrix": [4, 3], "x": 9.25, "y": 0},
{"matrix": [4, 4], "x": 10.25, "y": 0},
{"matrix": [1, 0], "x": 0.25, "y": 1},
{"matrix": [1, 1], "x": 1.25, "y": 1},
{"matrix": [1, 2], "x": 2.25, "y": 1},
{"matrix": [1, 3], "x": 3.25, "y": 1},
{"matrix": [1, 4], "x": 4.25, "y": 1},
{"matrix": [5, 0], "x": 6.5, "y": 1},
{"matrix": [5, 1], "x": 7.5, "y": 1},
{"matrix": [5, 2], "x": 8.5, "y": 1},
{"matrix": [5, 3], "x": 9.5, "y": 1},
{"matrix": [5, 4], "x": 10.5, "y": 1},
{"matrix": [2, 0], "x": 0.5, "y": 2},
{"matrix": [2, 1], "x": 1.5, "y": 2},
{"matrix": [2, 2], "x": 2.5, "y": 2},
{"matrix": [2, 3], "x": 3.5, "y": 2},
{"matrix": [2, 4], "x": 4.5, "y": 2},
{"matrix": [6, 0], "x": 6.75, "y": 2},
{"matrix": [6, 1], "x": 7.75, "y": 2},
{"matrix": [6, 2], "x": 8.75, "y": 2},
{"matrix": [6, 3], "x": 9.75, "y": 2},
{"matrix": [6, 4], "x": 10.75, "y": 2},
{"matrix": [3, 2], "x": 2.75, "y": 3},
{"matrix": [3, 3], "x": 3.75, "y": 3, "w": 1.25},
{"matrix": [3, 4], "x": 5, "y": 3},
{"matrix": [7, 0], "x": 6.25, "y": 3},
{"matrix": [7, 1], "x": 7.25, "y": 3, "w": 1.25},
{"matrix": [7, 2], "x": 8.5, "y": 3}
]
}
}
}

View File

@@ -0,0 +1,70 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT,
LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC,
KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LNG1), KC_RGUI
),
[1] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3,
LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3),
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[2] = LAYOUT(
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_INT3),
KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3),
KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[3] = LAYOUT(
LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT,
LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC,
KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(5, KC_SPC), LT(4, KC_LNG1), KC_RGUI
),
[4] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_INT3,
LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[5] = LAYOUT(
KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS,
KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE,
KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[6] = LAYOUT(
KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO,
KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO,
KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_TRNS, KC_NO, KC_LNG1, KC_NO, KC_NO, KC_DEL,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[7] = LAYOUT(
KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
KC_LSFT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, MO(8), MO(9),
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[8] = LAYOUT(
UG_TOGG, UG_NEXT, UG_HUEU, UG_SATU, UG_VALU, KC_NO, KC_NO, KC_NO, DF(0), DF(3),
RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
RGB_M_K, RGB_M_X, RGB_M_G, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};

View File

@@ -0,0 +1,28 @@
# KLEC-02
![takashicompany/klec_02](https://i.imgur.com/1w6agBI.jpeg)
The KLEC-02 is a 36-key segmented keyboard.
The PCB can be fitted with key switch sockets, allowing easy replacement of key switches.
* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany)
* Hardware Supported: PCB, Pro Micro
* Hardware Availability: https://github.com/takashicompany/klec_02
Make example for this keyboard (after setting up your build environment):
make takashicompany/klec_02:default
Flashing example for this keyboard:
make takashicompany/klec_02:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -0,0 +1,171 @@
/* Copyright 2022 Alexander (Sasha) Karmanov
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// Defines names for use in layer keycodes and the keymap
enum layer_names {
_QWERTY,
_CURSORLEFT,
_CURSORRGHT,
_NUMBERS,
_EXTRARIGHT
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,-----------------------------------------+ +-----------------------------------------.
* | Esc | Q | W | E | R | T | | Y | U | I | O | P |BSpc |
* |------+------+------+------+------+------+ +------+------+------+------+------+------|
* | Tab | A | S | D | F | G | | H | J | K | L | ; |Enter |
Hold:
Extra-Rt
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | Ctrl | Z | X | C | V | B | | N | M | , | . | / |RCtrl |
* +------+------+------+------+------+------+ +------+------+------+------+------+------+
. | GUI | Alt | | | | | | RAlt | Menu | .
| +------+------+ | | | | +------+------+ |
Hold: | | LSft |CursLt| |CursRt| RSft | |
Single hit: | | |Space | |Space | | |
| +------+------| |------+------+ |
+------------------------------> SPACE SPACE <-----------------------------+
*/
[_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,
LT(_EXTRARIGHT,KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_PENT,
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_SPC, KC_LGUI, KC_LALT, KC_LSFT, LT(_CURSORLEFT,KC_SPC), LT(_CURSORRGHT ,KC_SPC), KC_RSFT, KC_RALT, KC_APP, KC_SPC
),
/*
Layers below are used on top of QWERTY layer defined above.
(Except the PLOVER/STENO layers.)
+-------+
The keys which are shown empty, like this: | |, represent a transparent key,
+-------+
meaning the key from the underlaying layer (i.e. QWERTY) will be used.
In the keymaps those keys are defined as "_______".
+-------+ +-------+
The keys which are shown solid, like this: | XXXXX | or this | ... |, represent an opaque/blocking key?
+-------+ +-------+
Such key is not doing anything in that layer nor allowing the key from the underlaying layer
to be invoked.
In the keymaps those keys are defined as "XXXXXXX".
Most of the modifiers are the same in all layers.
So in most layers they are defined as transparent keys,
letting the keys from QWERTY layer to do the work.
With that idea all the layers below leave the unmodified keys as transparent keys.
In the same time - the layers block the keys that have no sense to be used
in that given layer. For instance in the cursor control layers
some of the keys are not used in the layer, but they are blocked to avoid
alpha-keys from QWERTY layer to appear.
For the same reason the keymaps below are shown simplified,
without separate thumbcluster.
*/
/* Cursor Control on the right (Right Space)
* ,-----------------------------------------------------------------------------------.
* | Esc |Break |WheelD|MousUp|WheelU| Del | Ins | Home | Up | End | ` | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | |SelAll|MousLt|MousDn|MousRt| ... | PgUp | Left | Down |Right | ... | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | Undo | Cut | Copy | Paste| ... | PgDn |MsBtLe|MsBtMi|MsBtRt| ... | |
* `------+------+------+------+------+------+------+------+------+------+------+------.
* | | | | | X | | | |
* `-------------------------------------------------------'
*/
[_CURSORRGHT] = LAYOUT(
_______, KC_BRK, KC_WH_D, KC_MS_U, KC_WH_U, KC_DEL, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_GRV, KC_DEL,
KC_ENT, LCTL(KC_A), KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, _______,
_______, LCTL(KC_Z), LSFT(KC_DEL), LCTL(KC_INS), LSFT(KC_INS), XXXXXXX, KC_INS, KC_BTN1, KC_BTN3, KC_BTN2, XXXXXXX, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* Cursor Control on the left (Left Space)
* ,-----------------------------------------------------------------------------------.
* | |Break | Home | Up | End | Ins | Del |WheelU|MousUp|WheelD| ` | Del |
* |------+------+------+------+------+------+-------------+------+------+------+------|
* | Enter|SelAll|Right | Down | Left | PgUp | xxx |MousLt|MousDn|MousRt| xxx |Enter |
* |------+------+------+------+------+------+------|------+------+------+------+------|
* | | xxx |MsBtRt|MsBtMi|MsBtLe| PgDn | xxx | Cut | Copy | Paste| xxx | |
* `------+------+------+------+------+------+------+------+------+------+------+------.
* | | | | X | | | | |
* `-------------------------------------------------------'
*/
[_CURSORLEFT] = LAYOUT(
_______, KC_BRK, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_DEL, KC_WH_U, KC_MS_U, KC_WH_D, KC_GRV, KC_DEL,
KC_ENT, LCTL(KC_A), KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, _______,
_______, XXXXXXX, KC_BTN2, KC_BTN3, KC_BTN1, KC_INS, XXXXXXX, LCTL(KC_DEL), LCTL(KC_INS), LSFT(KC_INS), XXXXXXX, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* Numbers on the home row, FNs on the top row, symbols in the second row
* (Lower or Raise)
* ,-----------------------------------------------------------------------------------.
* | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |BackSp|
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10| Enter|
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | F11 | F12 | LAlt |LShift| LAlt | RAlt |RShift| , | . | / | |
* `------+------+------+------+------+------+------+------+------+------+------+------.
* | | | | | | | | |
* `-------------------------------------------------------'
*/
[_NUMBERS] = LAYOUT(
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
LT(_EXTRARIGHT,KC_TAB), 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_LALT, KC_LSFT, KC_LALT, KC_RALT, KC_RSFT, KC_COMM, KC_DOT, KC_SLSH, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* ExtraRightSide (the keys from the right side which did not fit into the matrix)
* ,-----------------------------------------------------------------------------------.
* | Esc |BREAK |PLOVR2|PLOVER|TxBOLT|TxBlt2| ` | = | ( | ) | - | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* |******| | | | | |PrtScr| | | | ' | |
This is the
key turning
this layer on
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | |NumPad|Qwerty| | | | [ | ] | \ | |
* `------+------+------+------+------+------+------+------+------+------+------+------.
* | | | | | | | | |
* `-------------------------------------------------------'
*/
[_EXTRARIGHT] = LAYOUT(
_______, KC_BRK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_GRV, KC_EQL, KC_LPRN, KC_RPRN, KC_MINS, _______,
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, KC_QUOT, _______,
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_RBRC, KC_BSLS, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _CURSORLEFT, _CURSORRGHT, _NUMBERS);
}

View File

@@ -0,0 +1,28 @@
/*
Copyright 2024 Alexander (Sasha) Karmanov (ak66666)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
//Cirque ProGlide Touchpad configuration
#define POINTING_DEVICE_ROTATION_90
#define CIRQUE_PINNACLE_TAP_ENABLE
#define CIRQUE_PINNACLE_SECONDARY_TAP_ENABLE
#define POINTING_DEVICE_GESTURES_SCROLL_ENABLE
#define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_ABSOLUTE_MODE

View File

@@ -0,0 +1,77 @@
{
"manufacturer": "Alexander (Sasha) Karmanov",
"keyboard_name": "ThumbsUp! v9",
"maintainer": "u/ak66666",
"development_board": "promicro",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"pointing_device": true
},
"dynamic_keymap": {
"layer_count": 6
},
"matrix_pins": {
"cols": ["B2", "B6", "B5", "B4", "E6", "D7", "B3", "F4", "F5", "F6", "F7", "B1"],
"rows": ["D3", "D2", "D4", "C6"]
},
"usb": {
"device_version": "1.0.0",
"pid": "0x0090",
"vid": "0x5361"
},
"layouts": {
"LAYOUT": {
"layout": [
{"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "Q", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "W", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "E", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "R", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "T", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "Y", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "U", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "I", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "O", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "P", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "BKSPC", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "TAB", "matrix": [1, 0], "x": 0, "y": 1},
{"label": "A", "matrix": [1, 1], "x": 1, "y": 1},
{"label": "S", "matrix": [1, 2], "x": 2, "y": 1},
{"label": "D", "matrix": [1, 3], "x": 3, "y": 1},
{"label": "F", "matrix": [1, 4], "x": 4, "y": 1},
{"label": "G", "matrix": [1, 5], "x": 5, "y": 1},
{"label": "H", "matrix": [1, 6], "x": 6, "y": 1},
{"label": "J", "matrix": [1, 7], "x": 7, "y": 1},
{"label": "K", "matrix": [1, 8], "x": 8, "y": 1},
{"label": "L", "matrix": [1, 9], "x": 9, "y": 1},
{"label": ";", "matrix": [1, 10], "x": 10, "y": 1},
{"label": "ENTER", "matrix": [1, 11], "x": 11, "y": 1},
{"label": "LCTRL", "matrix": [2, 0], "x": 0, "y": 2},
{"label": "Z", "matrix": [2, 1], "x": 1, "y": 2},
{"label": "X", "matrix": [2, 2], "x": 2, "y": 2},
{"label": "C", "matrix": [2, 3], "x": 3, "y": 2},
{"label": "V", "matrix": [2, 4], "x": 4, "y": 2},
{"label": "B", "matrix": [2, 5], "x": 5, "y": 2},
{"label": "N", "matrix": [2, 6], "x": 6, "y": 2},
{"label": "M", "matrix": [2, 7], "x": 7, "y": 2},
{"label": ",", "matrix": [2, 8], "x": 8, "y": 2},
{"label": ".", "matrix": [2, 9], "x": 9, "y": 2},
{"label": "/", "matrix": [2, 10], "x": 10, "y": 2},
{"label": "RCTRL", "matrix": [2, 11], "x": 11, "y": 2},
{"label": "SPACE", "matrix": [3, 1], "x": 1, "y": 3},
{"label": "WIN", "matrix": [3, 2], "x": 2, "y": 3},
{"label": "LALT", "matrix": [3, 3], "x": 3, "y": 3},
{"label": "LSHIFT", "matrix": [3, 5], "x": 4, "y": 3},
{"label": "RAISE", "matrix": [3, 4], "x": 5, "y": 3},
{"label": "LOWER", "matrix": [3, 7], "x": 6, "y": 3},
{"label": "RSHIFT", "matrix": [3, 6], "x": 7, "y": 3},
{"label": "RALT", "matrix": [3, 8], "x": 8, "y": 3},
{"label": "MENU", "matrix": [3, 9], "x": 9, "y": 3},
{"label": "SPACE", "matrix": [3, 10], "x": 10, "y": 3}
]
}
}
}

View File

@@ -0,0 +1,27 @@
# ThumbsUp! v9
![ThumbsUp! v9](https://i.imgur.com/Zqc6dpQ.jpeg)
A yet another version of the ThumbsUp! keyboard, a three-level PCB-based keyboard supporting Kailh Choc (1350) switches.
This v9 version got 4x12 key layout with 2- or 3-key thumbcluster and an optional touchpad.
* Keyboard Maintainer: [Alexander (Sasha) Karmanov](https://github.com/ak66666)
* Hardware Supported: AtMega32u4 ProMicro-compatibles
* Hardware Availability: https://www.etsy.com/ca/listing/1641077896/thumbsup-v9-ergonomic-mechanical
Make example for this keyboard (after setting up your build environment):
make thumbsup/rev9_promicro_4x12:default
Flashing example for this keyboard:
make thumbsup/rev9_promicro_4x12:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader:
* **Physical reset button**: Press twice the button on the bottom side of the middle PCB.

View File

@@ -0,0 +1 @@
POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c

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