Merge branch 'qmk:master' into master

This commit is contained in:
Thanh Son Tran 2024-10-28 14:07:21 +07:00 committed by GitHub
commit 0fa48ae805
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
126 changed files with 8686 additions and 501 deletions

View File

@ -11,7 +11,8 @@ charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[{*.yaml,*.yml}] # To match GitHub Actions formatting
# To match GitHub Actions formatting
[*.{yaml,yml}]
indent_size = 2
[*.md]

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.4
uses: JamesIves/github-pages-deploy-action@v4.6.8
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: gh-pages

View File

@ -1,7 +1,7 @@
{
"license": "GPL-2.0-or-later",
"devDependencies": {
"vite": "^5.2.10",
"vite": "^5.2.14",
"vitepress": "^1.1.0",
"vitepress-plugin-tabs": "^0.5.0",
"vue": "^3.4.24"

View File

@ -298,85 +298,85 @@
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
"@rollup/rollup-android-arm-eabi@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.16.4.tgz#5e8930291f1e5ead7fb1171d53ba5c87718de062"
integrity sha512-GkhjAaQ8oUTOKE4g4gsZ0u8K/IHU1+2WQSgS1TwTcYvL+sjbaQjNHFXbOJ6kgqGHIO1DfUhI/Sphi9GkRT9K+Q==
"@rollup/rollup-android-arm-eabi@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz#8b613b9725e8f9479d142970b106b6ae878610d5"
integrity sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==
"@rollup/rollup-android-arm64@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.16.4.tgz#ffb84f1359c04ec8a022a97110e18a5600f5f638"
integrity sha512-Bvm6D+NPbGMQOcxvS1zUl8H7DWlywSXsphAeOnVeiZLQ+0J6Is8T7SrjGTH29KtYkiY9vld8ZnpV3G2EPbom+w==
"@rollup/rollup-android-arm64@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz#654ca1049189132ff602bfcf8df14c18da1f15fb"
integrity sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==
"@rollup/rollup-darwin-arm64@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.16.4.tgz#b2fcee8d4806a0b1b9185ac038cc428ddedce9f4"
integrity sha512-i5d64MlnYBO9EkCOGe5vPR/EeDwjnKOGGdd7zKFhU5y8haKhQZTN2DgVtpODDMxUr4t2K90wTUJg7ilgND6bXw==
"@rollup/rollup-darwin-arm64@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz#6d241d099d1518ef0c2205d96b3fa52e0fe1954b"
integrity sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==
"@rollup/rollup-darwin-x64@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.16.4.tgz#fcb25ccbaa3dd33a6490e9d1c64bab2e0e16b932"
integrity sha512-WZupV1+CdUYehaZqjaFTClJI72fjJEgTXdf4NbW69I9XyvdmztUExBtcI2yIIU6hJtYvtwS6pkTkHJz+k08mAQ==
"@rollup/rollup-darwin-x64@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz#42bd19d292a57ee11734c980c4650de26b457791"
integrity sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==
"@rollup/rollup-linux-arm-gnueabihf@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.16.4.tgz#40d46bdfe667e5eca31bf40047460e326d2e26bb"
integrity sha512-ADm/xt86JUnmAfA9mBqFcRp//RVRt1ohGOYF6yL+IFCYqOBNwy5lbEK05xTsEoJq+/tJzg8ICUtS82WinJRuIw==
"@rollup/rollup-linux-arm-gnueabihf@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz#f23555ee3d8fe941c5c5fd458cd22b65eb1c2232"
integrity sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==
"@rollup/rollup-linux-arm-musleabihf@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.16.4.tgz#7741df2448c11c56588b50835dbfe91b1a10b375"
integrity sha512-tJfJaXPiFAG+Jn3cutp7mCs1ePltuAgRqdDZrzb1aeE3TktWWJ+g7xK9SNlaSUFw6IU4QgOxAY4rA+wZUT5Wfg==
"@rollup/rollup-linux-arm-musleabihf@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz#f3bbd1ae2420f5539d40ac1fde2b38da67779baa"
integrity sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==
"@rollup/rollup-linux-arm64-gnu@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.16.4.tgz#0a23b02d2933e4c4872ad18d879890b6a4a295df"
integrity sha512-7dy1BzQkgYlUTapDTvK997cgi0Orh5Iu7JlZVBy1MBURk7/HSbHkzRnXZa19ozy+wwD8/SlpJnOOckuNZtJR9w==
"@rollup/rollup-linux-arm64-gnu@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz#7abe900120113e08a1f90afb84c7c28774054d15"
integrity sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==
"@rollup/rollup-linux-arm64-musl@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.16.4.tgz#e37ef259358aa886cc07d782220a4fb83c1e6970"
integrity sha512-zsFwdUw5XLD1gQe0aoU2HVceI6NEW7q7m05wA46eUAyrkeNYExObfRFQcvA6zw8lfRc5BHtan3tBpo+kqEOxmg==
"@rollup/rollup-linux-arm64-musl@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz#9e655285c8175cd44f57d6a1e8e5dedfbba1d820"
integrity sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==
"@rollup/rollup-linux-powerpc64le-gnu@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.16.4.tgz#8c69218b6de05ee2ba211664a2d2ac1e54e43f94"
integrity sha512-p8C3NnxXooRdNrdv6dBmRTddEapfESEUflpICDNKXpHvTjRRq1J82CbU5G3XfebIZyI3B0s074JHMWD36qOW6w==
"@rollup/rollup-linux-powerpc64le-gnu@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz#9a79ae6c9e9d8fe83d49e2712ecf4302db5bef5e"
integrity sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==
"@rollup/rollup-linux-riscv64-gnu@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.16.4.tgz#d32727dab8f538d9a4a7c03bcf58c436aecd0139"
integrity sha512-Lh/8ckoar4s4Id2foY7jNgitTOUQczwMWNYi+Mjt0eQ9LKhr6sK477REqQkmy8YHY3Ca3A2JJVdXnfb3Rrwkng==
"@rollup/rollup-linux-riscv64-gnu@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz#67ac70eca4ace8e2942fabca95164e8874ab8128"
integrity sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==
"@rollup/rollup-linux-s390x-gnu@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.16.4.tgz#d46097246a187d99fc9451fe8393b7155b47c5ec"
integrity sha512-1xwwn9ZCQYuqGmulGsTZoKrrn0z2fAur2ujE60QgyDpHmBbXbxLaQiEvzJWDrscRq43c8DnuHx3QorhMTZgisQ==
"@rollup/rollup-linux-s390x-gnu@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz#9f883a7440f51a22ed7f99e1d070bd84ea5005fc"
integrity sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==
"@rollup/rollup-linux-x64-gnu@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.16.4.tgz#6356c5a03a4afb1c3057490fc51b4764e109dbc7"
integrity sha512-LuOGGKAJ7dfRtxVnO1i3qWc6N9sh0Em/8aZ3CezixSTM+E9Oq3OvTsvC4sm6wWjzpsIlOCnZjdluINKESflJLA==
"@rollup/rollup-linux-x64-gnu@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz#70116ae6c577fe367f58559e2cffb5641a1dd9d0"
integrity sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==
"@rollup/rollup-linux-x64-musl@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.16.4.tgz#03a5831a9c0d05877b94653b5ddd3020d3c6fb06"
integrity sha512-ch86i7KkJKkLybDP2AtySFTRi5fM3KXp0PnHocHuJMdZwu7BuyIKi35BE9guMlmTpwwBTB3ljHj9IQXnTCD0vA==
"@rollup/rollup-linux-x64-musl@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz#f473f88219feb07b0b98b53a7923be716d1d182f"
integrity sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==
"@rollup/rollup-win32-arm64-msvc@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.16.4.tgz#6cc0db57750376b9303bdb6f5482af8974fcae35"
integrity sha512-Ma4PwyLfOWZWayfEsNQzTDBVW8PZ6TUUN1uFTBQbF2Chv/+sjenE86lpiEwj2FiviSmSZ4Ap4MaAfl1ciF4aSA==
"@rollup/rollup-win32-arm64-msvc@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz#4349482d17f5d1c58604d1c8900540d676f420e0"
integrity sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==
"@rollup/rollup-win32-ia32-msvc@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.16.4.tgz#aea0b7e492bd9ed46971cb80bc34f1eb14e07789"
integrity sha512-9m/ZDrQsdo/c06uOlP3W9G2ENRVzgzbSXmXHT4hwVaDQhYcRpi9bgBT0FTG9OhESxwK0WjQxYOSfv40cU+T69w==
"@rollup/rollup-win32-ia32-msvc@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz#a6fc39a15db618040ec3c2a24c1e26cb5f4d7422"
integrity sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==
"@rollup/rollup-win32-x64-msvc@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.16.4.tgz#c09ad9a132ccb5a67c4f211d909323ab1294f95f"
integrity sha512-YunpoOAyGLDseanENHmbFvQSfVL5BxW3k7hhy0eN4rb3gS/ct75dVD0EXOWIqFT/nE8XYW6LP6vz6ctKRi0k9A==
"@rollup/rollup-win32-x64-msvc@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz#3dd5d53e900df2a40841882c02e56f866c04d202"
integrity sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==
"@shikijs/core@1.3.0", "@shikijs/core@^1.3.0":
version "1.3.0"
@ -697,28 +697,28 @@ rfdc@^1.3.1:
integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==
rollup@^4.13.0:
version "4.16.4"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.16.4.tgz#fe328eb41293f20c9593a095ec23bdc4b5d93317"
integrity sha512-kuaTJSUbz+Wsb2ATGvEknkI12XV40vIiHmLuFlejoo7HtDok/O5eDDD0UpCVY5bBX5U5RYo8wWP83H7ZsqVEnA==
version "4.22.4"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.22.4.tgz#4135a6446671cd2a2453e1ad42a45d5973ec3a0f"
integrity sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==
dependencies:
"@types/estree" "1.0.5"
optionalDependencies:
"@rollup/rollup-android-arm-eabi" "4.16.4"
"@rollup/rollup-android-arm64" "4.16.4"
"@rollup/rollup-darwin-arm64" "4.16.4"
"@rollup/rollup-darwin-x64" "4.16.4"
"@rollup/rollup-linux-arm-gnueabihf" "4.16.4"
"@rollup/rollup-linux-arm-musleabihf" "4.16.4"
"@rollup/rollup-linux-arm64-gnu" "4.16.4"
"@rollup/rollup-linux-arm64-musl" "4.16.4"
"@rollup/rollup-linux-powerpc64le-gnu" "4.16.4"
"@rollup/rollup-linux-riscv64-gnu" "4.16.4"
"@rollup/rollup-linux-s390x-gnu" "4.16.4"
"@rollup/rollup-linux-x64-gnu" "4.16.4"
"@rollup/rollup-linux-x64-musl" "4.16.4"
"@rollup/rollup-win32-arm64-msvc" "4.16.4"
"@rollup/rollup-win32-ia32-msvc" "4.16.4"
"@rollup/rollup-win32-x64-msvc" "4.16.4"
"@rollup/rollup-android-arm-eabi" "4.22.4"
"@rollup/rollup-android-arm64" "4.22.4"
"@rollup/rollup-darwin-arm64" "4.22.4"
"@rollup/rollup-darwin-x64" "4.22.4"
"@rollup/rollup-linux-arm-gnueabihf" "4.22.4"
"@rollup/rollup-linux-arm-musleabihf" "4.22.4"
"@rollup/rollup-linux-arm64-gnu" "4.22.4"
"@rollup/rollup-linux-arm64-musl" "4.22.4"
"@rollup/rollup-linux-powerpc64le-gnu" "4.22.4"
"@rollup/rollup-linux-riscv64-gnu" "4.22.4"
"@rollup/rollup-linux-s390x-gnu" "4.22.4"
"@rollup/rollup-linux-x64-gnu" "4.22.4"
"@rollup/rollup-linux-x64-musl" "4.22.4"
"@rollup/rollup-win32-arm64-msvc" "4.22.4"
"@rollup/rollup-win32-ia32-msvc" "4.22.4"
"@rollup/rollup-win32-x64-msvc" "4.22.4"
fsevents "~2.3.2"
shiki@1.3.0, shiki@^1.3.0:
@ -743,10 +743,10 @@ tabbable@^6.2.0:
resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97"
integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==
vite@^5.2.10, vite@^5.2.9:
version "5.2.10"
resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.10.tgz#2ac927c91e99d51b376a5c73c0e4b059705f5bd7"
integrity sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==
vite@^5.2.14, vite@^5.2.9:
version "5.2.14"
resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.14.tgz#fd5f60facf6b5f90ec7da6323c467a365d380c3d"
integrity sha512-TFQLuwWLPms+NBNlh0D9LZQ+HXW471COABxw/9TEUBrjuHMo9BrYBPrN/SYAwIuVL+rLerycxiLT41t4f5MZpA==
dependencies:
esbuild "^0.20.1"
postcss "^8.4.38"

File diff suppressed because it is too large Load Diff

View File

@ -187,6 +187,8 @@ void st7565_render(void) {
st7565_send_data(&st7565_buffer[ST7565_BLOCK_SIZE * update_start], ST7565_BLOCK_SIZE);
spi_stop();
// Turn on display if it is off
st7565_on();

View File

@ -67,14 +67,15 @@
#define REG_SROM_Load_Burst 0x62
#define REG_Pixel_Burst 0x64
#define MIN_CPI 200
#define MAX_CPI 8200
#define CPI_STEP 200
#define CLAMP_CPI(value) value<MIN_CPI ? MIN_CPI : value> MAX_CPI ? MAX_CPI : value
#define US_BETWEEN_WRITES 120
#define US_BETWEEN_READS 20
#define US_BEFORE_MOTION 100
#define MSB1 0x80
#define MIN_CPI 200
#define MAX_CPI 8200
#define CPI_STEP 200
#define CLAMP_CPI(value) value<MIN_CPI ? MIN_CPI : value> MAX_CPI ? MAX_CPI : value
#define US_BETWEEN_WRITES 120
#define US_BETWEEN_READS 20
#define US_DELAY_AFTER_ADDR 100
#define US_BEFORE_MOTION 100
#define MSB1 0x80
// clang-format on
void adns9800_spi_start(void) {
@ -92,6 +93,7 @@ void adns9800_write(uint8_t reg_addr, uint8_t data) {
uint8_t adns9800_read(uint8_t reg_addr) {
adns9800_spi_start();
spi_write(reg_addr & 0x7f);
wait_us(US_DELAY_AFTER_ADDR);
uint8_t data = spi_read();
spi_stop();
wait_us(US_BETWEEN_READS);

View File

@ -81,7 +81,7 @@
{"matrix": [2, 9], "x": 9.5, "y": 2},
{"matrix": [2, 10], "x": 10.5, "y": 2},
{"matrix": [2, 11], "x": 11.5, "y": 2},
{"matrix": [2, 12], "x": 11.5, "y": 2},
{"matrix": [2, 12], "x": 12.5, "y": 2},
{"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5},
{"matrix": [5, 11], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
@ -95,33 +95,33 @@
{"matrix": [3, 8], "x": 8.75, "y": 3},
{"matrix": [3, 9], "x": 9.75, "y": 3},
{"matrix": [3, 10], "x": 10.75, "y": 3},
{"matrix": [3, 11], "x": 11.75, "y": 3, "w": 2.25},
{"matrix": [3, 12], "x": 14, "y": 3},
{"matrix": [3, 11], "x": 11.75, "y": 3},
{"matrix": [3, 12], "x": 12.75, "y": 3, "w": 2.25},
{"matrix": [5, 12], "x": 15, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [4, 1], "x": 2.25, "y": 3},
{"matrix": [4, 2], "x": 3.25, "y": 3},
{"matrix": [4, 3], "x": 4.25, "y": 3},
{"matrix": [4, 4], "x": 5.25, "y": 3},
{"matrix": [4, 5], "x": 6.25, "y": 3},
{"matrix": [4, 6], "x": 7.25, "y": 3},
{"matrix": [4, 7], "x": 8.25, "y": 3},
{"matrix": [4, 8], "x": 9.25, "y": 3},
{"matrix": [4, 9], "x": 10.25, "y": 3},
{"matrix": [4, 10], "x": 11.25, "y": 3},
{"matrix": [4, 11], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [5, 7], "x": 14, "y": 3},
{"matrix": [5, 13], "x": 15, "y": 3},
{"matrix": [5, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [5, 3], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [5, 4], "x": 10, "y": 4},
{"matrix": [5, 5], "x": 11, "y": 4},
{"matrix": [5, 6], "x": 12, "y": 4},
{"matrix": [5, 8], "x": 13, "y": 4},
{"matrix": [5, 9], "x": 14, "y": 4},
{"matrix": [5, 10], "x": 15, "y": 4}
{"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25},
{"matrix": [4, 1], "x": 2.25, "y": 4},
{"matrix": [4, 2], "x": 3.25, "y": 4},
{"matrix": [4, 3], "x": 4.25, "y": 4},
{"matrix": [4, 4], "x": 5.25, "y": 4},
{"matrix": [4, 5], "x": 6.25, "y": 4},
{"matrix": [4, 6], "x": 7.25, "y": 4},
{"matrix": [4, 7], "x": 8.25, "y": 4},
{"matrix": [4, 8], "x": 9.25, "y": 4},
{"matrix": [4, 9], "x": 10.25, "y": 4},
{"matrix": [4, 10], "x": 11.25, "y": 4},
{"matrix": [4, 11], "x": 12.25, "y": 4, "w": 1.75},
{"matrix": [5, 7], "x": 14, "y": 4},
{"matrix": [5, 13], "x": 15, "y": 4},
{"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
{"matrix": [5, 3], "x": 3.75, "y": 5, "w": 6.25},
{"matrix": [5, 4], "x": 10, "y": 5},
{"matrix": [5, 5], "x": 11, "y": 5},
{"matrix": [5, 6], "x": 12, "y": 5},
{"matrix": [5, 8], "x": 13, "y": 5},
{"matrix": [5, 9], "x": 14, "y": 5},
{"matrix": [5, 10], "x": 15, "y": 5}
]
}
}

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

@ -0,0 +1,32 @@
{
"manufacturer": "Atset",
"keyboard_name": "AT2",
"maintainer": "qmk",
"board": "GENERIC_RP_RP2040",
"processor": "RP2040",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"usb": {
"vid": "0x4141",
"pid": "0x6174",
"device_version": "1.0.0"
},
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["GP19", "GP20"],
"rows": ["GP28"]
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0}
]
}
}
}

View File

@ -0,0 +1,10 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_MUTE, KC_MPLY
)
};

View File

@ -0,0 +1,24 @@
# ATSET AT2
A special 2 key keyboard powered by QMK.
* Keyboard Maintainer: [ATSET](https://github.com/anubhavd7)
* Hardware Supported: ATSET AT2 (https://imgur.com/a/yBbVwef)
https://www.atsetmediscience.com/atset-at2-9949007.html
Make example for this keyboard (after setting up your build environment):
make atset/at2:default
Flashing example for this keyboard:
make atset/at2: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,20 @@
/* Copyright 2024 Deemen17 <https://github.com/Deemen17>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General 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 WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_USE_CIRCULAR_BUFFER

View File

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

View File

@ -0,0 +1,893 @@
{
"manufacturer": "Deemen17",
"keyboard_name": "DE80",
"maintainer": "Deemen17",
"bootloader": "uf2boot",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgblight": true,
"encoder": true
},
"matrix_pins": {
"rows": ["A8", "A10", "A9", "B11", "C14", "C13"],
"cols": ["B14", "B13", "B12", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "A15", "B7", "B6"]
},
"processor": "STM32F103",
"usb": {
"vid": "0xDE17",
"pid": "0x80F1",
"device_version": "1.0.0"
},
"indicators": {
"caps_lock": "B10",
"scroll_lock": "B3"
},
"rgblight": {
"animations": {
"alternating": true,
"breathing": true,
"christmas": true,
"knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"rgb_test": true,
"snake": true,
"static_gradient": true,
"twinkle": true
},
"led_count": 40,
"max_brightness": 250,
"sleep": true
},
"ws2812": {
"driver": "spi",
"pin": "B15"
},
"encoder": {
"rotary": [
{"pin_a": "B5", "pin_b": "B4"}
]
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift"
},
"community_layouts": ["tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift", "tkl_ansi_wkl", "tkl_ansi_wkl_split_bs_rshift", "tkl_f13_ansi_tsangan", "tkl_f13_ansi_tsangan_split_bs_rshift", "tkl_f13_ansi_wkl", "tkl_f13_ansi_wkl_split_bs_rshift" ],
"layouts": {
"LAYOUT_tkl_ansi_tsangan": {
"layout": [
{"matrix": [0, 0], "x": 0, "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.5, "y": 0},
{"matrix": [0, 7], "x": 7.5, "y": 0},
{"matrix": [0, 8], "x": 8.5, "y": 0},
{"matrix": [0, 9], "x": 9.5, "y": 0},
{"matrix": [0, 10], "x": 11, "y": 0},
{"matrix": [0, 11], "x": 12, "y": 0},
{"matrix": [0, 12], "x": 13, "y": 0},
{"matrix": [0, 13], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [0, 16], "x": 17.25, "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": [1, 8], "x": 8, "y": 1.25},
{"matrix": [1, 9], "x": 9, "y": 1.25},
{"matrix": [1, 10], "x": 10, "y": 1.25},
{"matrix": [1, 11], "x": 11, "y": 1.25},
{"matrix": [1, 12], "x": 12, "y": 1.25},
{"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
{"matrix": [1, 15], "x": 16.25, "y": 1.25},
{"matrix": [1, 16], "x": 17.25, "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": [2, 7], "x": 7.5, "y": 2.25},
{"matrix": [2, 8], "x": 8.5, "y": 2.25},
{"matrix": [2, 9], "x": 9.5, "y": 2.25},
{"matrix": [2, 10], "x": 10.5, "y": 2.25},
{"matrix": [2, 11], "x": 11.5, "y": 2.25},
{"matrix": [2, 12], "x": 12.5, "y": 2.25},
{"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
{"matrix": [2, 14], "x": 15.25, "y": 2.25},
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
{"matrix": [2, 16], "x": 17.25, "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": [3, 7], "x": 7.75, "y": 3.25},
{"matrix": [3, 8], "x": 8.75, "y": 3.25},
{"matrix": [3, 9], "x": 9.75, "y": 3.25},
{"matrix": [3, 10], "x": 10.75, "y": 3.25},
{"matrix": [3, 11], "x": 11.75, "y": 3.25},
{"matrix": [3, 13], "x": 12.75, "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": [4, 7], "x": 7.25, "y": 4.25},
{"matrix": [4, 8], "x": 8.25, "y": 4.25},
{"matrix": [4, 9], "x": 9.25, "y": 4.25},
{"matrix": [4, 10], "x": 10.25, "y": 4.25},
{"matrix": [4, 11], "x": 11.25, "y": 4.25},
{"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75},
{"matrix": [4, 15], "x": 16.25, "y": 4.25},
{"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, 6], "x": 4, "y": 5.25, "w": 7},
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
{"matrix": [5, 12], "x": 12.5, "y": 5.25},
{"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
{"matrix": [5, 15], "x": 16.25, "y": 5.25},
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
]
},
"LAYOUT_tkl_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "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.5, "y": 0},
{"matrix": [0, 7], "x": 7.5, "y": 0},
{"matrix": [0, 8], "x": 8.5, "y": 0},
{"matrix": [0, 9], "x": 9.5, "y": 0},
{"matrix": [0, 10], "x": 11, "y": 0},
{"matrix": [0, 11], "x": 12, "y": 0},
{"matrix": [0, 12], "x": 13, "y": 0},
{"matrix": [0, 13], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [0, 16], "x": 17.25, "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": [1, 8], "x": 8, "y": 1.25},
{"matrix": [1, 9], "x": 9, "y": 1.25},
{"matrix": [1, 10], "x": 10, "y": 1.25},
{"matrix": [1, 11], "x": 11, "y": 1.25},
{"matrix": [1, 12], "x": 12, "y": 1.25},
{"matrix": [1, 13], "x": 13, "y": 1.25},
{"matrix": [3, 12], "x": 14, "y": 1.25},
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
{"matrix": [1, 15], "x": 16.25, "y": 1.25},
{"matrix": [1, 16], "x": 17.25, "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": [2, 7], "x": 7.5, "y": 2.25},
{"matrix": [2, 8], "x": 8.5, "y": 2.25},
{"matrix": [2, 9], "x": 9.5, "y": 2.25},
{"matrix": [2, 10], "x": 10.5, "y": 2.25},
{"matrix": [2, 11], "x": 11.5, "y": 2.25},
{"matrix": [2, 12], "x": 12.5, "y": 2.25},
{"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
{"matrix": [2, 14], "x": 15.25, "y": 2.25},
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
{"matrix": [2, 16], "x": 17.25, "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": [3, 7], "x": 7.75, "y": 3.25},
{"matrix": [3, 8], "x": 8.75, "y": 3.25},
{"matrix": [3, 9], "x": 9.75, "y": 3.25},
{"matrix": [3, 10], "x": 10.75, "y": 3.25},
{"matrix": [3, 11], "x": 11.75, "y": 3.25},
{"matrix": [3, 13], "x": 12.75, "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": [4, 7], "x": 7.25, "y": 4.25},
{"matrix": [4, 8], "x": 8.25, "y": 4.25},
{"matrix": [4, 9], "x": 9.25, "y": 4.25},
{"matrix": [4, 10], "x": 10.25, "y": 4.25},
{"matrix": [4, 11], "x": 11.25, "y": 4.25},
{"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
{"matrix": [4, 13], "x": 14, "y": 4.25},
{"matrix": [4, 15], "x": 16.25, "y": 4.25},
{"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, 6], "x": 4, "y": 5.25, "w": 7},
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
{"matrix": [5, 12], "x": 12.5, "y": 5.25},
{"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
{"matrix": [5, 15], "x": 16.25, "y": 5.25},
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
]
},
"LAYOUT_tkl_f13_ansi_tsangan": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"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.5, "y": 0},
{"matrix": [0, 6], "x": 6.5, "y": 0},
{"matrix": [0, 7], "x": 7.5, "y": 0},
{"matrix": [0, 8], "x": 8.5, "y": 0},
{"matrix": [0, 9], "x": 9.75, "y": 0},
{"matrix": [0, 10], "x": 10.75, "y": 0},
{"matrix": [0, 11], "x": 11.75, "y": 0},
{"matrix": [0, 12], "x": 12.75, "y": 0},
{"matrix": [0, 13], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [0, 16], "x": 17.25, "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": [1, 8], "x": 8, "y": 1.25},
{"matrix": [1, 9], "x": 9, "y": 1.25},
{"matrix": [1, 10], "x": 10, "y": 1.25},
{"matrix": [1, 11], "x": 11, "y": 1.25},
{"matrix": [1, 12], "x": 12, "y": 1.25},
{"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
{"matrix": [1, 15], "x": 16.25, "y": 1.25},
{"matrix": [1, 16], "x": 17.25, "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": [2, 7], "x": 7.5, "y": 2.25},
{"matrix": [2, 8], "x": 8.5, "y": 2.25},
{"matrix": [2, 9], "x": 9.5, "y": 2.25},
{"matrix": [2, 10], "x": 10.5, "y": 2.25},
{"matrix": [2, 11], "x": 11.5, "y": 2.25},
{"matrix": [2, 12], "x": 12.5, "y": 2.25},
{"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
{"matrix": [2, 14], "x": 15.25, "y": 2.25},
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
{"matrix": [2, 16], "x": 17.25, "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": [3, 7], "x": 7.75, "y": 3.25},
{"matrix": [3, 8], "x": 8.75, "y": 3.25},
{"matrix": [3, 9], "x": 9.75, "y": 3.25},
{"matrix": [3, 10], "x": 10.75, "y": 3.25},
{"matrix": [3, 11], "x": 11.75, "y": 3.25},
{"matrix": [3, 13], "x": 12.75, "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": [4, 7], "x": 7.25, "y": 4.25},
{"matrix": [4, 8], "x": 8.25, "y": 4.25},
{"matrix": [4, 9], "x": 9.25, "y": 4.25},
{"matrix": [4, 10], "x": 10.25, "y": 4.25},
{"matrix": [4, 11], "x": 11.25, "y": 4.25},
{"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75},
{"matrix": [4, 15], "x": 16.25, "y": 4.25},
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
{"matrix": [5, 1], "x": 1.5, "y": 5.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
{"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
{"matrix": [5, 12], "x": 12.5, "y": 5.25},
{"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
{"matrix": [5, 15], "x": 16.25, "y": 5.25},
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
]
},
"LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"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.5, "y": 0},
{"matrix": [0, 6], "x": 6.5, "y": 0},
{"matrix": [0, 7], "x": 7.5, "y": 0},
{"matrix": [0, 8], "x": 8.5, "y": 0},
{"matrix": [0, 9], "x": 9.75, "y": 0},
{"matrix": [0, 10], "x": 10.75, "y": 0},
{"matrix": [0, 11], "x": 11.75, "y": 0},
{"matrix": [0, 12], "x": 12.75, "y": 0},
{"matrix": [0, 13], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [0, 16], "x": 17.25, "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": [1, 8], "x": 8, "y": 1.25},
{"matrix": [1, 9], "x": 9, "y": 1.25},
{"matrix": [1, 10], "x": 10, "y": 1.25},
{"matrix": [1, 11], "x": 11, "y": 1.25},
{"matrix": [1, 12], "x": 12, "y": 1.25},
{"matrix": [1, 13], "x": 13, "y": 1.25},
{"matrix": [3, 12], "x": 14, "y": 1.25},
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
{"matrix": [1, 15], "x": 16.25, "y": 1.25},
{"matrix": [1, 16], "x": 17.25, "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": [2, 7], "x": 7.5, "y": 2.25},
{"matrix": [2, 8], "x": 8.5, "y": 2.25},
{"matrix": [2, 9], "x": 9.5, "y": 2.25},
{"matrix": [2, 10], "x": 10.5, "y": 2.25},
{"matrix": [2, 11], "x": 11.5, "y": 2.25},
{"matrix": [2, 12], "x": 12.5, "y": 2.25},
{"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
{"matrix": [2, 14], "x": 15.25, "y": 2.25},
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
{"matrix": [2, 16], "x": 17.25, "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": [3, 7], "x": 7.75, "y": 3.25},
{"matrix": [3, 8], "x": 8.75, "y": 3.25},
{"matrix": [3, 9], "x": 9.75, "y": 3.25},
{"matrix": [3, 10], "x": 10.75, "y": 3.25},
{"matrix": [3, 11], "x": 11.75, "y": 3.25},
{"matrix": [3, 13], "x": 12.75, "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": [4, 7], "x": 7.25, "y": 4.25},
{"matrix": [4, 8], "x": 8.25, "y": 4.25},
{"matrix": [4, 9], "x": 9.25, "y": 4.25},
{"matrix": [4, 10], "x": 10.25, "y": 4.25},
{"matrix": [4, 11], "x": 11.25, "y": 4.25},
{"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
{"matrix": [4, 13], "x": 14, "y": 4.25},
{"matrix": [4, 15], "x": 16.25, "y": 4.25},
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
{"matrix": [5, 1], "x": 1.5, "y": 5.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
{"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
{"matrix": [5, 12], "x": 12.5, "y": 5.25},
{"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
{"matrix": [5, 15], "x": 16.25, "y": 5.25},
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
]
},
"LAYOUT_tkl_ansi_wkl": {
"layout": [
{"matrix": [0, 0], "x": 0, "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.5, "y": 0},
{"matrix": [0, 7], "x": 7.5, "y": 0},
{"matrix": [0, 8], "x": 8.5, "y": 0},
{"matrix": [0, 9], "x": 9.5, "y": 0},
{"matrix": [0, 10], "x": 11, "y": 0},
{"matrix": [0, 11], "x": 12, "y": 0},
{"matrix": [0, 12], "x": 13, "y": 0},
{"matrix": [0, 13], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [0, 16], "x": 17.25, "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": [1, 8], "x": 8, "y": 1.25},
{"matrix": [1, 9], "x": 9, "y": 1.25},
{"matrix": [1, 10], "x": 10, "y": 1.25},
{"matrix": [1, 11], "x": 11, "y": 1.25},
{"matrix": [1, 12], "x": 12, "y": 1.25},
{"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
{"matrix": [1, 15], "x": 16.25, "y": 1.25},
{"matrix": [1, 16], "x": 17.25, "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": [2, 7], "x": 7.5, "y": 2.25},
{"matrix": [2, 8], "x": 8.5, "y": 2.25},
{"matrix": [2, 9], "x": 9.5, "y": 2.25},
{"matrix": [2, 10], "x": 10.5, "y": 2.25},
{"matrix": [2, 11], "x": 11.5, "y": 2.25},
{"matrix": [2, 12], "x": 12.5, "y": 2.25},
{"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
{"matrix": [2, 14], "x": 15.25, "y": 2.25},
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
{"matrix": [2, 16], "x": 17.25, "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": [3, 7], "x": 7.75, "y": 3.25},
{"matrix": [3, 8], "x": 8.75, "y": 3.25},
{"matrix": [3, 9], "x": 9.75, "y": 3.25},
{"matrix": [3, 10], "x": 10.75, "y": 3.25},
{"matrix": [3, 11], "x": 11.75, "y": 3.25},
{"matrix": [3, 13], "x": 12.75, "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": [4, 7], "x": 7.25, "y": 4.25},
{"matrix": [4, 8], "x": 8.25, "y": 4.25},
{"matrix": [4, 9], "x": 9.25, "y": 4.25},
{"matrix": [4, 10], "x": 10.25, "y": 4.25},
{"matrix": [4, 11], "x": 11.25, "y": 4.25},
{"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75},
{"matrix": [4, 15], "x": 16.25, "y": 4.25},
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
{"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
{"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
{"matrix": [5, 15], "x": 16.25, "y": 5.25},
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
]
},
"LAYOUT_tkl_ansi_wkl_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "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.5, "y": 0},
{"matrix": [0, 7], "x": 7.5, "y": 0},
{"matrix": [0, 8], "x": 8.5, "y": 0},
{"matrix": [0, 9], "x": 9.5, "y": 0},
{"matrix": [0, 10], "x": 11, "y": 0},
{"matrix": [0, 11], "x": 12, "y": 0},
{"matrix": [0, 12], "x": 13, "y": 0},
{"matrix": [0, 13], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [0, 16], "x": 17.25, "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": [1, 8], "x": 8, "y": 1.25},
{"matrix": [1, 9], "x": 9, "y": 1.25},
{"matrix": [1, 10], "x": 10, "y": 1.25},
{"matrix": [1, 11], "x": 11, "y": 1.25},
{"matrix": [1, 12], "x": 12, "y": 1.25},
{"matrix": [1, 13], "x": 13, "y": 1.25},
{"matrix": [3, 12], "x": 14, "y": 1.25},
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
{"matrix": [1, 15], "x": 16.25, "y": 1.25},
{"matrix": [1, 16], "x": 17.25, "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": [2, 7], "x": 7.5, "y": 2.25},
{"matrix": [2, 8], "x": 8.5, "y": 2.25},
{"matrix": [2, 9], "x": 9.5, "y": 2.25},
{"matrix": [2, 10], "x": 10.5, "y": 2.25},
{"matrix": [2, 11], "x": 11.5, "y": 2.25},
{"matrix": [2, 12], "x": 12.5, "y": 2.25},
{"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
{"matrix": [2, 14], "x": 15.25, "y": 2.25},
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
{"matrix": [2, 16], "x": 17.25, "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": [3, 7], "x": 7.75, "y": 3.25},
{"matrix": [3, 8], "x": 8.75, "y": 3.25},
{"matrix": [3, 9], "x": 9.75, "y": 3.25},
{"matrix": [3, 10], "x": 10.75, "y": 3.25},
{"matrix": [3, 11], "x": 11.75, "y": 3.25},
{"matrix": [3, 13], "x": 12.75, "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": [4, 7], "x": 7.25, "y": 4.25},
{"matrix": [4, 8], "x": 8.25, "y": 4.25},
{"matrix": [4, 9], "x": 9.25, "y": 4.25},
{"matrix": [4, 10], "x": 10.25, "y": 4.25},
{"matrix": [4, 11], "x": 11.25, "y": 4.25},
{"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
{"matrix": [4, 13], "x": 14, "y": 4.25},
{"matrix": [4, 15], "x": 16.25, "y": 4.25},
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
{"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
{"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
{"matrix": [5, 15], "x": 16.25, "y": 5.25},
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
]
},
"LAYOUT_tkl_f13_ansi_wkl": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"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.5, "y": 0},
{"matrix": [0, 6], "x": 6.5, "y": 0},
{"matrix": [0, 7], "x": 7.5, "y": 0},
{"matrix": [0, 8], "x": 8.5, "y": 0},
{"matrix": [0, 9], "x": 9.75, "y": 0},
{"matrix": [0, 10], "x": 10.75, "y": 0},
{"matrix": [0, 11], "x": 11.75, "y": 0},
{"matrix": [0, 12], "x": 12.75, "y": 0},
{"matrix": [0, 13], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [0, 16], "x": 17.25, "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": [1, 8], "x": 8, "y": 1.25},
{"matrix": [1, 9], "x": 9, "y": 1.25},
{"matrix": [1, 10], "x": 10, "y": 1.25},
{"matrix": [1, 11], "x": 11, "y": 1.25},
{"matrix": [1, 12], "x": 12, "y": 1.25},
{"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
{"matrix": [1, 15], "x": 16.25, "y": 1.25},
{"matrix": [1, 16], "x": 17.25, "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": [2, 7], "x": 7.5, "y": 2.25},
{"matrix": [2, 8], "x": 8.5, "y": 2.25},
{"matrix": [2, 9], "x": 9.5, "y": 2.25},
{"matrix": [2, 10], "x": 10.5, "y": 2.25},
{"matrix": [2, 11], "x": 11.5, "y": 2.25},
{"matrix": [2, 12], "x": 12.5, "y": 2.25},
{"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
{"matrix": [2, 14], "x": 15.25, "y": 2.25},
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
{"matrix": [2, 16], "x": 17.25, "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": [3, 7], "x": 7.75, "y": 3.25},
{"matrix": [3, 8], "x": 8.75, "y": 3.25},
{"matrix": [3, 9], "x": 9.75, "y": 3.25},
{"matrix": [3, 10], "x": 10.75, "y": 3.25},
{"matrix": [3, 11], "x": 11.75, "y": 3.25},
{"matrix": [3, 13], "x": 12.75, "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": [4, 7], "x": 7.25, "y": 4.25},
{"matrix": [4, 8], "x": 8.25, "y": 4.25},
{"matrix": [4, 9], "x": 9.25, "y": 4.25},
{"matrix": [4, 10], "x": 10.25, "y": 4.25},
{"matrix": [4, 11], "x": 11.25, "y": 4.25},
{"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75},
{"matrix": [4, 15], "x": 16.25, "y": 4.25},
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
{"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
{"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
{"matrix": [5, 15], "x": 16.25, "y": 5.25},
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
]
},
"LAYOUT_tkl_f13_ansi_wkl_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"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.5, "y": 0},
{"matrix": [0, 6], "x": 6.5, "y": 0},
{"matrix": [0, 7], "x": 7.5, "y": 0},
{"matrix": [0, 8], "x": 8.5, "y": 0},
{"matrix": [0, 9], "x": 9.75, "y": 0},
{"matrix": [0, 10], "x": 10.75, "y": 0},
{"matrix": [0, 11], "x": 11.75, "y": 0},
{"matrix": [0, 12], "x": 12.75, "y": 0},
{"matrix": [0, 13], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [0, 16], "x": 17.25, "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": [1, 8], "x": 8, "y": 1.25},
{"matrix": [1, 9], "x": 9, "y": 1.25},
{"matrix": [1, 10], "x": 10, "y": 1.25},
{"matrix": [1, 11], "x": 11, "y": 1.25},
{"matrix": [1, 12], "x": 12, "y": 1.25},
{"matrix": [1, 13], "x": 13, "y": 1.25},
{"matrix": [3, 12], "x": 14, "y": 1.25},
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
{"matrix": [1, 15], "x": 16.25, "y": 1.25},
{"matrix": [1, 16], "x": 17.25, "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": [2, 7], "x": 7.5, "y": 2.25},
{"matrix": [2, 8], "x": 8.5, "y": 2.25},
{"matrix": [2, 9], "x": 9.5, "y": 2.25},
{"matrix": [2, 10], "x": 10.5, "y": 2.25},
{"matrix": [2, 11], "x": 11.5, "y": 2.25},
{"matrix": [2, 12], "x": 12.5, "y": 2.25},
{"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
{"matrix": [2, 14], "x": 15.25, "y": 2.25},
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
{"matrix": [2, 16], "x": 17.25, "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": [3, 7], "x": 7.75, "y": 3.25},
{"matrix": [3, 8], "x": 8.75, "y": 3.25},
{"matrix": [3, 9], "x": 9.75, "y": 3.25},
{"matrix": [3, 10], "x": 10.75, "y": 3.25},
{"matrix": [3, 11], "x": 11.75, "y": 3.25},
{"matrix": [3, 13], "x": 12.75, "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": [4, 7], "x": 7.25, "y": 4.25},
{"matrix": [4, 8], "x": 8.25, "y": 4.25},
{"matrix": [4, 9], "x": 9.25, "y": 4.25},
{"matrix": [4, 10], "x": 10.25, "y": 4.25},
{"matrix": [4, 11], "x": 11.25, "y": 4.25},
{"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
{"matrix": [4, 13], "x": 14, "y": 4.25},
{"matrix": [4, 15], "x": 16.25, "y": 4.25},
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
{"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
{"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
{"matrix": [5, 15], "x": 16.25, "y": 5.25},
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
]
}
}
}

View File

@ -0,0 +1,45 @@
/* Copyright 2024 Deemen17 Works
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General 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_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_SCRL, KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_LSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all(
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, RGB_SAI, RGB_HUI,
KC_TRNS, KC_TRNS, KC_TRNS, 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_SAD, RGB_HUD,
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,
KC_TRNS, 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_VAI,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, RGB_VAD, RGB_MOD
)
};
#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_VOLD, KC_VOLU) },
};
#endif

View File

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

View File

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

View File

@ -0,0 +1,27 @@
# DE80
![deemen17/de80](https://i.imgur.com/oZvFM0G.png)
The DE80 is a portable TKL PCB that features a compact A87 form factor, dual USB Type C ports (breakable), seven JST SH 4P 1.0 ports, two FPC ports, and compatibility with both F12 and F13 footprints, making it suitable for use with a variety of TKL boards.
* Keyboard Maintainer: [Deemen17](https://github.com/Deemen17)
* Hardware Supported: DE80 R1 2024 PCB w/ STM32F103 MCU
* Hardware Availability: [Deemen17 Facebook Page](https://www.facebook.com/deemen17/), [Deemen17 Works Instagram](https://www.instagram.com/deemen17.works)
Make example for this keyboard (after setting up your build environment):
make deemen17/de80:default
Flashing example for this keyboard:
make deemen17/de80: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 (ESC/Escape) and plug in the keyboard
* **Physical reset button**: Double tap the button RESET on the back of the PCB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -0,0 +1,123 @@
{
"manufacturer": "DOIO",
"keyboard_name": "KB09-01",
"maintainer": "DOIO2022",
"bootloader": "stm32duino",
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "B5", "pin_b": "B6"},
{"pin_a": "A1", "pin_b": "A2"}
]
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["B14", "B13", "B12", "B0", "A7"],
"rows": ["B3", "B4", "B9", "B8"]
},
"processor": "STM32F103",
"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,
"gradient_left_right": true,
"gradient_up_down": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"jellybean_raindrops": true,
"multisplash": true,
"pixel_fractal": 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
},
"default": {
"animation": "cycle_up_down"
},
"driver": "ws2812",
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
{"matrix": [0, 1], "x": 56, "y": 0, "flags": 4},
{"matrix": [0, 2], "x": 112, "y": 0, "flags": 4},
{"matrix": [1, 0], "x": 0, "y": 21, "flags": 4},
{"matrix": [1, 1], "x": 56, "y": 21, "flags": 4},
{"matrix": [1, 2], "x": 112, "y": 21, "flags": 4},
{"matrix": [2, 0], "x": 0, "y": 42, "flags": 4},
{"matrix": [2, 1], "x": 56, "y": 42, "flags": 4},
{"matrix": [2, 2], "x": 112, "y": 42, "flags": 4}
],
"max_brightness": 200,
"sleep": true
},
"url": "",
"usb": {
"device_version": "0.0.1",
"pid": "0x0901",
"vid": "0xD010"
},
"ws2812": {
"pin": "A10"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [1, 3], "x": 1, "y": 0},
{"matrix": [0, 0], "x": 4, "y": 0},
{"matrix": [0, 1], "x": 5, "y": 0},
{"matrix": [0, 2], "x": 6, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 3], "x": 0, "y": 1},
{"matrix": [2, 3], "x": 2, "y": 1},
{"matrix": [1, 0], "x": 4, "y": 1},
{"matrix": [1, 1], "x": 5, "y": 1},
{"matrix": [1, 2], "x": 6, "y": 1},
{"matrix": [3, 0], "x": 1, "y": 2},
{"matrix": [2, 0], "x": 4, "y": 2},
{"matrix": [2, 1], "x": 5, "y": 2},
{"matrix": [2, 2], "x": 6, "y": 2},
{"matrix": [3, 1], "x": 3, "y": 3},
{"matrix": [3, 2], "x": 3, "y": 3}
]
}
}
}

View File

@ -0,0 +1,58 @@
/* Copyright 2022 DOIO
* Copyright 2022 DOIO2022 <https://github.com/DOIO2022>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General 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
enum layer_names {
_LAY0,
_LAY1,
_LAY2,
_LAY3
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_LAY0] = LAYOUT(
KC_UP, KC_1, KC_2, KC_3, KC_MPLY, KC_MUTE,
KC_LEFT, KC_RIGHT, KC_4, KC_5, KC_6,
KC_DOWN, KC_7, KC_8, KC_9,
TO(1), LWIN(KC_D)),
[_LAY1] = LAYOUT(
KC_TRNS, C(S(KC_S)), C(KC_H), C(KC_G), KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, C(S(KC_A)), C(KC_J), C(S(KC_G)),
KC_TRNS, C(KC_Z), KC_DEL, C(A(S(KC_E))),
TO(2), KC_TRNS),
[_LAY2] = LAYOUT(
KC_TRNS, S(KC_I), A(KC_EQL), C(S(KC_M)), KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, S(KC_O), A(KC_MINS), S(KC_M),
KC_TRNS, KC_C, KC_V, C(KC_M),
TO(3), KC_TRNS),
[_LAY3] = LAYOUT(
KC_TRNS, RGB_SPI, RGB_SPD, RGB_HUI, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, RGB_SAI, RGB_SAD, RGB_HUD,
KC_TRNS, RGB_MOD, RGB_VAI, RGB_VAD,
TO(0), KC_TRNS)
};
#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_LAY0] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_LAY1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
[_LAY2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
[_LAY3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
};
#endif

View File

@ -0,0 +1,26 @@
# doio/kb09
![kb09-01](https://i.imgur.com/MVKeweC.png)
QMK for DOIO GBA keypad .
* Keyboard Maintainer: DOIO2022
* Hardware Supported: DOIO GBA keypad
Make example for this keyboard (after setting up your build environment):
make doio/kb09:default
Flashing example for this keyboard:
make doio/kb09: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
* **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

@ -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

@ -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,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

@ -140,8 +140,8 @@
{"matrix": [9, 1], "x": 3, "y": 4.375},
{"matrix": [8, 2], "x": 4.25, "y": 4.375, "w": 1.25},
{"matrix": [9, 2], "x": 5.25, "y": 4.375},
{"matrix": [8, 3], "x": 6.25, "y": 4.375},
{"matrix": [9, 2], "x": 5.5, "y": 4.375},
{"matrix": [8, 3], "x": 6.5, "y": 4.375},
{"matrix": [9, 3], "x": 8.5, "y": 4.375},
{"matrix": [8, 4], "x": 9.5, "y": 4.25},
{"matrix": [9, 4], "x": 10.5, "y": 4.375},

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 2024 Yiancar-Designs
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* RGB options */
#define WS2812_PWM_DRIVER PWMD3
#define WS2812_PWM_CHANNEL 3
#define WS2812_PWM_PAL_MODE 1
#define WS2812_DMA_STREAM STM32_DMA1_STREAM3
#define WS2812_DMA_CHANNEL 3

View File

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

View File

@ -0,0 +1,270 @@
{
"manufacturer": "Yiancar-Designs",
"keyboard_name": "NK_ Classic TKL ISO",
"maintainer": "Yiancar",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["B12", "B13", "B14", "B15", "A8", "A10", "A14", "A15", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "A0", "A1"],
"rows": ["B11", "B10", "B2", "B1", "A9", "A5"]
},
"processor": "STM32F072",
"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,
"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,
"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": [
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
{"matrix": [0, 1], "x": 26, "y": 0, "flags": 4},
{"matrix": [0, 2], "x": 38, "y": 0, "flags": 4},
{"matrix": [0, 3], "x": 51, "y": 0, "flags": 4},
{"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
{"matrix": [0, 5], "x": 83, "y": 0, "flags": 1},
{"matrix": [0, 6], "x": 96, "y": 0, "flags": 1},
{"matrix": [0, 7], "x": 109, "y": 0, "flags": 1},
{"matrix": [0, 8], "x": 122, "y": 0, "flags": 1},
{"matrix": [0, 9], "x": 141, "y": 0, "flags": 4},
{"matrix": [0, 10], "x": 154, "y": 0, "flags": 4},
{"matrix": [0, 11], "x": 166, "y": 0, "flags": 4},
{"matrix": [0, 12], "x": 179, "y": 0, "flags": 4},
{"matrix": [0, 14], "x": 195, "y": 0, "flags": 1},
{"matrix": [0, 15], "x": 208, "y": 0, "flags": 1},
{"matrix": [0, 16], "x": 221, "y": 0, "flags": 1},
{"matrix": [1, 16], "x": 221, "y": 15, "flags": 1},
{"matrix": [1, 15], "x": 208, "y": 15, "flags": 1},
{"matrix": [1, 14], "x": 195, "y": 15, "flags": 1},
{"matrix": [1, 13], "x": 173, "y": 15, "flags": 1},
{"matrix": [1, 12], "x": 154, "y": 15, "flags": 4},
{"matrix": [1, 11], "x": 141, "y": 15, "flags": 4},
{"matrix": [1, 10], "x": 128, "y": 15, "flags": 4},
{"matrix": [1, 9], "x": 115, "y": 15, "flags": 4},
{"matrix": [1, 8], "x": 102, "y": 15, "flags": 4},
{"matrix": [1, 7], "x": 90, "y": 15, "flags": 4},
{"matrix": [1, 6], "x": 77, "y": 15, "flags": 4},
{"matrix": [1, 5], "x": 64, "y": 15, "flags": 4},
{"matrix": [1, 4], "x": 51, "y": 15, "flags": 4},
{"matrix": [1, 3], "x": 38, "y": 15, "flags": 4},
{"matrix": [1, 2], "x": 26, "y": 15, "flags": 4},
{"matrix": [1, 1], "x": 13, "y": 15, "flags": 4},
{"matrix": [1, 0], "x": 0, "y": 15, "flags": 4},
{"matrix": [2, 0], "x": 3, "y": 27, "flags": 1},
{"matrix": [2, 1], "x": 19, "y": 27, "flags": 4},
{"matrix": [2, 2], "x": 32, "y": 27, "flags": 4},
{"matrix": [2, 3], "x": 45, "y": 27, "flags": 4},
{"matrix": [2, 4], "x": 58, "y": 27, "flags": 4},
{"matrix": [2, 5], "x": 70, "y": 27, "flags": 4},
{"matrix": [2, 6], "x": 83, "y": 27, "flags": 4},
{"matrix": [2, 7], "x": 96, "y": 27, "flags": 4},
{"matrix": [2, 8], "x": 109, "y": 27, "flags": 4},
{"matrix": [2, 9], "x": 122, "y": 27, "flags": 4},
{"matrix": [2, 10], "x": 134, "y": 27, "flags": 4},
{"matrix": [2, 11], "x": 147, "y": 27, "flags": 4},
{"matrix": [2, 12], "x": 160, "y": 27, "flags": 4},
{"matrix": [3, 13], "x": 178, "y": 21, "flags": 1},
{"matrix": [2, 14], "x": 195, "y": 27, "flags": 1},
{"matrix": [2, 15], "x": 208, "y": 27, "flags": 1},
{"matrix": [2, 16], "x": 221, "y": 27, "flags": 1},
{"x": 224, "y": 34, "flags": 9},
{"x": 218, "y": 34, "flags": 9},
{"x": 211, "y": 34, "flags": 9},
{"x": 205, "y": 34, "flags": 9},
{"x": 198, "y": 34, "flags": 9},
{"x": 192, "y": 34, "flags": 9},
{"matrix": [3, 12], "x": 163, "y": 40, "flags": 4},
{"matrix": [3, 11], "x": 150, "y": 40, "flags": 4},
{"matrix": [3, 10], "x": 138, "y": 40, "flags": 4},
{"matrix": [3, 9], "x": 125, "y": 40, "flags": 4},
{"matrix": [3, 8], "x": 112, "y": 40, "flags": 4},
{"matrix": [3, 7], "x": 99, "y": 40, "flags": 4},
{"matrix": [3, 6], "x": 86, "y": 40, "flags": 4},
{"matrix": [3, 5], "x": 74, "y": 40, "flags": 4},
{"matrix": [3, 4], "x": 61, "y": 40, "flags": 4},
{"matrix": [3, 3], "x": 48, "y": 40, "flags": 4},
{"matrix": [3, 2], "x": 35, "y": 40, "flags": 4},
{"matrix": [3, 1], "x": 22, "y": 40, "flags": 4},
{"matrix": [3, 0], "x": 5, "y": 40, "flags": 1},
{"matrix": [4, 0], "x": 1, "y": 52, "flags": 1},
{"matrix": [4, 1], "x": 16, "y": 52, "flags": 4},
{"matrix": [4, 2], "x": 29, "y": 52, "flags": 4},
{"matrix": [4, 3], "x": 42, "y": 52, "flags": 4},
{"matrix": [4, 4], "x": 54, "y": 52, "flags": 4},
{"matrix": [4, 5], "x": 67, "y": 52, "flags": 4},
{"matrix": [4, 6], "x": 80, "y": 52, "flags": 4},
{"matrix": [4, 7], "x": 93, "y": 52, "flags": 4},
{"matrix": [4, 8], "x": 106, "y": 52, "flags": 4},
{"matrix": [4, 9], "x": 118, "y": 52, "flags": 4},
{"matrix": [4, 10], "x": 131, "y": 52, "flags": 4},
{"matrix": [4, 11], "x": 144, "y": 52, "flags": 4},
{"matrix": [4, 12], "x": 168, "y": 52, "flags": 1},
{"matrix": [4, 15], "x": 208, "y": 52, "flags": 1},
{"matrix": [5, 16], "x": 221, "y": 64, "flags": 1},
{"matrix": [5, 15], "x": 208, "y": 64, "flags": 1},
{"matrix": [5, 14], "x": 195, "y": 64, "flags": 1},
{"matrix": [5, 13], "x": 176, "y": 64, "flags": 1},
{"matrix": [5, 12], "x": 160, "y": 64, "flags": 1},
{"matrix": [5, 11], "x": 144, "y": 64, "flags": 1},
{"matrix": [5, 6], "x": 90, "y": 64, "flags": 4},
{"matrix": [5, 2], "x": 35, "y": 64, "flags": 1},
{"matrix": [5, 1], "x": 19, "y": 64, "flags": 1},
{"matrix": [5, 0], "x": 3, "y": 64, "flags": 1}
],
"max_brightness": 120,
"sleep": true
},
"url": "www.yiancar-designs.com",
"usb": {
"device_version": "0.0.1",
"pid": "0x4E55",
"vid": "0x8968"
},
"ws2812": {
"driver": "pwm",
"pin": "B0"
},
"community_layouts": ["tkl_iso_tsangan"],
"layouts": {
"LAYOUT_tkl_iso_tsangan": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [0, 2], "x": 3, "y": 0},
{"matrix": [0, 3], "x": 4, "y": 0},
{"matrix": [0, 4], "x": 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": 11, "y": 0},
{"matrix": [0, 10], "x": 12, "y": 0},
{"matrix": [0, 11], "x": 13, "y": 0},
{"matrix": [0, 12], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [0, 16], "x": 17.25, "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": [1, 8], "x": 8, "y": 1.25},
{"matrix": [1, 9], "x": 9, "y": 1.25},
{"matrix": [1, 10], "x": 10, "y": 1.25},
{"matrix": [1, 11], "x": 11, "y": 1.25},
{"matrix": [1, 12], "x": 12, "y": 1.25},
{"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
{"matrix": [1, 15], "x": 16.25, "y": 1.25},
{"matrix": [1, 16], "x": 17.25, "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": [2, 7], "x": 7.5, "y": 2.25},
{"matrix": [2, 8], "x": 8.5, "y": 2.25},
{"matrix": [2, 9], "x": 9.5, "y": 2.25},
{"matrix": [2, 10], "x": 10.5, "y": 2.25},
{"matrix": [2, 11], "x": 11.5, "y": 2.25},
{"matrix": [2, 12], "x": 12.5, "y": 2.25},
{"matrix": [2, 14], "x": 15.25, "y": 2.25},
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
{"matrix": [2, 16], "x": 17.25, "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": [3, 7], "x": 7.75, "y": 3.25},
{"matrix": [3, 8], "x": 8.75, "y": 3.25},
{"matrix": [3, 9], "x": 9.75, "y": 3.25},
{"matrix": [3, 10], "x": 10.75, "y": 3.25},
{"matrix": [3, 11], "x": 11.75, "y": 3.25},
{"matrix": [3, 12], "x": 12.75, "y": 3.25},
{"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
{"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4.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": [4, 7], "x": 7.25, "y": 4.25},
{"matrix": [4, 8], "x": 8.25, "y": 4.25},
{"matrix": [4, 9], "x": 9.25, "y": 4.25},
{"matrix": [4, 10], "x": 10.25, "y": 4.25},
{"matrix": [4, 11], "x": 11.25, "y": 4.25},
{"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75},
{"matrix": [4, 15], "x": 16.25, "y": 4.25},
{"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, 6], "x": 4, "y": 5.25, "w": 7},
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
{"matrix": [5, 12], "x": 12.5, "y": 5.25},
{"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
{"matrix": [5, 15], "x": 16.25, "y": 5.25},
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
]
}
}
}

View File

@ -0,0 +1,73 @@
/* Copyright 2024 Yiancar-Designs
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum my_keycodes {
RETRO_RGB = QK_USER_0
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_tkl_iso_tsangan( /* Base */
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[1] = LAYOUT_tkl_iso_tsangan( /* FN */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, KC_VOLD, KC_MUTE,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, _______, _______,
_______, _______, _______, RETRO_RGB, _______, _______, _______, _______, _______, _______),
};
bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
if (host_keyboard_led_state().caps_lock) {
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;
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case RETRO_RGB:
if (record->event.pressed) {
switch (rgb_matrix_get_flags()) {
case LED_FLAG_ALL: {
rgb_matrix_set_flags(LED_FLAG_INDICATOR);
}
break;
default: {
rgb_matrix_set_flags(LED_FLAG_ALL);
}
break;
}
}
return false; // Skip all further processing of this key
default:
return true; // Process all other keycodes normally
}
}

View File

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

View File

@ -0,0 +1,32 @@
# NK Classic TKL
This is a TKL ISO PCB. It supports VIA and full per-key RGB.
* Keyboard Maintainer: [Yiancar](https://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar)
* Hardware Supported: A TKL keyboard with STM32F072CB or APM compatible
* Hardware Availability: https://novelkeys.com/
## Instructions
### Build
Make example for this keyboard (after setting up your build environment):
make novelkeys/nk_classic_tkl_iso:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
### Reset
- Unplug
- Hold Escape
- Plug In
- Unplug
- Release Escape
### Flash
- Unplug
- Hold Escape
- Plug In
- Flash using QMK Toolbox or dfu-util (`make novelkeys/nk_classic_tkl_iso:<keymap>:dfu-util`)

View File

@ -0,0 +1,2 @@
# Wildcard to allow APM32 MCU
DFU_SUFFIX_ARGS = -v FFFF -p FFFF

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,107 @@
{
"manufacturer": "ScottoKeebs",
"keyboard_name": "Scotto69 (PCB Edition)",
"maintainer": "joe-scotto",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "B15", "pin_b": "B14"}
]
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["A7", "A8", "A14", "A15", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "C14", "C15", "A3", "A4", "A5", "A6"],
"rows": ["B11", "B10", "B2", "B1", "B0"]
},
"processor": "STM32F072",
"url": "https://scottokeebs.com",
"usb": {
"device_version": "1.0.0",
"pid": "0x0030",
"vid": "0x534B"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0.5},
{"matrix": [0, 2], "x": 3, "y": 0.5},
{"matrix": [0, 3], "x": 4, "y": 0.5},
{"matrix": [0, 4], "x": 5, "y": 0.5},
{"matrix": [0, 5], "x": 6, "y": 0.5},
{"matrix": [0, 6], "x": 7, "y": 0.5},
{"matrix": [0, 7], "x": 8, "y": 0.5},
{"matrix": [0, 8], "x": 9, "y": 0.5},
{"matrix": [0, 9], "x": 10, "y": 0.5},
{"matrix": [0, 10], "x": 11, "y": 0.5},
{"matrix": [0, 11], "x": 12, "y": 0.5},
{"matrix": [0, 12], "x": 13, "y": 0.5},
{"matrix": [0, 13], "x": 15, "y": 0},
{"matrix": [0, 14], "x": 16, "y": 0},
{"matrix": [0, 15], "x": 17, "y": 0},
{"matrix": [0, 16], "x": 18, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 2, "y": 1.5},
{"matrix": [1, 2], "x": 3, "y": 1.5},
{"matrix": [1, 3], "x": 4, "y": 1.5},
{"matrix": [1, 4], "x": 5, "y": 1.5},
{"matrix": [1, 5], "x": 6, "y": 1.5},
{"matrix": [1, 6], "x": 7, "y": 1.5},
{"matrix": [1, 7], "x": 8, "y": 1.5},
{"matrix": [1, 8], "x": 9, "y": 1.5},
{"matrix": [1, 9], "x": 10, "y": 1.5},
{"matrix": [1, 10], "x": 11, "y": 1.5},
{"matrix": [1, 11], "x": 12, "y": 1.5},
{"matrix": [1, 12], "x": 13, "y": 1.5},
{"matrix": [1, 13], "x": 15, "y": 1},
{"matrix": [1, 14], "x": 16, "y": 1},
{"matrix": [1, 15], "x": 17, "y": 1},
{"matrix": [1, 16], "x": 18, "y": 1, "h": 2},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 2, "y": 2.5},
{"matrix": [2, 2], "x": 3, "y": 2.5},
{"matrix": [2, 3], "x": 4, "y": 2.5},
{"matrix": [2, 4], "x": 5, "y": 2.5},
{"matrix": [2, 5], "x": 6, "y": 2.5},
{"matrix": [2, 6], "x": 7, "y": 2.5},
{"matrix": [2, 7], "x": 8, "y": 2.5},
{"matrix": [2, 8], "x": 9, "y": 2.5},
{"matrix": [2, 9], "x": 10, "y": 2.5},
{"matrix": [2, 10], "x": 11, "y": 2.5},
{"matrix": [2, 11], "x": 12, "y": 2.5},
{"matrix": [2, 12], "x": 13, "y": 2.5},
{"matrix": [2, 13], "x": 15, "y": 2},
{"matrix": [2, 14], "x": 16, "y": 2},
{"matrix": [2, 15], "x": 17, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 2, "y": 3.5},
{"matrix": [3, 2], "x": 3, "y": 3.5},
{"matrix": [3, 3], "x": 4, "y": 3.5},
{"matrix": [3, 4], "x": 5, "y": 3.5},
{"matrix": [3, 5], "x": 6, "y": 3.5},
{"matrix": [3, 6], "x": 7, "y": 3.5, "w": 2},
{"matrix": [3, 8], "x": 9, "y": 3.5},
{"matrix": [3, 9], "x": 10, "y": 3.53},
{"matrix": [3, 10], "x": 11, "y": 3.53},
{"matrix": [3, 11], "x": 12, "y": 3.5},
{"matrix": [3, 12], "x": 13, "y": 3.5},
{"matrix": [3, 13], "x": 15, "y": 3},
{"matrix": [3, 14], "x": 16, "y": 3},
{"matrix": [3, 15], "x": 17, "y": 3},
{"matrix": [3, 16], "x": 18, "y": 3, "h": 2},
{"matrix": [4, 0], "x": 0, "y": 4},
{"matrix": [4, 13], "x": 15, "y": 4, "w": 2},
{"matrix": [4, 15], "x": 17, "y": 4}
]
}
}
}

View File

@ -0,0 +1,58 @@
/*
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
#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(_______, _______) },
[2] = { ENCODER_CCW_CW(_______, _______) },
[3] = { ENCODER_CCW_CW(_______, _______) }
};
#endif
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_1, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_LNUM, KC_SLSH, KC_ASTR, KC_MINS,
KC_2, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC, KC_QUOT, KC_7, KC_8, KC_9, KC_PLUS,
KC_MUTE, KC_LSFT, LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), KC_RSFT, KC_4, KC_5, KC_6,
KC_4, KC_ESC, KC_NO, KC_NO, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), KC_NO, KC_NO, KC_NO, KC_1, KC_2, KC_3, KC_ENT,
KC_5, KC_0, KC_DOT
),
[1] = LAYOUT(
KC_TRNS, KC_TRNS, KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
[2] = LAYOUT(
KC_TRNS, KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
[3] = LAYOUT(
KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 @@
ENCODER_MAP_ENABLE = yes

View File

@ -0,0 +1,29 @@
# Scotto69 (PCB Edition)
![Scotto69 (PCB Edition)](https://i.imgur.com/WNtAzcG.jpeg)
The Scotto69 (PCB Edition) is a standard 4x12 ortholinear keyboard with a numpad on the right and 5 macro keys on the left with an optional encoder.
* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto)
* Hardware Supported: STM32F072CBT6
* Hardware Availability: [ScottoKeebs](https://scottokeebs.com)
# Compiling
Make example for this keyboard (after setting up your build environment):
make handwired/scottokeebs/scotto69:default
Flashing example for this keyboard:
make handwired/scottokeebs/scotto69: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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,34 @@
// Copyright 2024 Studio Kestra
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
*
* Esc 1 2 3 4 5 6 7 8 9 0 - = Backsp
*
* Tab Q W E R T Y U I O P [ ] \
*
* Caps A S D F G H J K L ; ' Enter
*
* Shift Z X C V B N M , . / Shift
*
* CtrlGUI Alt Alt GUI Fn Ctrl
*
*/
[0] = LAYOUT_60_ansi(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
),
[1] = LAYOUT_60_ansi( /* FN */
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_DEL,
KC_NO, KC_NO, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_HOME, KC_PGDN, KC_END, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, KC_NO
)
};

View File

@ -0,0 +1,34 @@
// Copyright 2024 Studio Kestra
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
*
* Esc 1 2 3 4 5 6 7 8 9 0 - = | ~
*
* Tab Q W E R T Y U I O P [ ] Bcksp
*
* Caps A S D F G H J K L ; ' Enter
*
* Shift Z X C V B N M , . / Shift Fn
*
* CtrlGUI Alt Alt GUIMenuCtrl
*
*/
[0] = LAYOUT_60_ansi_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_BSLS, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
),
[1] = LAYOUT_60_ansi_split_bs_rshift( /* FN */
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_DEL,
KC_NO, KC_NO, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_HOME, KC_PGDN, KC_END, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
)
};

View File

@ -0,0 +1,34 @@
// Copyright 2024 Studio Kestra
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
*
* Esc 1 2 3 4 5 6 7 8 9 0 - = Backsp
*
* Tab Q W E R T Y U I O P [ ]
* Ent
* Caps A S D F G H J K L ; ' `
*
* Shft \ Z X C V B N M , . / Shift
*
* CtrlGUI Alt Alt GUI Fn Ctrl
*
*/
[0] = LAYOUT_60_iso(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,
KC_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
),
[1] = LAYOUT_60_iso( /* FN */
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_DEL,
KC_NO, KC_NO, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_HOME, KC_PGDN, KC_END, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, KC_NO
)
};

View File

@ -0,0 +1,34 @@
// Copyright 2024 Studio Kestra
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
*
* Esc 1 2 3 4 5 6 7 8 9 0 - = | ~
*
* Tab Q W E R T Y U I O P [ ] Bcksp
*
* Caps A S D F G H J K L ; ' Enter
*
* Shift Z X C V B N M , . / Shift Fn
*
* CtrlGUI Alt Alt GUIMenuCtrl
*
*/
[0] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
),
[1] = LAYOUT_all( /* FN */
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_DEL,
KC_NO, KC_NO, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_HOME, KC_PGDN, KC_END, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
)
};

View File

@ -0,0 +1,27 @@
# studiokestra/fairholme
![studiokestra/fairholme](https://i.imgur.com/Ep6wkgS.png)
60% PCB developed as a successor to Cascade PCB powered by STM32F072.
* Keyboard Maintainer: [studiokestra](https://github.com/studiokestra)
* Hardware Supported: Geonworks F2-60
* Hardware Availability: https://geon.works
Make example for this keyboard (after setting up your build environment):
make studiokestra/fairholme:default
Flashing example for this keyboard:
make studiokestra/fairholme: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

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