Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
817fcfdc9a | ||
|
|
ed84a4e7e3 | ||
|
|
9a0118c603 | ||
|
|
aeff347a07 | ||
|
|
d3932a104c | ||
|
|
076c8cc45f | ||
|
|
8ef58e3291 | ||
|
|
760caaa9af | ||
|
|
26ea090190 | ||
|
|
23becac3a6 | ||
|
|
5a59363e28 | ||
|
|
8936d0ae4b | ||
|
|
9a1a35f681 | ||
|
|
be72a64cf6 | ||
|
|
e6c171bdd6 | ||
|
|
5eb0e406fd | ||
|
|
79d5b27993 | ||
|
|
59b5c884ff | ||
|
|
7c2f48e55d | ||
|
|
ac2090bf4e | ||
|
|
bfa7449041 | ||
|
|
b046bffcb8 | ||
|
|
bc2b73f997 | ||
|
|
41d854048c | ||
|
|
27d0844efb | ||
|
|
34689e348f | ||
|
|
07e2c11e55 | ||
|
|
85c32da989 | ||
|
|
a9b0750f7b | ||
|
|
8a9688bc64 | ||
|
|
9d88786b6f | ||
|
|
e4342f8630 | ||
|
|
9c03d41f6a | ||
|
|
95fed3bfcf | ||
|
|
a3cb3e139a | ||
|
|
d917bfb277 | ||
|
|
744019c032 | ||
|
|
6721825df5 | ||
|
|
bdf86c4cbd |
No files matched your search
@@ -19,6 +19,7 @@
|
|||||||
* [Overview](newbs_building_firmware_configurator.md)
|
* [Overview](newbs_building_firmware_configurator.md)
|
||||||
* [Step by Step](configurator_step_by_step.md)
|
* [Step by Step](configurator_step_by_step.md)
|
||||||
* [Troubleshooting](configurator_troubleshooting.md)
|
* [Troubleshooting](configurator_troubleshooting.md)
|
||||||
|
* [Architecture](configurator_architecture.md)
|
||||||
* QMK API
|
* QMK API
|
||||||
* [Overview](api_overview.md)
|
* [Overview](api_overview.md)
|
||||||
* [API Documentation](api_docs.md)
|
* [API Documentation](api_docs.md)
|
||||||
|
|||||||
@@ -0,0 +1,61 @@
|
|||||||
|
# QMK Configurator Architecture
|
||||||
|
|
||||||
|
This page describes the web architecture behind QMK Configurator at a high level. If you are interested in the architecture of the QMK Configurator code itself you should start at the [qmk_configurator](https://github.com/qmk/qmk_configurator) repository.
|
||||||
|
|
||||||
|
# Overview
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
# Detailed Description
|
||||||
|
|
||||||
|
QMK Configurator is a [Single Page Application](https://en.wikipedia.org/wiki/Single-page_application) that allows users to create custom keymaps for their QMK-compatible keyboard. They can export JSON representation of their keymaps and compile firmware binaries that can be flashed to their keyboard using a tool like [QMK Toolbox](https://github.com/qmk/qmk_toolbox).
|
||||||
|
|
||||||
|
Configurator gets metadata about keyboards from the Keyboard Metadata store and submits compile requests to the QMK API. The results of those compile requests will be made available on [Digital Ocean Spaces](https://www.digitalocean.com/products/spaces/), an S3-compatible data store.
|
||||||
|
|
||||||
|
## Configurator Frontend
|
||||||
|
|
||||||
|
Address: <https://config.qmk.fm>
|
||||||
|
|
||||||
|
The [Configurator Frontend](https://config.qmk.fm) is compiled into a set of static files that are served by Github Pages. This action happens every time a commit is pushed to the [qmk_configurator `master`](https://github.com/qmk/qmk_configurator) branch. You can view the status of these jobs on the [qmk_configurator actions tab](https://github.com/qmk/qmk_configurator/actions/workflows/build.yml).
|
||||||
|
|
||||||
|
## Keyboard Metadata
|
||||||
|
|
||||||
|
Address: <https://keyboards.qmk.fm>
|
||||||
|
|
||||||
|
The Keyboard Metadata is generated every time a keyboard in [qmk_firmware](https://github.com/qmk/qmk_firmware) changes. The resulting JSON files are uploaded to Spaces and used by Configurator to generate UI for each keyboard. You can view the status of this job on the [qmk_firmware actions tab](https://github.com/qmk/qmk_firmware/actions/workflows/api.yml). If you are a QMK Collaborator you can manually run this job using the `workflow_dispatch` event trigger.
|
||||||
|
|
||||||
|
## QMK API
|
||||||
|
|
||||||
|
Address: <http://api.qmk.fm>
|
||||||
|
|
||||||
|
The QMK API accepts `keymap.json` files for compilation. These are the same files you can use directly with `qmk compile` and `qmk flash`. When a `keymap.json` is submitted the browser will poll the status of the job periodically (every 2 seconds or longer, preferably) until the job has completed. The final status JSON will contain pointers to source and binary downloads for the keymap.
|
||||||
|
|
||||||
|
QMK API always presents the source and binary downloads side-by-side to comply with the GPL.
|
||||||
|
|
||||||
|
There are 3 non-error status responses from the API-
|
||||||
|
|
||||||
|
1. Compile Job Queued
|
||||||
|
2. Compile Job Running
|
||||||
|
3. Compile Job Finished
|
||||||
|
|
||||||
|
### Compile Job Queued
|
||||||
|
|
||||||
|
This status indicates that the job has not yet been picked up by a [QMK Compiler](#qmk-compiler) node. Configurator shows this status as "Waiting for an oven".
|
||||||
|
|
||||||
|
### Compile Job Running
|
||||||
|
|
||||||
|
This status indicates that the job has started compiling. Configurator shows this status as "Baking".
|
||||||
|
|
||||||
|
### Compile Job Finished
|
||||||
|
|
||||||
|
This status indicates that the job has completed. There will be keys in the status JSON for source and binary downloads.
|
||||||
|
|
||||||
|
## Redis/RQ
|
||||||
|
|
||||||
|
QMK API uses RQ to distribute jobs to the available [QMK Compiler](#qmk-compiler) nodes. When a `keymap.json` is received it's put into the RQ queue, where a `qmk_compiler` node will pick it up from.
|
||||||
|
|
||||||
|
## QMK Compiler
|
||||||
|
|
||||||
|
[QMK Compiler](https://github.com/qmk/qmk_compiler) is what actually performs the compilation of the `keymap.json`. It does so by checking out the requested `qmk_firmware` branch, running `qmk compile keymap.json`, and then uploading the resulting source and binary to Digital Ocean Spaces.
|
||||||
|
|
||||||
|
When users download their source/binary, API will redirect them to the authenticated Spaces download URL.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
<mxfile host="Electron" modified="2021-08-09T19:46:29.036Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36" etag="PQ2r34UrZa0TfW4Fw0EV" version="14.6.13" type="device"><diagram id="NEtccoSKIy4HskWlhJpu" name="Page-1">5VvbcqM4EP2a1O4+hOLqy2Ni5zKX1CTxzszOU0oG2dZEIBZEYu/XbwuEDQg7csZ2vFlXjQca0RLdR+eohXPiDML5VYLi2Q0LMD2xzWB+4gxPbNvqezb8JywLaTFtr7BMExJI28owIv/gsqG0ZiTAaa0hZ4xyEteNPosi7POaDSUJe643mzBa7zVGU6wYRj6iqvU7CfissPY8c2W/xmQ6K3u2THklRGVjaUhnKGDPFZNzceIMEsZ4cRTOB5iK6JVxKe67XHN1ObAER1znhgfT76Zzxxp3Z49j5+7zjw/z+NSS+XlCNJNPLEfLF2UIcAARkacs4TM2ZRGiFyvrecKyKMCiHxPOVm0+MxaD0QLjT8z5QqYXZZyBacZDKq/iKDgTyYLTiEW4sFwSSqXLAKWz3L9orD64jEXKssTHG57WlQBCyRTzTVGRDsWTV3qQcb3CLMQ8WUCDBFPEyVMdK0hCbrpst8oKHMjEbJEk9+UckTDHcTWm0jQk4RR6pWQM3z4l8QNKuDhkYZxxnKRw/J0ljymHJ2HRg2X35vDPiKPp2kA/4YTj+cbIyKunjmv0zMpHeljSQXH6XJla0jSrzKrStvPIei9Hdgm9HNoZpyTCgyXZmPWYI0qmERz7EDGcgIGiMaa3LCUittULIoQEaOZzo8GYcc7CSoMz6ZKLqXQOJBKLgYXzqSBc4xmPKcy11JgSPsvG0GLCIn6JQkJFiK8xfcLCjbwgJyDM+uJ8wChL8ud0ivSILnjCHnHblQlMyIp9kn/ADkMJCK55G14OL4YXmybrFhhyOzXQtKEGdMVwVeBUzDvHTjmKjdS54jWfojQlfpP3YCR/CRwZXnn6o3ptOJcgK84W8gwma8JVz7lZ0qZVI9Ff401PkzddTdqsJM5rme6lTZtdZQ+3jMCTLXFjlRkqyaZJI8Vzy7uqytl01Gk4chqOisAojnJYLR/7F5BWTpkV0gZUTDjgbnOUxTEorqCosxO7QyGG5+MEjqbiaDBLoPsTGzo2L0mCJ2yuNhri9FHQi21+iehCAfHzjHA8ilEOkWegnTqGm0QVkiDIVwU5950j/3Garw9Kdsjd7YYZlmurkhlUYrDNFoB19qUnltPCCUW40xhFZcBnnIvl65noTChxNCFT4+/w0ZiEZXOwV+9Qk9bmd0SiKYTeNm+F9AM2RKTX3tno4iN6QiM/IbFYHXz7eqHeOJI8AeM2YbTQDL4fiuFnCeIs0RvmNUt54eWqUK1iwOnaZ28Asr7cfC0894E/q2PYehDs7w2CGqtFdbndqklVRaoI1BpN2tEaXVdryql2JGKzTKiEgvdasXHchqNDi01XAz/vpiK0tOHW0YTbYUpC6/1ULj9TuH0XlWZ93riOuhjotsz/rmf09pWkjpKkuvI/4sWYoSRIG+K/ks9PsgV4ucEcBYgjXV2ekCR8hoiq7a+uoeGZX+RN3PQ1BsdiwXB2+wG+h629rFR7SKDaRPSLj4VIm7n2ptsuG2voPKRIu7Zt9N9apHtbiXRr7VirASVHVgtAc4cFoDZNekclypZnWK5p9Tp9y+v1up1y73nRQMbWBWHdz3LP90ASbav14HuW6L4m9spsHotE95Us3d18Kkm2mS5KSZziik76lGXBy+XNLpTTq8O5Y6rKadkts3Rv27JlZ2uFE8VkrWTeX4z+nGS0DLSeWILDTYp3jyJ/Bqsf2xRrFXP4Bb6+3fy2tegdUuc6pqenct29pVFjkfryDulhtzDLWXskCnbarCtd75WadaoUlpqqBelBi0qzWDRINwzZanTkOObmkTVv8Pq1G+CgGMNuRVSl53csonZXV0R7RyWitrobIasPMMoCRGF4WY807b+PnD+OS3idXh347fuHrdrbt8qWu4+5WpzU1RcE81QocLTwHcMPIiMoUsJEPtI8+obPWqRZRlNK7+kLoqskejut3UWCeg1msh3L6PYrn54qsf2WbO3thYOjrpTeTGK1Oea4ikSQ/EaSX7t1qwiZfeC9W6ft9dO71TSn/D3YS3hz7KPSNEct3+/vlDyVciS2/FLOEnwYSWpskXS7ai3YOSjB2WqwcEDEm+9cjEwRuqaGfGTineJdhrOW3c/2AjApnO6/BNxBkpqVXrfz1pWes91Lx73KkPZ+UTkP31qHyiw26zFt2fEacGiWiPtWHXWNXvwuIIwpETNmDbPhuZhhAcvG+RWrJj3Wm2x99Vt+QXLYrS9XXdAVu4YDCCehIpztbHefRVH+a07dX22sc/efoLy+/daU5+pswh+I8vRXQt3joDyZVbeW015ztaxLgHU3/eZbnT3Tn6uuULYGwoF/z+lo7wYdF16AHes00GuuO/V3Qxui2bP0ULP1bqjTYK5yS2Gvm5vu/6sQ1IVzKa67KwTXEJK3GVu6KLWd14H0ZRjB6eovj4rmqz/gci7+BQ==</diagram></mxfile>
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1261px" height="991px" viewBox="-0.5 -0.5 1261 991" style="background-color: rgb(255, 255, 255);"><defs/><g><path d="M 885.2 40 L 1060 40" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><image x="804.7" y="-0.5" width="80" height="80" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHcAAAB8CAYAAABT/i9JAAAgAElEQVR4Xu19CbhdZXnuu/Y8n3k+OUPmhAyQQMJMQCZxqFpBvU7VKk6otQIq4BBBLVQF7a2ot/a2trW3j09br+3F1lZAJBBIQkLInJOcedjD2WfPwxrv8/3/+tdee+eckIRDCMcsnnCmvdfee73r/Yb3+77/l3D+OKMr0NbZ8xmfz/95p9PVkEonP5SMTf7zGZ3oVXyS9Cqee8GdurV10RKP3/tIMBS+0e3xegzDAP3TNA3pmcQTU+PD1wPQz5UPfh7cU0Cis6fvM35/6PPBcF0PXTACVNd19lWWy8hnZiBJBnKZ9NJ0On3sFE55Vh5yHtw5LnNbb29/wO3/fjBcd6PX5/MYugGdmGqCmkknIZcKcLlcYIDDQHomeR7cs3LbnuGL9PYvuSMQjNwVqqvvkSBxQA0dBG6pXER2ZpqB6XA5icKMvfSPvk+nzoN7hpf91Xtab29vv8cf/n64rv5Gnz9QxVLd0JFOJlAqFuBymyy1g0qcZdgayJwH99UD6XTP3L985R3BYPiu+vqmHkmqZmmxWEAqGWcG1+kklnIA6T9AgivYjIBHwkx8gjMYBO7MebN8uiDM5+N7e1f0B8OB74XrG28KBAMeXTdNq66zIGl6OoZSPgeX2819qQkcM71OP3zNfWjoXgU5n4YrN4TxwUOWWc6kz4M7n1id8rmWr1x9RzBSf2dDY0uvwyGBg0qAGigW8piOT7FzMZYyU8v/SZIL4dZeRDpWQPLVM4YSzvmZKbgZuAfNxwLZ8+CeMh6v+IG9K1b0hwOR7zU2Nt0UCIYqLDV0aJqORGwC+VwOHo+HvZYAlL66A/Vo6V2Ftv41cDg9KJZkZDIZ6Dx2QoHAzQ9h/LgJLgxk06nzZvkVo/YyJ1i5dv0ddZGGOxubW3slh8QiXcHSfD6H+NQEIJEvdVVFvJLkQF3HEnQsXofG1m4oGt0EGlRVR0kuI5PNmcETZ64nP4QxE1z6QzZzHtxXBdsVK9b1ByKB7zU1td4UDIc9PCel3FSHrumYmhhDPp+Bxy1YWvGnHn8EnUvXo2vxGji9PsZqTdVs4GoolRXkcjnOXBBzJ+HJD2Ps+AGL8edFjHmG9oILN3yqvr7xrpbW9l7J4aiw1CDFKIPo5Djzky6nqyo4oui4qXMpelduQFP7IqgalxFVk6nse12HqumMucVSGYVCocLc1CS8BO4xE1ycV6jmBdoV69b1RwJ1jzS3tt0citR5hMggWDoxNoxsJgOP12ulKcKf+gIRBmjv8rVwewMWeKqucoBVjTGXg0xgc/9cKJVQKpUrPtcEd/TYfitNymXPy49nDPCFGzZ/qr6p8a7Wts5eh5OzVChImVQKk+OjjKXXfOh+/Oaf/hKeUtxMU4C23mVYesElaOvuhaYbjI0MQAaiyVrxO12DRt/rOjSFMziXL0BRVM5cGCikphhzCVyhUOWymfMB1emgu27duv5AXdMjbe0dN4cZSyu+VFNVjA4PIZtJw+PzWcHRRW//LJ79xU8QCRhYdsElWLZ6A9xeP2MisdAeKHHTq3K2EqCqDk3nQRQBr+k6FFVDPl9gj+HRsoFiagqewjDGBji49F/+PLinBu2GzZd9qqGp5c6Oju4+J7HUVolJzyQxOjrMzCEJ99zkckaR8NDRuwyrL7wUnT39jKUc0IqJJbAoyJJNs0vfMxNMTNU0BiYPqkyfq2nI5nLs7OK1BLijA/vMmwrI584zd050N27c2BOINP5FW0fXTXX1DV6RvtBXYung8WPIpNPw2ljK5EDDgD8QxqqLLsXqdRvgDQQ5A22+U2GMNEEUv9cMzk4RGdvYave5ZI6LxRK7gbgbAIrpKXgLwyBwhVnO57LnzXItupsvu/pTTa0td3Z0L+pzOpxmaY3nptOJBEaHB7meSyy1q0eQsKh/OdZtuhy9vUu5L2UAqqZZ5X6zApQAU/yO/m76VxNwzlx+IxBzFV1DuVyGLJv+VoBLPrc4jNGjHFzmh8+Dy6HduPGKnkhj5C/auxfd1FDfyFlq1ksVVcXxo0eQTs3A6/NXqUeMpcEA1l9yJdZvuIQxlgdGnJVkfjViJDO5ZJJV5mPZ36tSHf547mvNnNZkNmO4Qv6W+95CscTlSlN6JL9LZtlXHMbI0ZcsX1/I536/mXv5Vdd9orm19e6unt4+l7OapYlEHEPHjgGSyVJbaY1qq71Ll+OSy67C4iXL2I0gIlpimshPK0ALQCnFqfhP5nuFiRZ+mBhKQJsstm4QAldRbSmQKO9xs+wrDGNk4CXLLP9egrvxiit6muoav9+5qOfmhoZmL+WjPOrVISsKBg4fQkqw1AKUqb3wBf245LKrccmmyxAMmixljDM4I8kEM8bZgiZbIMQZa/paK4etAC9ukEpqxNUp4a/LZQWKRia5Aixn7iT8xRGMHN1rBXPF3yfmXnXd9Z9obWu7e1Hv4j5SiOySYCw6hcFjA9TTUIl4TX8KQ8fiZStw5TXXYfnyFeziMT9oRb3cT3Jwud9UFDNgIp8pclcC3jLJFXYL9Ymdj8w3Oze/STioHGD6yoQLK5/m0iMLqKrA5RWkYiG/sM3yFVdc3xNuCn+/p6fv5sbmFq9oJBMsPXRgP2aSSfj8gSr1iEe8flx+1RZcfsWViETCDEBZsI5FtjxQ4nmq6StZ4MN9JmdfdZQs5EPL32oGT4PMKLk6guapEGezCkVWURbCRRVzDZTSU4y5w0f2WiXCBQ/uO9793rGGxqau1rYOKzedmpjAwNEjoKoLtaqIthSRQixZtgw33HgjVq9aRaS1BUAUDNnVJGKaWakxWSdECZbSMNZSMGQKEJZgMVt0LExvJdAiUO1gC9baAynx3jm4wwxc8TmKxcLCZu77PvyxeG//4uax0WHEo1FMT0/D5w9a2Y+4EJSrXnXNNbj22mvQ3NDIGMejWm5KeZAk2MhlQvY7FslW/KiIaK2giokWFSGCsZydi7OegWfLf4VvFWaeiRfEWkWDLCuWImX2wDGzTO6FwA3YwKXPVVro4L73Qx+N9/QtbiY0H/+vX3Pzazv6+vpww0034sK1a+GiDkK6WEziMwE10w8R1VI6Q6kRD5ooiCKpUKQ6Zgpk/syrOmbka/pny4eKn0VkzEAUNw/dUDxI48qUipKssL/XBlLiZwZuaRhDh1+0UrVUsbC0vJD7lt/zwY/Ee/r6GbhP/ua/q8D90r33oG9RdxXYdLE4YwkwzlpZ5TVY+j2XDSklqWay8LuCpZXASQBuD4wq0qMIwKwcl4HKH0vn1Ml/qypjrV2REoGUJT+mpxA0wRXWKFUqLmxw3/3+D8cXmeA+9cTjVeA+/N3vIBDgooQ4GAs1jQVOQh0SOSsPkipiv/V7M4iqmG0TGDNStgsT9BzdZL+9aCAKBdxPc/B1M/ImRUrTeVRczVyhYYOb5dIwhg+/aBXr06ni0nJ5AU8c3Pa+D8YX9XLmPv3bJyv+1jDw8MPfrQKXfJeIcJlPNVMYlp7Y81NmqvlNYEXLTOgXZtgWITOgeF22okqZ1R5xA9mKCKKNhqVBZI7LMmOyKERw9p4INIkYwfIwhg7tMaNlYMGDe+t7PxDv7ulj4G576in4AzyYIgY8UgOuAJD5VMZgEUjZgDHLcNznmt0RigbF9JeceVxmtAdglRJe5SawgLSlSyyNMvNbRVFs5riatSKQEoEVMVeAK8xyOp1aWi6XF+6s0Dvf/f54V08vA/fZbU/PCS4rxZkRseVXmVBfqavatWAC154GCVZyEcIwdWAOFPPXImUywWMmV3RWWDcK5bRmMUGjVhqhIdea4xOBrgWXAM4sdHDf/q73xrsXcXCfe/YZBq64sx955GHLLFdYWmEcz2lNFpPqRP6WRcgiIOK/48BWQKkKuMwAjD2PtGJR7WHacSXFYmKFGUyRby/LZVYsEMwUpb3aQEqY6LLF3N1WpSqTTi9s5r7ttv8R7+ruYeDueG67BS4B/D0TXJH6UDAlCuaWAFFlmm0yo5WbVoQGqwjAmtkoZeJF+EogZhbgrZaaSquq1QBH1kJRGbhz+dfZgC6lowiVhzF4aLdVFcpkFji4b33nuy1wd+143oyWeZRJ4Pr9/irBgphFqY9dThTlOqvSY9ZVrSBJiBmW6eV1V2Hm7W0yXDfm6RSPlrnIIfwvPZbMMd1oFaGCfz9bIMVbWw2UGbhDDFx6LP1vwYP7lne8K97ZvYgxd/eunQxcYZa/971H4PN5udIkhH+rX6kmmLKxzfKvTPcV5pgrViw3NWVHDj4PzERfVJV2bPZH2W+SsixDUXlOWwHUDnSl+8ICnylUUYTlIQwerJjlbCazsM3ym99+W7yjq5uB++LuXSwVEm2lBK7b4zEBsBUBqoA20x2rTYYLGcJ3iuqQAFAUCuzFBMHSSiHBrOmaUTI7HxUlFBlU0mP9WWaz+VyKFE+NKkATcwnc4wcrZjmbXeDg3vIH77TA3btnN/zEXLOU9/DDj7C5HCFYCKmQpzBmMGX6Tt7+woMpxjQKhsyynuWfRRXIVLaEbmw9h4EpqkmC8Sprx5FZELine truncated
|
||||||
|
After Width: | Height: | Size: 39 KiB |
@@ -45,6 +45,7 @@ bool wpm_keycode_user(uint16_t keycode) {
|
|||||||
|
|
||||||
Additionally, if `WPM_ALLOW_COUNT_REGRESSION` is defined, there is the `uint8_t wpm_regress_count(uint16_t keycode)` function that allows you to decrease the WPM. This is useful if you want to be able to penalize certain keycodes (or even combinations).
|
Additionally, if `WPM_ALLOW_COUNT_REGRESSION` is defined, there is the `uint8_t wpm_regress_count(uint16_t keycode)` function that allows you to decrease the WPM. This is useful if you want to be able to penalize certain keycodes (or even combinations).
|
||||||
|
|
||||||
|
```c
|
||||||
__attribute__((weak)) uint8_t wpm_regress_count(uint16_t keycode) {
|
__attribute__((weak)) uint8_t wpm_regress_count(uint16_t keycode) {
|
||||||
bool weak_modded = (keycode >= QK_LCTL && keycode < QK_LSFT) || (keycode >= QK_RCTL && keycode < QK_RSFT);
|
bool weak_modded = (keycode >= QK_LCTL && keycode < QK_LSFT) || (keycode >= QK_RCTL && keycode < QK_RSFT);
|
||||||
|
|
||||||
@@ -60,3 +61,4 @@ __attribute__((weak)) uint8_t wpm_regress_count(uint16_t keycode) {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
```
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
/* Copyright 2021 Salmon Cat Studio
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xCA75
|
||||||
|
#define PRODUCT_ID 0x4014
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER Salmon Cat Studio
|
||||||
|
#define PRODUCT Aozora
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 16
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*
|
||||||
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define MATRIX_ROW_PINS { F6, F5, F4, F1, F0 }
|
||||||
|
#define MATRIX_COL_PINS { B0, B1, B2, B3, B7, D0, D1, D4, D6, D7, B4, B5, B6, C6, C7, F7 }
|
||||||
|
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/* Copyright 2021 Salmon Cat Studio
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "hotswap.h"
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
/* Copyright 2021 Salmon Cat Studio
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3D, K3E, K3F, \
|
||||||
|
K40, K41, K42, K44, K48, K49, K4A, K4D, K4E, K4F \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, KC_NO, K3D, K3E, K3F }, \
|
||||||
|
{ K40, K41, K42, KC_NO, K44, KC_NO, KC_NO, KC_NO, K48, K49, K4A, KC_NO, KC_NO, K4D, K4E, K4F }, \
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Aozora",
|
||||||
|
"url": "https://salmoncat.studio/pages/aozora-%E9%9D%92%E7%A9%BA-6-9-21-7-10-21",
|
||||||
|
"maintainer": "Food",
|
||||||
|
"width": 17.25,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"K00 (F6,B0)", "x":0, "y":0},
|
||||||
|
{"label":"K01 (F6,B1)", "x":1, "y":0},
|
||||||
|
{"label":"K02 (F6,B2)", "x":2, "y":0},
|
||||||
|
{"label":"K03 (F6,B3)", "x":3, "y":0},
|
||||||
|
{"label":"K04 (F6,B7)", "x":4, "y":0},
|
||||||
|
{"label":"K05 (F6,D0)", "x":5, "y":0},
|
||||||
|
{"label":"K06 (F6,D1)", "x":6, "y":0},
|
||||||
|
{"label":"K07 (F6,D4)", "x":7, "y":0},
|
||||||
|
{"label":"K08 (F6,D6)", "x":8, "y":0},
|
||||||
|
{"label":"K09 (F6,D7)", "x":9, "y":0},
|
||||||
|
{"label":"K0A (F6,B4)", "x":10, "y":0},
|
||||||
|
{"label":"K0B (F6,B5)", "x":11, "y":0},
|
||||||
|
{"label":"K0C (F6,B6)", "x":12, "y":0},
|
||||||
|
{"label":"K0D (F6,C6)", "x":13, "y":0, "w":2},
|
||||||
|
{"label":"K0E (F6,C7)", "x":15.25, "y":0},
|
||||||
|
{"label":"K0F (F6,F7)", "x":16.25, "y":0},
|
||||||
|
{"label":"K10 (F5,B0)", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"K11 (F5,B1)", "x":1.5, "y":1},
|
||||||
|
{"label":"K12 (F5,B2)", "x":2.5, "y":1},
|
||||||
|
{"label":"K13 (F5,B3)", "x":3.5, "y":1},
|
||||||
|
{"label":"K14 (F5,B7)", "x":4.5, "y":1},
|
||||||
|
{"label":"K15 (F5,D0)", "x":5.5, "y":1},
|
||||||
|
{"label":"K16 (F5,D1)", "x":6.5, "y":1},
|
||||||
|
{"label":"K17 (F5,D4)", "x":7.5, "y":1},
|
||||||
|
{"label":"K18 (F5,D6)", "x":8.5, "y":1},
|
||||||
|
{"label":"K19 (F5,D7)", "x":9.5, "y":1},
|
||||||
|
{"label":"K1A (F5,B4)", "x":10.5, "y":1},
|
||||||
|
{"label":"K1B (F5,B5)", "x":11.5, "y":1},
|
||||||
|
{"label":"K1C (F5,B6)", "x":12.5, "y":1},
|
||||||
|
{"label":"K1D (F5,C6)", "x":13.5, "y":1, "w":1.5},
|
||||||
|
{"label":"K1E (F5,C7)", "x":15.25, "y":1},
|
||||||
|
{"label":"K1F (F5,F7)", "x":16.25, "y":1},
|
||||||
|
{"label":"K20 (F4,B0)", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"K21 (F4,B1)", "x":1.75, "y":2},
|
||||||
|
{"label":"K22 (F4,B2)", "x":2.75, "y":2},
|
||||||
|
{"label":"K23 (F4,B3)", "x":3.75, "y":2},
|
||||||
|
{"label":"K24 (F4,B7)", "x":4.75, "y":2},
|
||||||
|
{"label":"K25 (F4,D0)", "x":5.75, "y":2},
|
||||||
|
{"label":"K26 (F4,D1)", "x":6.75, "y":2},
|
||||||
|
{"label":"K27 (F4,D4)", "x":7.75, "y":2},
|
||||||
|
{"label":"K28 (F4,D6)", "x":8.75, "y":2},
|
||||||
|
{"label":"K29 (F4,D7)", "x":9.75, "y":2},
|
||||||
|
{"label":"K2A (F4,B4)", "x":10.75, "y":2},
|
||||||
|
{"label":"K2B (F4,B5)", "x":11.75, "y":2},
|
||||||
|
{"label":"K2D (F4,C6)", "x":12.75, "y":2, "w":2.25},
|
||||||
|
{"label":"K30 (F1,B0)", "x":0, "y":3, "w":2.25},
|
||||||
|
{"label":"K31 (F1,B1)", "x":2.25, "y":3},
|
||||||
|
{"label":"K32 (F1,B2)", "x":3.25, "y":3},
|
||||||
|
{"label":"K33 (F1,B3)", "x":4.25, "y":3},
|
||||||
|
{"label":"K34 (F1,B7)", "x":5.25, "y":3},
|
||||||
|
{"label":"K35 (F1,D0)", "x":6.25, "y":3},
|
||||||
|
{"label":"K36 (F1,D1)", "x":7.25, "y":3},
|
||||||
|
{"label":"K37 (F1,D4)", "x":8.25, "y":3},
|
||||||
|
{"label":"K38 (F1,D6)", "x":9.25, "y":3},
|
||||||
|
{"label":"K39 (F1,D7)", "x":10.25, "y":3},
|
||||||
|
{"label":"K3A (F1,B4)", "x":11.25, "y":3},
|
||||||
|
{"label":"K3D (F1,C6)", "x":12.25, "y":3, "w":2.75},
|
||||||
|
{"label":"K3E (F1,C7)", "x":15.25, "y":3},
|
||||||
|
{"label":"K3F (F1,F7)", "x":16.25, "y":3},
|
||||||
|
{"label":"K40 (F0,B0)", "x":0, "y":4, "w":1.25},
|
||||||
|
{"label":"K41 (F0,B1)", "x":1.25, "y":4, "w":1.25},
|
||||||
|
{"label":"K42 (F0,B2)", "x":2.5, "y":4, "w":1.25},
|
||||||
|
{"label":"K44 (F0,B7)", "x":3.75, "y":4, "w":6.25},
|
||||||
|
{"label":"K48 (F0,D6)", "x":10, "y":4, "w":1.25},
|
||||||
|
{"label":"K49 (F0,D7)", "x":11.25, "y":4, "w":1.25},
|
||||||
|
{"label":"K4A (F0,B4)", "x":12.5, "y":4, "w":1.25},
|
||||||
|
{"label":"K4D (F0,C6)", "x":14.25, "y":4},
|
||||||
|
{"label":"K4E (F0,C7)", "x":15.25, "y":4},
|
||||||
|
{"label":"K4F (F0,F7)", "x":16.25, "y":4}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
/* Copyright 2021 Salmon Cat Studio
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR, KC_PGUP,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_PGDN,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, MO(1),
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
# Aozora
|
||||||
|
|
||||||
|
A 65%-Style 6-Key keyboard featuring a cloud-shaped badge.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Food](https://github.com/Phooood)
|
||||||
|
* Hardware Supported: [Aozora](https://salmoncat.studio/pages/aozora-%E9%9D%92%E7%A9%BA-6-9-21-7-10-21)
|
||||||
|
* Hardware Availability: [salmoncat.studio](https://salmoncat.studio/pages/aozora-%E9%9D%92%E7%A9%BA-6-9-21-7-10-21) | GB is over.
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make aozora/hotswap:default
|
||||||
|
|
||||||
|
To reset, press the button on the back of the PCB.
|
||||||
|
|
||||||
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = yes # Console for debug
|
||||||
|
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
|
||||||
@@ -48,8 +48,10 @@
|
|||||||
#define RGB_DI_PIN E2
|
#define RGB_DI_PIN E2
|
||||||
#define DRIVER_LED_TOTAL 53
|
#define DRIVER_LED_TOTAL 53
|
||||||
#ifdef RGB_DI_PIN
|
#ifdef RGB_DI_PIN
|
||||||
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses
|
# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
|
||||||
|
# define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value
|
||||||
#endif
|
#endif
|
||||||
#ifndef RGB_DISABLE_WHEN_USB_SUSPENDED
|
#ifndef RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||||
# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
|
# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
|
||||||
|
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value
|
||||||
#endif
|
#endif
|
||||||
@@ -55,7 +55,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define RGBLIGHT_HUE_STEP 8
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
#define RGBLIGHT_SAT_STEP 8
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
#define RGBLIGHT_VAL_STEP 8
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
|
#define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value
|
||||||
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||||
/*== all animations enable ==*/
|
/*== all animations enable ==*/
|
||||||
#define RGBLIGHT_ANIMATIONS
|
#define RGBLIGHT_ANIMATIONS
|
||||||
@@ -70,3 +70,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
// #define RGBLIGHT_EFFECT_RGB_TEST
|
// #define RGBLIGHT_EFFECT_RGB_TEST
|
||||||
// #define RGBLIGHT_EFFECT_ALTERNATING
|
// #define RGBLIGHT_EFFECT_ALTERNATING
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value
|
||||||
|
#endif
|
||||||
@@ -53,7 +53,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define RGBLIGHT_HUE_STEP 8
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
#define RGBLIGHT_SAT_STEP 8
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
#define RGBLIGHT_VAL_STEP 8
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
#define RGBLIGHT_LIMIT_VAL 5 /* The maximum brightness level */
|
#define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value
|
||||||
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||||
/*== all animations enable ==*/
|
/*== all animations enable ==*/
|
||||||
#define RGBLIGHT_ANIMATIONS
|
#define RGBLIGHT_ANIMATIONS
|
||||||
@@ -68,3 +68,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
// #define RGBLIGHT_EFFECT_RGB_TEST
|
// #define RGBLIGHT_EFFECT_RGB_TEST
|
||||||
// #define RGBLIGHT_EFFECT_ALTERNATING
|
// #define RGBLIGHT_EFFECT_ALTERNATING
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value
|
||||||
|
#endif
|
||||||
@@ -50,8 +50,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define RGB_DI_PIN E2
|
#define RGB_DI_PIN E2
|
||||||
#define DRIVER_LED_TOTAL 69
|
#define DRIVER_LED_TOTAL 69
|
||||||
#ifdef RGB_DI_PIN
|
#ifdef RGB_DI_PIN
|
||||||
#define RGBLED_NUM 69
|
# define RGBLED_NUM 69
|
||||||
#define RGB_MATRIX_KEYPRESSES
|
# define RGB_MATRIX_KEYPRESSES
|
||||||
|
# define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value
|
||||||
|
#endif
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// generated by KBFirmware JSON to QMK Parser
|
// generated by KBFirmware JSON to QMK Parser
|
||||||
|
|||||||
@@ -50,12 +50,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define RGB_DI_PIN E2
|
#define RGB_DI_PIN E2
|
||||||
#define DRIVER_LED_TOTAL 70
|
#define DRIVER_LED_TOTAL 70
|
||||||
#ifdef RGB_DI_PIN
|
#ifdef RGB_DI_PIN
|
||||||
#define RGBLED_NUM 70
|
# define RGBLED_NUM 70
|
||||||
#define RGB_MATRIX_KEYPRESSES
|
# define RGB_MATRIX_KEYPRESSES
|
||||||
// #define RGBLIGHT_HUE_STEP 8
|
// #define RGBLIGHT_HUE_STEP 8
|
||||||
// #define RGBLIGHT_SAT_STEP 8
|
// #define RGBLIGHT_SAT_STEP 8
|
||||||
// #define RGBLIGHT_VAL_STEP 8
|
// #define RGBLIGHT_VAL_STEP 8
|
||||||
// #define RGBLIGHT_LIMIT_VAL 180 /* The maximum brightness level */
|
# define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value
|
||||||
// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||||
/*== all animations enable ==*/
|
/*== all animations enable ==*/
|
||||||
// #define RGBLIGHT_ANIMATIONS
|
// #define RGBLIGHT_ANIMATIONS
|
||||||
@@ -70,3 +70,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
// #define RGBLIGHT_EFFECT_RGB_TEST
|
// #define RGBLIGHT_EFFECT_RGB_TEST
|
||||||
// #define RGBLIGHT_EFFECT_ALTERNATING
|
// #define RGBLIGHT_EFFECT_ALTERNATING
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value
|
||||||
|
#endif
|
||||||
@@ -56,8 +56,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
// The number of LEDs connected
|
// The number of LEDs connected
|
||||||
#define DRIVER_LED_TOTAL 74
|
#define DRIVER_LED_TOTAL 74
|
||||||
#ifdef RGB_DI_PIN
|
#ifdef RGB_DI_PIN
|
||||||
#define RGBLED_NUM 74
|
# define RGBLED_NUM 74
|
||||||
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses
|
# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
|
||||||
|
# define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value
|
||||||
|
#endif
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
VIA_ENABLE = yes
|
VIA_ENABLE = yes
|
||||||
@@ -24,7 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define PRODUCT_ID 0x0000
|
#define PRODUCT_ID 0x0000
|
||||||
#define DEVICE_VER 0x0001
|
#define DEVICE_VER 0x0001
|
||||||
#define MANUFACTURER 8bits4ever
|
#define MANUFACTURER 8bits4ever
|
||||||
#define PRODUCT MiSS-1200
|
#define PRODUCT Amiga-1200
|
||||||
|
|
||||||
/* key matrix size */
|
/* key matrix size */
|
||||||
#define MATRIX_ROWS 8
|
#define MATRIX_ROWS 8
|
||||||
|
|||||||
@@ -4,13 +4,109 @@
|
|||||||
"width": 22.5,
|
"width": 22.5,
|
||||||
"height": 6.5,
|
"height": 6.5,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_default": {
|
||||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6, "y":0}, {"label":"F6", "x":8, "y":0}, {"label":"F7", "x":9, "y":0}, {"label":"F8", "x":10, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0},
|
"layout": [
|
||||||
{"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"`", "x":13, "y":1.5}, {"label":"Backspace", "x":14, "y":1.5}, {"label":"Del", "x":15.25, "y":1.5, "w":1.5}, {"label":"Help", "x":16.75, "y":1.5, "w":1.5}, {"label":"Num Lock", "x":18.5, "y":1.5}, {"label":"/", "x":19.5, "y":1.5}, {"label":"*", "x":20.5, "y":1.5}, {"label":"-", "x":21.5, "y":1.5},
|
{"label":"Esc", "x":0, "y":0},
|
||||||
{"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"7", "x":18.5, "y":2.5}, {"label":"8", "x":19.5, "y":2.5}, {"label":"9", "x":20.5, "y":2.5}, {"label":"+", "x":21.5, "y":2.5},
|
{"label":"F1", "x":2, "y":0},
|
||||||
{"label":"CTRL", "x":0, "y":3.5}, {"label":"Caps Lock", "x":1, "y":3.5}, {"label":"A", "x":2, "y":3.5}, {"label":"S", "x":3, "y":3.5}, {"label":"D", "x":4, "y":3.5}, {"label":"F", "x":5, "y":3.5}, {"label":"G", "x":6, "y":3.5}, {"label":"H", "x":7, "y":3.5}, {"label":"J", "x":8, "y":3.5}, {"label":"K", "x":9, "y":3.5}, {"label":"L", "x":10, "y":3.5}, {"label":":", "x":11, "y":3.5}, {"label":"\"", "x":12, "y":3.5}, {"label":"~", "x":13, "y":3.5}, {"label":"Enter", "x":14, "y":2.5, "w":1, "h":2}, {"label":"\u2191", "x":16.25, "y":3.5}, {"label":"4", "x":18.5, "y":3.5}, {"label":"5", "x":19.5, "y":3.5}, {"label":"6", "x":20.5, "y":3.5}, {"label":"+", "x":21.5, "y":3.5},
|
{"label":"F2", "x":3, "y":0},
|
||||||
{"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"|", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2190", "x":15.25, "y":4.5}, {"label":"\u2193", "x":16.25, "y":4.5}, {"label":"\u2192", "x":17.25, "y":4.5}, {"label":"1", "x":18.5, "y":4.5}, {"label":"2", "x":19.5, "y":4.5}, {"label":"3", "x":20.5, "y":4.5}, {"label":"Enter", "x":21.5, "y":4.5, "h":2},
|
{"label":"F3", "x":4, "y":0},
|
||||||
{"label":"alt", "x":1, "y":5.5, "w":1.5}, {"label":"Amiga", "x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"label":"Amiga", "x":11, "y":5.5, "w":1.5}, {"label":"Alt", "x":12.5, "y":5.5, "w":1.5}, {"label":"0", "x":18.5, "y":5.5, "w":2}, {"label":".", "x":20.5, "y":5.5}]
|
{"label":"F4", "x":5, "y":0},
|
||||||
|
{"label":"F5", "x":6, "y":0},
|
||||||
|
{"label":"F6", "x":8, "y":0},
|
||||||
|
{"label":"F7", "x":9, "y":0},
|
||||||
|
{"label":"F8", "x":10, "y":0},
|
||||||
|
{"label":"F9", "x":11, "y":0},
|
||||||
|
{"label":"F10", "x":12, "y":0},
|
||||||
|
|
||||||
|
{"label":"~", "x":0, "y":1.5},
|
||||||
|
{"label":"!", "x":1, "y":1.5},
|
||||||
|
{"label":"@", "x":2, "y":1.5},
|
||||||
|
{"label":"#", "x":3, "y":1.5},
|
||||||
|
{"label":"$", "x":4, "y":1.5},
|
||||||
|
{"label":"%", "x":5, "y":1.5},
|
||||||
|
{"label":"^", "x":6, "y":1.5},
|
||||||
|
{"label":"&", "x":7, "y":1.5},
|
||||||
|
{"label":"*", "x":8, "y":1.5},
|
||||||
|
{"label":"(", "x":9, "y":1.5},
|
||||||
|
{"label":")", "x":10, "y":1.5},
|
||||||
|
{"label":"_", "x":11, "y":1.5},
|
||||||
|
{"label":"+", "x":12, "y":1.5},
|
||||||
|
{"label":"`", "x":13, "y":1.5},
|
||||||
|
{"label":"Backspace", "x":14, "y":1.5},
|
||||||
|
{"label":"Del", "x":15.25, "y":1.5, "w":1.5},
|
||||||
|
{"label":"Help", "x":16.75, "y":1.5, "w":1.5},
|
||||||
|
{"label":"Num Lock", "x":18.5, "y":1.5},
|
||||||
|
{"label":"/", "x":19.5, "y":1.5},
|
||||||
|
{"label":"*", "x":20.5, "y":1.5},
|
||||||
|
{"label":"-", "x":21.5, "y":1.5},
|
||||||
|
|
||||||
|
{"label":"Tab", "x":0, "y":2.5, "w":1.5},
|
||||||
|
{"label":"Q", "x":1.5, "y":2.5},
|
||||||
|
{"label":"W", "x":2.5, "y":2.5},
|
||||||
|
{"label":"E", "x":3.5, "y":2.5},
|
||||||
|
{"label":"R", "x":4.5, "y":2.5},
|
||||||
|
{"label":"T", "x":5.5, "y":2.5},
|
||||||
|
{"label":"Y", "x":6.5, "y":2.5},
|
||||||
|
{"label":"U", "x":7.5, "y":2.5},
|
||||||
|
{"label":"I", "x":8.5, "y":2.5},
|
||||||
|
{"label":"O", "x":9.5, "y":2.5},
|
||||||
|
{"label":"P", "x":10.5, "y":2.5},
|
||||||
|
{"label":"{", "x":11.5, "y":2.5},
|
||||||
|
{"label":"}", "x":12.5, "y":2.5},
|
||||||
|
{"label":"7", "x":18.5, "y":2.5},
|
||||||
|
{"label":"8", "x":19.5, "y":2.5},
|
||||||
|
{"label":"9", "x":20.5, "y":2.5},
|
||||||
|
{"label":"+", "x":21.5, "y":2.5},
|
||||||
|
|
||||||
|
{"label":"CTRL", "x":0, "y":3.5},
|
||||||
|
{"label":"Caps Lock", "x":1, "y":3.5},
|
||||||
|
{"label":"A", "x":2, "y":3.5},
|
||||||
|
{"label":"S", "x":3, "y":3.5},
|
||||||
|
{"label":"D", "x":4, "y":3.5},
|
||||||
|
{"label":"F", "x":5, "y":3.5},
|
||||||
|
{"label":"G", "x":6, "y":3.5},
|
||||||
|
{"label":"H", "x":7, "y":3.5},
|
||||||
|
{"label":"J", "x":8, "y":3.5},
|
||||||
|
{"label":"K", "x":9, "y":3.5},
|
||||||
|
{"label":"L", "x":10, "y":3.5},
|
||||||
|
{"label":":", "x":11, "y":3.5},
|
||||||
|
{"label":"\"", "x":12, "y":3.5},
|
||||||
|
{"label":"~", "x":13, "y":3.5},
|
||||||
|
{"label":"Enter", "x":14, "y":2.5, "w":1, "h":2},
|
||||||
|
{"label":"\u2191", "x":16.25, "y":3.5},
|
||||||
|
{"label":"4", "x":18.5, "y":3.5},
|
||||||
|
{"label":"5", "x":19.5, "y":3.5},
|
||||||
|
{"label":"6", "x":20.5, "y":3.5},
|
||||||
|
{"label":"+", "x":21.5, "y":3.5},
|
||||||
|
|
||||||
|
{"label":"Shift", "x":0, "y":4.5, "w":1.25},
|
||||||
|
{"label":"|", "x":1.25, "y":4.5},
|
||||||
|
{"label":"Z", "x":2.25, "y":4.5},
|
||||||
|
{"label":"X", "x":3.25, "y":4.5},
|
||||||
|
{"label":"C", "x":4.25, "y":4.5},
|
||||||
|
{"label":"V", "x":5.25, "y":4.5},
|
||||||
|
{"label":"B", "x":6.25, "y":4.5},
|
||||||
|
{"label":"N", "x":7.25, "y":4.5},
|
||||||
|
{"label":"M", "x":8.25, "y":4.5},
|
||||||
|
{"label":"<", "x":9.25, "y":4.5},
|
||||||
|
{"label":">", "x":10.25, "y":4.5},
|
||||||
|
{"label":"?", "x":11.25, "y":4.5},
|
||||||
|
{"label":"Shift", "x":12.25, "y":4.5, "w":2.75},
|
||||||
|
{"label":"\u2190", "x":15.25, "y":4.5},
|
||||||
|
{"label":"\u2193", "x":16.25, "y":4.5},
|
||||||
|
{"label":"\u2192", "x":17.25, "y":4.5},
|
||||||
|
{"label":"1", "x":18.5, "y":4.5},
|
||||||
|
{"label":"2", "x":19.5, "y":4.5},
|
||||||
|
{"label":"3", "x":20.5, "y":4.5},
|
||||||
|
{"label":"Enter", "x":21.5, "y":4.5, "h":2},
|
||||||
|
|
||||||
|
{"label":"Alt", "x":1, "y":5.5, "w":1.5},
|
||||||
|
{"label":"Amiga", "x":2.5, "y":5.5, "w":1.5},
|
||||||
|
{"label":"Space", "x":4, "y":5.5, "w":7},
|
||||||
|
{"label":"Amiga", "x":11, "y":5.5, "w":1.5},
|
||||||
|
{"label":"Alt", "x":12.5, "y":5.5, "w":1.5},
|
||||||
|
{"label":"0", "x":18.5, "y":5.5, "w":2},
|
||||||
|
{"label":".", "x":20.5, "y":5.5}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -27,13 +27,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
|
|
||||||
[1] = LAYOUT(
|
[1] = LAYOUT(
|
||||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F11, KC_F12,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12,
|
||||||
|
|
||||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, KC_DEL, KC_TRNS, KC_NLCK, KC_SLCK, KC_PSLS, KC_PSCR,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NLCK, KC_SLCK, _______, KC_PSCR,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, KC_PMNS,
|
_______, _______, _______, _______, RESET,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
KC_LCTL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, KC_UP, KC_P4, KC_P5, KC_P6, KC_PPLS,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, _______, _______, _______, _______, _______,
|
||||||
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT,
|
_______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_P0, KC_PDOT
|
_______, _______, _______, _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
# Amiga 1200 Keyboard Converter
|
# Amiga 1200 Keyboard Converter
|
||||||
|
|
||||||
Modification of the Model-M 101 membrane adapter (converter/modelm101) to work with Amiga 1200 keyboard (and possibly Amiga 500/600 too). It would be very convenient to manufacture a small PCB adapter to make easier the task of connecting the keyboard membrane and the Teensy 2.0++ board.
|
Modification of the Model-M 101 membrane adapter (converter/modelm101) to work with Amiga 1200 keyboard (and possibly Amiga 500/600 too).
|
||||||
|
|
||||||
|
A small PCB adapter is needed for connecting the keyboard membrane to the Teensy 2.0++ board. A very simple example of such a board can be seen here:
|
||||||
|
https://github.com/8bits4ever/A1200-Keyboard-Adapter
|
||||||
|
|
||||||
This adapter is meant to allow using the original Amiga keyboard as a USB input device, either with a desktop PC or a R-Pi/FPGA board hosted inside the Amiga case.
|
This adapter is meant to allow using the original Amiga keyboard as a USB input device, either with a desktop PC or a R-Pi/FPGA board hosted inside the Amiga case.
|
||||||
|
|
||||||
@@ -19,8 +22,6 @@ Status LEDs: CapsLock +5V
|
|||||||
Pins: B6 5V
|
Pins: B6 5V
|
||||||
```
|
```
|
||||||
|
|
||||||
Please note that some versions of Model M have LED connected with a ribbon cable, and not with separate wires.
|
|
||||||
|
|
||||||
* Keyboard Maintainer: [8bits4ever](https://github.com/8bits4ever)
|
* Keyboard Maintainer: [8bits4ever](https://github.com/8bits4ever)
|
||||||
* Hardware Supported: Teensy 2.0++ board by PJRC
|
* Hardware Supported: Teensy 2.0++ board by PJRC
|
||||||
* Hardware Availability: https://www.pjrc.com/store/teensypp.html
|
* Hardware Availability: https://www.pjrc.com/store/teensypp.html
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
This is the c configuration file for the keymap
|
||||||
|
|
||||||
|
Copyright 2012 Jun Wako <[email protected]>
|
||||||
|
Copyright 2015 Jack Humbert
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
//#define USE_MATRIX_I2C
|
||||||
|
|
||||||
|
/* Select hand configuration */
|
||||||
|
|
||||||
|
#define MASTER_LEFT
|
||||||
|
// #define MASTER_RIGHT
|
||||||
|
// #define EE_HANDS
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define TAPPING_FORCE_HOLD
|
||||||
|
#define TAPPING_TERM 100
|
||||||
|
|
||||||
|
#undef RGBLED_NUM
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#define RGBLED_NUM 42
|
||||||
|
#define RGBLIGHT_LIMIT_VAL 120
|
||||||
|
#define RGBLIGHT_HUE_STEP 10
|
||||||
|
#define RGBLIGHT_SAT_STEP 17
|
||||||
|
#define RGBLIGHT_VAL_STEP 17
|
||||||
@@ -0,0 +1,182 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2019 @foostan
|
||||||
|
Copyright 2020 Drashna Jaelre <@drashna>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
#include "keymap_jp.h"
|
||||||
|
|
||||||
|
enum custom_layers {
|
||||||
|
_QWERTY,
|
||||||
|
_LOWER,
|
||||||
|
_RAISE,
|
||||||
|
_ADJUST,
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_QWERTY] = LAYOUT_split_3x6_3(
|
||||||
|
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||||
|
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_LCTRL, MO(1), KC_SPC, KC_ENT, MO(2), KC_RALT
|
||||||
|
//`--------------------------' `--------------------------'
|
||||||
|
|
||||||
|
),
|
||||||
|
|
||||||
|
[_LOWER] = LAYOUT_split_3x6_3(
|
||||||
|
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||||
|
KC_DELETE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, KC_7, KC_8, KC_9, JP_MINS,KC_DELETE,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_LALT, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, KC_4, KC_5, KC_6, JP_PLUS,LSFT(KC_CAPS),
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_LSFT, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_0, KC_1, KC_2, KC_3, KC_DOT, KC_RSFT,
|
||||||
|
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_LCTRL, _______, KC_SPC, KC_ENT, MO(3), KC_RALT
|
||||||
|
//`--------------------------' `--------------------------'
|
||||||
|
),
|
||||||
|
|
||||||
|
[_RAISE] = LAYOUT_split_3x6_3(
|
||||||
|
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||||
|
KC_ESC, JP_EXLM, JP_DQT, JP_HASH, KC_DLR, JP_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_MINS, JP_CIRC,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_LCTL, KC_GRV, XXXXXXX, XXXXXXX, KC_MHEN, KC_G, XXXXXXX, KC_HENK, JP_LBRC, JP_RBRC, XXXXXXX, JP_YEN,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, JP_EQL,JP_AT,LSFT(JP_LBRC),LSFT(JP_RBRC),XXXXXXX,JP_UNDS,
|
||||||
|
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_LGUI, MO(3), KC_SPC, KC_ENT, _______, KC_RALT
|
||||||
|
//`--------------------------' `--------------------------'
|
||||||
|
),
|
||||||
|
|
||||||
|
[_ADJUST] = LAYOUT_split_3x6_3(
|
||||||
|
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||||
|
KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_LCTL, KC_HOME, KC_S, XXXXXXX, KC_END, KC_G, XXXXXXX, KC_LEFT, KC_DOWN,KC_RIGHT, XXXXXXX, XXXXXXX,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_LSFT, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DOWN, XXXXXXX, XXXXXXX, KC_RSFT,
|
||||||
|
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT
|
||||||
|
//`--------------------------' `--------------------------'
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef OLED_DRIVER_ENABLE
|
||||||
|
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||||
|
if (!is_master) {
|
||||||
|
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
|
||||||
|
}
|
||||||
|
return rotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define L_BASE 0
|
||||||
|
#define L_LOWER 2
|
||||||
|
#define L_RAISE 4
|
||||||
|
#define L_ADJUST 8
|
||||||
|
|
||||||
|
void oled_render_layer_state(void) {
|
||||||
|
oled_write_P(PSTR("Layer: "), false);
|
||||||
|
switch (layer_state) {
|
||||||
|
case L_BASE:
|
||||||
|
oled_write_ln_P(PSTR("Default"), false);
|
||||||
|
break;
|
||||||
|
case L_LOWER:
|
||||||
|
oled_write_ln_P(PSTR("Lower"), false);
|
||||||
|
break;
|
||||||
|
case L_RAISE:
|
||||||
|
oled_write_ln_P(PSTR("Raise"), false);
|
||||||
|
break;
|
||||||
|
case L_ADJUST:
|
||||||
|
case L_ADJUST|L_LOWER:
|
||||||
|
case L_ADJUST|L_RAISE:
|
||||||
|
case L_ADJUST|L_LOWER|L_RAISE:
|
||||||
|
oled_write_ln_P(PSTR("Adjust"), false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
char keylog_str[24] = {};
|
||||||
|
|
||||||
|
const char code_to_name[60] = {
|
||||||
|
' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
|
||||||
|
'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
|
||||||
|
'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
|
||||||
|
'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
|
||||||
|
'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\',
|
||||||
|
'#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '};
|
||||||
|
|
||||||
|
void set_keylog(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
char name = ' ';
|
||||||
|
if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) ||
|
||||||
|
(keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; }
|
||||||
|
if (keycode < 60) {
|
||||||
|
name = code_to_name[keycode];
|
||||||
|
}
|
||||||
|
|
||||||
|
// update keylog
|
||||||
|
snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c",
|
||||||
|
record->event.key.row, record->event.key.col,
|
||||||
|
keycode, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
void oled_render_keylog(void) {
|
||||||
|
oled_write(keylog_str, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void render_bootmagic_status(bool status) {
|
||||||
|
/* Show Ctrl-Gui Swap options */
|
||||||
|
static const char PROGMEM logo[][2][3] = {
|
||||||
|
{{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
|
||||||
|
{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
|
||||||
|
};
|
||||||
|
if (status) {
|
||||||
|
oled_write_ln_P(logo[0][0], false);
|
||||||
|
oled_write_ln_P(logo[0][1], false);
|
||||||
|
} else {
|
||||||
|
oled_write_ln_P(logo[1][0], false);
|
||||||
|
oled_write_ln_P(logo[1][1], false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void oled_render_logo(void) {
|
||||||
|
static const char PROGMEM crkbd_logo[] = {
|
||||||
|
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
|
||||||
|
0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
|
||||||
|
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
|
||||||
|
0};
|
||||||
|
oled_write_P(crkbd_logo, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void oled_task_user(void) {
|
||||||
|
if (is_master) {
|
||||||
|
oled_render_layer_state();
|
||||||
|
oled_render_keylog();
|
||||||
|
} else {
|
||||||
|
oled_render_logo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
if (record->event.pressed) {
|
||||||
|
set_keylog(keycode, record);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
#endif // OLED_DRIVER_ENABLE
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change to "no" to disable the options, or define them in the Makefile in
|
||||||
|
# the appropriate keymap folder that will get included automatically
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE = no # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
MIDI_ENABLE = no # MIDI controls
|
||||||
|
AUDIO_ENABLE = no # Audio output on port C6
|
||||||
|
UNICODE_ENABLE = no # Unicode
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
|
||||||
|
SWAP_HANDS_ENABLE = no # Enable one-hand typing
|
||||||
|
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
|
||||||
|
# If you want to change the display of OLED, you need to change here
|
||||||
|
SRC += ./lib/glcdfont.c \
|
||||||
|
./lib/rgb_state_reader.c \
|
||||||
|
./lib/layer_state_reader.c \
|
||||||
|
./lib/logo_reader.c \
|
||||||
|
./lib/keylogger.c \
|
||||||
|
# ./lib/mode_icon_reader.c \
|
||||||
|
# ./lib/host_led_state_reader.c \
|
||||||
|
# ./lib/timelogger.c \
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Pierre Chevalier <[email protected]>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General 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"
|
||||||
|
|
||||||
|
#include "drivers/issi/is31fl3731.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
| Left || Right |
|
||||||
|
| | 3 | | 0 || 0 | | 3 | |
|
||||||
|
| 5 | | | || | | | 6 |
|
||||||
|
| | | | || | | | |
|
||||||
|
| | | | 1 || 1 | | | |
|
||||||
|
| | 4 | | || | | 4 | |
|
||||||
|
| 6 | | | 2 || 2 | | | 5 |
|
||||||
|
*/
|
||||||
|
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
|
||||||
|
/* Refer to IS31 manual for these locations
|
||||||
|
* driver
|
||||||
|
* | R location
|
||||||
|
* | | G location
|
||||||
|
* | | | B location
|
||||||
|
* | | | | */
|
||||||
|
{0, C9_10, C8_10, C7_10}, // Left RGB 5
|
||||||
|
{0, C9_12, C8_12, C7_12}, // Left RGB 3
|
||||||
|
{0, C9_15, C8_15, C6_14}, // Left RGB 0
|
||||||
|
{1, C1_2, C2_2, C4_3}, // Right RGB 0
|
||||||
|
{1, C1_5, C2_5, C3_5}, // Right RGB 3
|
||||||
|
{1, C1_8, C2_8, C3_8}, // Right RGB 6
|
||||||
|
{1, C1_7, C2_7, C3_7}, // Right RGB 5
|
||||||
|
{1, C1_6, C2_6, C3_6}, // Right RGB 4
|
||||||
|
{1, C1_3, C2_3, C3_3}, // Right RGB 1
|
||||||
|
{1, C1_4, C2_4, C3_4}, // Right RGB 2
|
||||||
|
{0, C9_13, C8_13, C7_13}, // Left RGB 2
|
||||||
|
{0, C9_14, C8_14, C7_14}, // Left RGB 1
|
||||||
|
{0, C9_11, C8_11, C7_11}, // Left RGB 4
|
||||||
|
{0, C9_9, C8_9, C7_9}, // Left RGB 6
|
||||||
|
};
|
||||||
|
// clang-format off
|
||||||
|
led_config_t g_led_config = {
|
||||||
|
// Key Matrix to LED Index
|
||||||
|
{
|
||||||
|
{},
|
||||||
|
}, {
|
||||||
|
// LED Index to Physical Position. The unit is roughly milimiters in the real world
|
||||||
|
// | Left || Right |
|
||||||
|
// x->| 10 | 32 | 64 || 160 | 192 | 214 |
|
||||||
|
// y |_____|_____|____||_____|_____|_____|
|
||||||
|
// 0 | | 1 | 2 || 3 | 4 | |
|
||||||
|
// 16 | 0 | | || | | 5 |
|
||||||
|
// 35 | | | 11 || 8 | | |
|
||||||
|
// 45 | | 12 | || | 7 | |
|
||||||
|
// 50 | 13 | | 10 || 9 | | 6 |
|
||||||
|
// 0 1 2 3 4 5
|
||||||
|
{10, 16}, {32, 0}, {64, 0}, {160, 0}, {192, 0}, {214, 16},
|
||||||
|
// 6 7 8 9
|
||||||
|
{214, 50}, {192, 45}, {160, 35}, {160, 50},
|
||||||
|
// 10 11 12 13
|
||||||
|
{64, 50}, {64, 35}, {32, 45}, {10, 50},
|
||||||
|
}, {
|
||||||
|
// LED Index to Flag
|
||||||
|
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Pierre Chevalier <[email protected]>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General 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
|
||||||
|
|
||||||
|
#undef PRODUCT_ID
|
||||||
|
#define PRODUCT_ID 0x0002
|
||||||
|
#undef PRODUCT
|
||||||
|
#define PRODUCT Ferris 0.2 - Bling
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* LED Drivers */
|
||||||
|
#define DRIVER_ADDR_1 0b1110100
|
||||||
|
#define DRIVER_ADDR_2 0b1110101
|
||||||
|
#define DRIVER_COUNT 2
|
||||||
|
#define DRIVER_1_LED_TOTAL 7
|
||||||
|
#define DRIVER_2_LED_TOTAL 7
|
||||||
|
#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
|
||||||
|
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
# Ferris 0.2 - Bling
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Ferris 0.2 with RGB underglow.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Pierre Chevalier](https://github.com/pierrechevalier83)
|
||||||
|
* Hardware Supported:
|
||||||
|
* Ferris 0.2 - Bling: (STM32F072 MCU on the left, MCP23017 on the right, IS31FL3731 led driver chip on each side)
|
||||||
|
* Hardware Availability: [Cuddly Keyboards](https://cuddlykeyboards.com)
|
||||||
|
|
||||||
|
Make examples for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make ferris/0_2/bling: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).
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
RGB_MATRIX_ENABLE = yes
|
||||||
|
RGB_MATRIX_DRIVER = IS31FL3731
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Pierre Chevalier <[email protected]>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General 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
|
||||||
|
|
||||||
|
#undef PRODUCT_ID
|
||||||
|
#define PRODUCT_ID 0x0003
|
||||||
|
#undef PRODUCT
|
||||||
|
#define PRODUCT Ferris 0.2 - Compact
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
# Ferris 0.2 - Compact
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
Ferris 0.2 - Compact with Kailh Choc support and Choc spacing.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Pierre Chevalier](https://github.com/pierrechevalier83)
|
||||||
|
* Hardware Supported:
|
||||||
|
* Ferris 0.2 - Compact: (STM32F072 MCU on the left, MCP23017 on the right)
|
||||||
|
* Hardware Availability: [Cuddly Keyboards](https://cuddlykeyboards.com)
|
||||||
|
|
||||||
|
Make examples for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make ferris/0_2/compact: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).
|
||||||
File renamed without changes.
@@ -21,8 +21,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define VENDOR_ID 0xC2AB
|
#define VENDOR_ID 0xC2AB
|
||||||
#define PRODUCT_ID 0x0001
|
#define PRODUCT_ID 0x0001
|
||||||
#define DEVICE_VER 0x0002
|
#define DEVICE_VER 0x0002
|
||||||
#define MANUFACTURER Pierre
|
#define MANUFACTURER Cuddly Keyboards Ltd.
|
||||||
#define PRODUCT Ferris the keeb
|
#define PRODUCT Ferris 0.2
|
||||||
|
|
||||||
/* key matrix size */
|
/* key matrix size */
|
||||||
#define MATRIX_ROWS 8
|
#define MATRIX_ROWS 8
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Pierre Chevalier <[email protected]>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General 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
|
||||||
|
|
||||||
|
#undef PRODUCT_ID
|
||||||
|
#define PRODUCT_ID 0x0005
|
||||||
|
#undef PRODUCT
|
||||||
|
#define PRODUCT Ferris 0.2 - High
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
# Ferris 0.2 - High
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
Ferris 0.2 - High with Cherry MX support.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Pierre Chevalier](https://github.com/pierrechevalier83)
|
||||||
|
* Hardware Supported:
|
||||||
|
* Ferris 0.2 - High: (STM32F072 MCU on the left, MCP23017 on the right)
|
||||||
|
* Hardware Availability: [Cuddly Keyboards](https://cuddlykeyboards.com)
|
||||||
|
|
||||||
|
Make examples for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make ferris/0_2/high: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).
|
||||||
Whitespace-only changes.
@@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Pierre Chevalier <[email protected]>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General 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
|
||||||
|
|
||||||
|
#undef PRODUCT_ID
|
||||||
|
#define PRODUCT_ID 0x0004
|
||||||
|
#undef PRODUCT
|
||||||
|
#define PRODUCT Ferris 0.2 - Mini
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# Ferris 0.2 - Mini
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
Ferris 0.2 - Mini with Kailh Choc Mini support and Choc spacing.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Pierre Chevalier](https://github.com/pierrechevalier83)
|
||||||
|
* Hardware Supported:
|
||||||
|
* Ferris 0.2 - Mini: (STM32F072 MCU on the left, MCP23017 on the right)
|
||||||
|
* Hardware Availability: [Cuddly Keyboards](https://cuddlykeyboards.com)
|
||||||
|
|
||||||
|
Make examples for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make ferris/0_2/mini: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).
|
||||||
Whitespace-only changes.
@@ -1,14 +1,13 @@
|
|||||||
# Ferris 0.2
|
# Ferris 0.2
|
||||||
|
|
||||||

|

|
||||||

|
|
||||||
|
|
||||||
An stm32f072 based split 34 keys column staggered keyboard named and decorated after the rustlang mascott. All PCB files and some thoughts on the design are available on the [project's github page](https://github.com/pierrechevalier83/ferris)
|
An STM32F072-based split 34-key column-staggered keyboard named and decorated after the Rust mascot. All PCB files and some thoughts on the design are available on the [project's github page](https://github.com/pierrechevalier83/ferris).
|
||||||
|
|
||||||
* Keyboard Maintainer: [Pierre Chevalier](https://github.com/pierrechevalier83)
|
* Keyboard Maintainer: [Pierre Chevalier](https://github.com/pierrechevalier83)
|
||||||
* Hardware Supported:
|
* Hardware Supported:
|
||||||
* Ferris 0.2: stm32f072 chip. Comes in 4 variants: bling, mini, high and compact
|
* Ferris 0.2: stm32f072 chip. Comes in 4 variants: bling, mini, high and compact
|
||||||
* Hardware Availability: Pierre Chevalier has been selling keyboard kits (see the #ferris channel in the 40% discord chat). Wider availability is on the horizon.
|
* Hardware Availability: [Cuddly Keyboards](https://cuddlykeyboards.com)
|
||||||
|
|
||||||
Make examples for this keyboard (after setting up your build environment):
|
Make examples for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
|||||||
@@ -37,3 +37,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define PERMISSIVE_HOLD
|
#define PERMISSIVE_HOLD
|
||||||
#define IGNORE_MOD_TAP_INTERRUPT
|
#define IGNORE_MOD_TAP_INTERRUPT
|
||||||
#define TAPPING_FORCE_HOLD
|
#define TAPPING_FORCE_HOLD
|
||||||
|
|
||||||
|
// Underglow configuration
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
|
#endif
|
||||||
@@ -50,8 +50,8 @@
|
|||||||
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
||||||
"KC_TRNS" , "KC_MINS" , "KC_BSLS" , "KC_GRV" , "KC_TRNS",
|
"KC_TRNS" , "KC_MINS" , "KC_BSLS" , "KC_GRV" , "KC_TRNS",
|
||||||
|
|
||||||
"KC_TRNS" , "KC_TRNS",
|
"RGB_RMOD" , "KC_TRNS",
|
||||||
"KC_TRNS" , "KC_TRNS"
|
"KC_TRNS" , "RGB_MOD"
|
||||||
],
|
],
|
||||||
["KC_TRNS" , "KC_COLN" , "KC_LT" , "KC_GT" , "KC_SCLN",
|
["KC_TRNS" , "KC_COLN" , "KC_LT" , "KC_GT" , "KC_SCLN",
|
||||||
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
||||||
|
|||||||
@@ -37,3 +37,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define PERMISSIVE_HOLD
|
#define PERMISSIVE_HOLD
|
||||||
#define IGNORE_MOD_TAP_INTERRUPT
|
#define IGNORE_MOD_TAP_INTERRUPT
|
||||||
#define TAPPING_FORCE_HOLD
|
#define TAPPING_FORCE_HOLD
|
||||||
|
|
||||||
|
// Underglow configuration
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
|
#endif
|
||||||
@@ -50,8 +50,8 @@
|
|||||||
"KC_TRNS" , "KC_HOME" , "KC_PGDN" , "KC_END" , "KC_TRNS",
|
"KC_TRNS" , "KC_HOME" , "KC_PGDN" , "KC_END" , "KC_TRNS",
|
||||||
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
||||||
|
|
||||||
"LGUI(KC_LEFT)" , "KC_TRNS",
|
"RGB_RMOD" , "KC_TRNS",
|
||||||
"KC_TRNS" , "LGUI(KC_RGHT)"
|
"KC_TRNS" , "RGB_MOD"
|
||||||
],
|
],
|
||||||
["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
||||||
"KC_TRNS" , "KC_UNDS" , "KC_PIPE" , "KC_QUOT" , "KC_TRNS",
|
"KC_TRNS" , "KC_UNDS" , "KC_PIPE" , "KC_QUOT" , "KC_TRNS",
|
||||||
|
|||||||
@@ -18,3 +18,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define DEBUG_MATRIX_SCAN_RATE
|
#define DEBUG_MATRIX_SCAN_RATE
|
||||||
|
|
||||||
|
// Underglow configuration
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
|
#endif
|
||||||
@@ -9,12 +9,16 @@ A split 34 keys column staggered keyboard named and decorated after the rustlang
|
|||||||
* Ferris 0.1 (With atmega32u4 chip. Comes in 4 variants: base, low, high and compact)
|
* Ferris 0.1 (With atmega32u4 chip. Comes in 4 variants: base, low, high and compact)
|
||||||
* Ferris 0.2 (With stm32f072 chip. Comes in 4 variants: bling, mini, high and compact)
|
* Ferris 0.2 (With stm32f072 chip. Comes in 4 variants: bling, mini, high and compact)
|
||||||
* Ferris sweep (With pro-micro. Comes in a couple of PCB edge cuts shapes, but with identical pinout)
|
* Ferris sweep (With pro-micro. Comes in a couple of PCB edge cuts shapes, but with identical pinout)
|
||||||
* Hardware Availability: Pierre Chevalier has been selling keyboard kits (see the #ferris channel in the 40% discord chat). Wider availability is on the horizon.
|
* Hardware Availability: [Cuddly Keyboards](https://cuddlykeyboards.com)
|
||||||
|
|
||||||
Make examples for this keyboard (after setting up your build environment):
|
Make examples for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
make ferris/0_1:default
|
make ferris/0_1:default
|
||||||
make ferris/0_2:default
|
make ferris/0_2:default
|
||||||
|
make ferris/0_2/bling:default
|
||||||
|
make ferris/0_2/compact:default
|
||||||
|
make ferris/0_2/mini:default
|
||||||
|
make ferris/0_2/high:default
|
||||||
make ferris/sweep:default:avrdude-split-right
|
make ferris/sweep:default:avrdude-split-right
|
||||||
|
|
||||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
See the [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).
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
/* Copyright 2021 Glorious, LLC <[email protected]>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General 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] = {
|
||||||
|
|
||||||
|
// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mute)
|
||||||
|
// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del
|
||||||
|
// Tab Q W E R T Y U I O P [ ] \ PgUp
|
||||||
|
// Caps A S D F G H J K L ; " Enter PgDn
|
||||||
|
// Sh_L Z X C V B N M , . ? Sh_R Up End
|
||||||
|
// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right
|
||||||
|
|
||||||
|
|
||||||
|
// The FN key by default maps to a momentary toggle to layer 1 to provide access to the RESET key (to put the board into bootloader mode). Without
|
||||||
|
// this mapping, you have to open the case to hit the button on the bottom of the PCB (near the USB cable attachment) while plugging in the USB
|
||||||
|
// cable to get the board into bootloader mode - definitely not fun when you're working on your QMK builds. Remove this and put it back to KC_RGUI
|
||||||
|
// if that's your preference.
|
||||||
|
//
|
||||||
|
// To put the keyboard in bootloader mode, use FN+backslash. If you accidentally put it into bootloader, you can just unplug the USB cable and
|
||||||
|
// it'll be back to normal when you plug it back in.
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_MUTE,
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_PSCR,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______,
|
||||||
|
KC_INS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, RESET, KC_RGUI, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_VOLU);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
tap_code(KC_VOLD);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
@@ -21,3 +21,17 @@ To reset the board into bootloader mode, do one of the following:
|
|||||||
* Fn+Backslash will reset the board to bootloader mode if you have flashed the default QMK keymap
|
* Fn+Backslash will reset the board to bootloader mode if you have flashed the default QMK keymap
|
||||||
|
|
||||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
See the [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).
|
||||||
|
|
||||||
|
## Case Screw Replacements
|
||||||
|
|
||||||
|
Many users report stripped case screws when disassembling the board.
|
||||||
|
|
||||||
|
The stock case screws are:
|
||||||
|
* Thread: M2
|
||||||
|
* Thread length: ~5 mm
|
||||||
|
* Head diameter: ~3.8 mm
|
||||||
|
* Head counterbore diameter: ~4.0 mm
|
||||||
|
* Head counterbore depth: ~1.9 mm
|
||||||
|
|
||||||
|
Most M2x5mm screws should fit fine, although it's best to ensure that the screw head will fit inside the counterbore.
|
||||||
|
For reference, [this hex socket head screw](https://www.mcmaster.com/91292A005/) from McMaster-Carr should fit nearly flush (head will protrude above the counterbore by ~0.1 mm).
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 s8erdude
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General 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 "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xB33F
|
||||||
|
#define PRODUCT_ID 0x58E4
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER s8erdude
|
||||||
|
#define PRODUCT gorthage_truck
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 8
|
||||||
|
#define MATRIX_COLS 9
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*
|
||||||
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define MATRIX_ROW_PINS { C6, B6, B5, B4, C7, B3, B7, D7}
|
||||||
|
#define MATRIX_COL_PINS { F0, F1, F4, F7, D6, E6, B0, B1, B2}
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL */
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
// LEFT -> RIGHT
|
||||||
|
// D5, D3, D2
|
||||||
|
#define LED_NUM_LOCK_PIN D5
|
||||||
|
#define LED_CAPS_LOCK_PIN D3
|
||||||
|
#define LED_SCROLL_LOCK_PIN D2
|
||||||
|
|
||||||
|
#define ENCODERS_PAD_A { F5 }
|
||||||
|
#define ENCODERS_PAD_B { F6 }
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/* Copyright 2021 s8erdude
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "gorthage_truck.h"
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
/* Copyright 2021 s8erdude
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "quantum.h"
|
||||||
|
|
||||||
|
/* This is a shortcut to help you visually see your layout.
|
||||||
|
*
|
||||||
|
* The first section contains all of the arguments representing the physical
|
||||||
|
* layout of the board and position of the keys.
|
||||||
|
*
|
||||||
|
* The second converts the arguments into a two-dimensional array which
|
||||||
|
* represents the switch matrix.
|
||||||
|
*/
|
||||||
|
#define LAYOUT_3u( \
|
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k40, k41, k42, k43, k44, k46, k47, k48, \
|
||||||
|
k10, k11, k12, k13, k14, k15, k16, k17, k50, k51, k52, k53, k54, k56, k57, k58, \
|
||||||
|
k20, k21, k22, k23, k24, k25, k26, k27, k60, k61, k62, k63, k64, k65, k66, k67, k68, \
|
||||||
|
k30, k31, k32, k34, k70, k71, k73, k74, k75, k76, k77, k78 \
|
||||||
|
) { \
|
||||||
|
{ k00, k01, k02, k03, k04, k05, k06, k07 }, \
|
||||||
|
{ k10, k11, k12, k13, k14, k15, k16, k17 }, \
|
||||||
|
{ k20, k21, k22, k23, k24, k25, k26, k27 }, \
|
||||||
|
{ k30, k31, k32, KC_NO, k34, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ k40, k41, k42, k43, k44, KC_NO, k46, k47, k48 }, \
|
||||||
|
{ k50, k51, k52, k53, k54, KC_NO, k56, k57, k58 }, \
|
||||||
|
{ k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \
|
||||||
|
{ k70, k71, KC_NO, k73, k74, k75, k76, k77, k78} \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_7u( \
|
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k40, k41, k42, k43, k44, k46, k47, k48, \
|
||||||
|
k10, k11, k12, k13, k14, k15, k16, k17, k50, k51, k52, k53, k54, k56, k57, k58, \
|
||||||
|
k20, k21, k22, k23, k24, k25, k26, k27, k60, k61, k62, k63, k64, k65, k66, k67, k68, \
|
||||||
|
k30, k31, k32, k37, k73, k74, k75, k76, k77, k78 \
|
||||||
|
) { \
|
||||||
|
{ k00, k01, k02, k03, k04, k05, k06, k07 }, \
|
||||||
|
{ k10, k11, k12, k13, k14, k15, k16, k17 }, \
|
||||||
|
{ k20, k21, k22, k23, k24, k25, k26, k27 }, \
|
||||||
|
{ k30, k31, k32, KC_NO, KC_NO, KC_NO, KC_NO, k37 }, \
|
||||||
|
{ k40, k41, k42, k43, k44, KC_NO, k46, k47, k48 }, \
|
||||||
|
{ k50, k51, k52, k53, k54, KC_NO, k56, k57, k58 }, \
|
||||||
|
{ k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \
|
||||||
|
{ KC_NO, KC_NO, KC_NO, k73, k74, k75, k76, k77, k78} \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_10u( \
|
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k40, k41, k42, k43, k44, k46, k47, k48, \
|
||||||
|
k10, k11, k12, k13, k14, k15, k16, k17, k50, k51, k52, k53, k54, k56, k57, k58, \
|
||||||
|
k20, k21, k22, k23, k24, k25, k26, k27, k60, k61, k62, k63, k64, k65, k66, k67, k68, \
|
||||||
|
k30, k36, k73, k74, k75, k76, k77, k78 \
|
||||||
|
) { \
|
||||||
|
{ k00, k01, k02, k03, k04, k05, k06, k07 }, \
|
||||||
|
{ k10, k11, k12, k13, k14, k15, k16, k17 }, \
|
||||||
|
{ k20, k21, k22, k23, k24, k25, k26, k27 }, \
|
||||||
|
{ k30, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k36, KC_NO }, \
|
||||||
|
{ k40, k41, k42, k43, k44, KC_NO, k46, k47, k48 }, \
|
||||||
|
{ k50, k51, k52, k53, k54, KC_NO, k56, k57, k58 }, \
|
||||||
|
{ k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \
|
||||||
|
{ KC_NO, KC_NO, KC_NO, k73, k74, k75, k76, k77, k78} \
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "gorthage_truck",
|
||||||
|
"url": "https://github.com/jpuerto96",
|
||||||
|
"maintainer": "s8erdude",
|
||||||
|
"width": 17,
|
||||||
|
"height": 4,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_3u": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"KC_TAB", "x":0, "y":0}, {"label":"KC_Q", "x":1, "y":0}, {"label":"KC_W", "x":2, "y":0}, {"label":"KC_E", "x":3, "y":0}, {"label":"KC_R", "x":4, "y":0}, {"label":"KC_T", "x":5, "y":0}, {"label":"KC_Y", "x":6, "y":0}, {"label":"KC_U", "x":7, "y":0}, {"label":"KC_I", "x":8, "y":0}, {"label":"KC_O", "x":9, "y":0}, {"label":"KC_P", "x":10, "y":0}, {"label":"KC_LBRC", "x":11, "y":0}, {"label":"KC_RBRC", "x":12, "y":0}, {"label":"KC_7", "x":15, "y":0}, {"label":"KC_8", "x":16, "y":0}, {"label":"KC_9", "x":17, "y":0},
|
||||||
|
{"label":"KC_CAPS", "x":0, "y":1}, {"label":"KC_A", "x":1, "y":1}, {"label":"KC_S", "x":2, "y":1}, {"label":"KC_D", "x":3, "y":1}, {"label":"KC_F", "x":4, "y":1}, {"label":"KC_G", "x":5, "y":1}, {"label":"KC_H", "x":6, "y":1}, {"label":"KC_J", "x":7, "y":1}, {"label":"KC_K", "x":8, "y":1}, {"label":"KC_L", "x":9, "y":1}, {"label":"KC_SCLN", "x":10, "y":1}, {"label":"KC_QUOT", "x":11, "y":1}, {"label":"KC_BSLS", "x":12, "y":1}, {"label":"KC_4", "x":15, "y":1}, {"label":"KC_5", "x":16, "y":1}, {"label":"KC_6", "x":17, "y":1},
|
||||||
|
{"label":"KC_MINS", "x":0, "y":2}, {"label":"KC_Z", "x":1, "y":2}, {"label":"KC_X", "x":2, "y":2}, {"label":"KC_C", "x":3, "y":2}, {"label":"KC_V", "x":4, "y":2}, {"label":"KC_B", "x":5, "y":2}, {"label":"KC_N", "x":6, "y":2}, {"label":"KC_M", "x":7, "y":2}, {"label":"KC_COMM", "x":8, "y":2}, {"label":"KC_DOT", "x":9, "y":2}, {"label":"KC_SLSH", "x":10, "y":2}, {"label":"KC_RSFT", "x":11, "y":2}, {"label":"KC_BSPC", "x":12, "y":2}, {"label":"KC_1", "x":15, "y":2}, {"label":"KC_2", "x":16, "y":2}, {"label":"KC_3", "x":17, "y":2},
|
||||||
|
{"label":"KC_UP", "x":13.5, "y":2.5}, {"label":"KC_0", "x":16, "y":3}, {"label":"KC_DOT", "x":17, "y":3}, {"label":"KC_LEFT", "x":12.5, "y":3.5}, {"label":"KC_DOWN", "x":13.5, "y":3.5}, {"label":"KC_RGHT", "x":14.5, "y":3.5},
|
||||||
|
{"label":"KC_LCTL", "x":0, "y":3, "w":1.25}, {"label":"KC_LALT", "x":1.25, "y":3, "w":1.25}, {"label":"KC_LGUI", "x":2.5, "y":3}, {"label":"KC_SPC", "x":3.5, "y":3, "w":3}, {"label":"KC_ENT", "x":6.5, "y":3, "w":3}, {"label":"KC_RGUI", "x":9.5, "y":3, "w":1.25}, {"label":"KC_RALT", "x":10.75, "y":3, "w":1.25}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_7u": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"KC_TAB", "x":0, "y":0}, {"label":"KC_Q", "x":1, "y":0}, {"label":"KC_W", "x":2, "y":0}, {"label":"KC_E", "x":3, "y":0}, {"label":"KC_R", "x":4, "y":0}, {"label":"KC_T", "x":5, "y":0}, {"label":"KC_Y", "x":6, "y":0}, {"label":"KC_U", "x":7, "y":0}, {"label":"KC_I", "x":8, "y":0}, {"label":"KC_O", "x":9, "y":0}, {"label":"KC_P", "x":10, "y":0}, {"label":"KC_LBRC", "x":11, "y":0}, {"label":"KC_RBRC", "x":12, "y":0}, {"label":"KC_7", "x":15, "y":0}, {"label":"KC_8", "x":16, "y":0}, {"label":"KC_9", "x":17, "y":0},
|
||||||
|
{"label":"KC_CAPS", "x":0, "y":1}, {"label":"KC_A", "x":1, "y":1}, {"label":"KC_S", "x":2, "y":1}, {"label":"KC_D", "x":3, "y":1}, {"label":"KC_F", "x":4, "y":1}, {"label":"KC_G", "x":5, "y":1}, {"label":"KC_H", "x":6, "y":1}, {"label":"KC_J", "x":7, "y":1}, {"label":"KC_K", "x":8, "y":1}, {"label":"KC_L", "x":9, "y":1}, {"label":"KC_SCLN", "x":10, "y":1}, {"label":"KC_QUOT", "x":11, "y":1}, {"label":"KC_BSLS", "x":12, "y":1}, {"label":"KC_4", "x":15, "y":1}, {"label":"KC_5", "x":16, "y":1}, {"label":"KC_6", "x":17, "y":1},
|
||||||
|
{"label":"KC_MINS", "x":0, "y":2}, {"label":"KC_Z", "x":1, "y":2}, {"label":"KC_X", "x":2, "y":2}, {"label":"KC_C", "x":3, "y":2}, {"label":"KC_V", "x":4, "y":2}, {"label":"KC_B", "x":5, "y":2}, {"label":"KC_N", "x":6, "y":2}, {"label":"KC_M", "x":7, "y":2}, {"label":"KC_COMM", "x":8, "y":2}, {"label":"KC_DOT", "x":9, "y":2}, {"label":"KC_SLSH", "x":10, "y":2}, {"label":"KC_RSFT", "x":11, "y":2}, {"label":"KC_BSPC", "x":12, "y":2}, {"label":"KC_1", "x":15, "y":2}, {"label":"KC_2", "x":16, "y":2}, {"label":"KC_3", "x":17, "y":2},
|
||||||
|
{"label":"KC_UP", "x":13.5, "y":2.5}, {"label":"KC_0", "x":16, "y":3}, {"label":"KC_DOT", "x":17, "y":3}, {"label":"KC_LEFT", "x":12.5, "y":3.5}, {"label":"KC_DOWN", "x":13.5, "y":3.5}, {"label":"KC_RGHT", "x":14.5, "y":3.5},
|
||||||
|
{"label":"KC_LCTL", "x":0, "y":3, "w":1.25}, {"label":"KC_LALT", "x":1.25, "y":3, "w":1.25}, {"label":"KC_LGUI", "x":2.5, "y":3, "w":1.25}, {"label":"KC_SPC", "x":3.75, "y":3, "w":7}, {"label":"KC_RGUI", "x":10.75, "y":3, "w":1.25}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_10u": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"KC_TAB", "x":0, "y":0}, {"label":"KC_Q", "x":1, "y":0}, {"label":"KC_W", "x":2, "y":0}, {"label":"KC_E", "x":3, "y":0}, {"label":"KC_R", "x":4, "y":0}, {"label":"KC_T", "x":5, "y":0}, {"label":"KC_Y", "x":6, "y":0}, {"label":"KC_U", "x":7, "y":0}, {"label":"KC_I", "x":8, "y":0}, {"label":"KC_O", "x":9, "y":0}, {"label":"KC_P", "x":10, "y":0}, {"label":"KC_LBRC", "x":11, "y":0}, {"label":"KC_RBRC", "x":12, "y":0}, {"label":"KC_7", "x":15, "y":0}, {"label":"KC_8", "x":16, "y":0}, {"label":"KC_9", "x":17, "y":0},
|
||||||
|
{"label":"KC_CAPS", "x":0, "y":1}, {"label":"KC_A", "x":1, "y":1}, {"label":"KC_S", "x":2, "y":1}, {"label":"KC_D", "x":3, "y":1}, {"label":"KC_F", "x":4, "y":1}, {"label":"KC_G", "x":5, "y":1}, {"label":"KC_H", "x":6, "y":1}, {"label":"KC_J", "x":7, "y":1}, {"label":"KC_K", "x":8, "y":1}, {"label":"KC_L", "x":9, "y":1}, {"label":"KC_SCLN", "x":10, "y":1}, {"label":"KC_QUOT", "x":11, "y":1}, {"label":"KC_BSLS", "x":12, "y":1}, {"label":"KC_4", "x":15, "y":1}, {"label":"KC_5", "x":16, "y":1}, {"label":"KC_6", "x":17, "y":1},
|
||||||
|
{"label":"KC_MINS", "x":0, "y":2}, {"label":"KC_Z", "x":1, "y":2}, {"label":"KC_X", "x":2, "y":2}, {"label":"KC_C", "x":3, "y":2}, {"label":"KC_V", "x":4, "y":2}, {"label":"KC_B", "x":5, "y":2}, {"label":"KC_N", "x":6, "y":2}, {"label":"KC_M", "x":7, "y":2}, {"label":"KC_COMM", "x":8, "y":2}, {"label":"KC_DOT", "x":9, "y":2}, {"label":"KC_SLSH", "x":10, "y":2}, {"label":"KC_RSFT", "x":11, "y":2}, {"label":"KC_BSPC", "x":12, "y":2}, {"label":"KC_1", "x":15, "y":2}, {"label":"KC_2", "x":16, "y":2}, {"label":"KC_3", "x":17, "y":2},
|
||||||
|
{"label":"KC_UP", "x":13.5, "y":2.5}, {"label":"KC_0", "x":16, "y":3}, {"label":"KC_DOT", "x":17, "y":3}, {"label":"KC_LEFT", "x":12.5, "y":3.5}, {"label":"KC_DOWN", "x":13.5, "y":3.5}, {"label":"KC_RGHT", "x":14.5, "y":3.5},
|
||||||
|
{"label":"KC_LCTL", "x":0, "y":3}, {"label":"KC_SPC", "x":1, "y":3, "w":10}, {"label":"KC_RGUI", "x":11, "y":3}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/* Copyright 2021 s8erdude
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
// Defines names for use in layer keycodes and the keymap
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
_FN
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/* Base */
|
||||||
|
[_BASE] = LAYOUT_10u(
|
||||||
|
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_MINUS, KC_1, KC_2, KC_3,
|
||||||
|
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_EQUAL, KC_4, KC_5, KC_6,
|
||||||
|
KC_LCAP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_ENT, KC_SLSH, KC_GRAVE, KC_UP, KC_7, KC_8, KC_9,
|
||||||
|
KC_LGUI, KC_RSFT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DOT, KC_0
|
||||||
|
)};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# The default keymap for gorthage_truck
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/* Copyright 2021 s8erdude
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
// Defines names for use in layer keycodes and the keymap
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
_FN
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/* Base */
|
||||||
|
[_BASE] = LAYOUT_7u(
|
||||||
|
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_MINUS, KC_1, KC_2, KC_3,
|
||||||
|
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_EQUAL, KC_4, KC_5, KC_6,
|
||||||
|
KC_LCAP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_ENT, KC_SLSH, KC_GRAVE, KC_UP, KC_7, KC_8, KC_9,
|
||||||
|
KC_LGUI, KC_LCTL, KC_LSFT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DOT, KC_0
|
||||||
|
)};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# The default keymap for gorthage_truck
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
/* Copyright 2021 s8erdude
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
// Defines names for use in layer keycodes and the keymap
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
_FN
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/* Base */
|
||||||
|
[_BASE] = LAYOUT_3u(
|
||||||
|
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_MINUS, KC_1, KC_2, KC_3,
|
||||||
|
KC_SLCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_EQUAL, KC_4, KC_5, KC_6,
|
||||||
|
KC_NLCK, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_ENT, KC_SLSH, KC_GRAVE, KC_UP, KC_7, KC_8, KC_9,
|
||||||
|
KC_CLCK, KC_LCTL, KC_LSFT, KC_SPC, KC_RSFT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DOT, KC_0
|
||||||
|
)};
|
||||||
|
|
||||||
|
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
if (index == 0) { /* First encoder */
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_VOLU);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_VOLD);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# The default keymap for gorthage_truck
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
# gorthage_truck
|
||||||
|
|
||||||
|
This PCB is a drop-in ortholinear replacement for the Garbage Truck keyboard case. It supports 2x3u split bars, 7u, or 10u.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [s8erdude](https://github.com/jpuerto96)
|
||||||
|
* Hardware Supported: Gorthage Truck PCB
|
||||||
|
* Hardware Availability: [Open Source PCB](https://github.com/jpuerto96/gorthage_truck)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make gorthage_truck:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make gorthage_truck: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).
|
||||||
|
|
||||||
|
To reset the board, you will want to short the pad labeled RESET1 on the back (near the MCU).
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
|
||||||
|
ENCODER_ENABLE = yes
|
||||||
@@ -0,0 +1,159 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Cian Johnston
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General 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 "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xFEED
|
||||||
|
#define PRODUCT_ID 0x0000
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER Cian Johnston
|
||||||
|
#define PRODUCT oem_ansi_fullsize
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 6
|
||||||
|
#define MATRIX_COLS 22
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*
|
||||||
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define MATRIX_ROW_PINS \
|
||||||
|
{ F5, F4, F3, F2, F1, F0 }
|
||||||
|
// R0 R1 R2 R3 R4 R5
|
||||||
|
|
||||||
|
#define MATRIX_COL_PINS \
|
||||||
|
{ C3, C2, C1, C0, E1, E0, D7, E6, D5, D4, D3, D2, D1, D0, B7, B0, B1, B2, B3, B4, B5, F6 }
|
||||||
|
// C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF CG CH CI CJ CK CL
|
||||||
|
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL */
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
|
||||||
|
*/
|
||||||
|
//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
|
||||||
|
|
||||||
|
//#define LED_NUM_LOCK_PIN B0
|
||||||
|
//#define LED_CAPS_LOCK_PIN B1
|
||||||
|
//#define LED_SCROLL_LOCK_PIN B2
|
||||||
|
//#define LED_COMPOSE_PIN B3
|
||||||
|
//#define LED_KANA_PIN B4
|
||||||
|
|
||||||
|
//#define BACKLIGHT_PIN B7
|
||||||
|
//#define BACKLIGHT_LEVELS 3
|
||||||
|
//#define BACKLIGHT_BREATHING
|
||||||
|
|
||||||
|
//#define RGB_DI_PIN E2
|
||||||
|
//#ifdef RGB_DI_PIN
|
||||||
|
//# define RGBLED_NUM 16
|
||||||
|
//# define RGBLIGHT_HUE_STEP 8
|
||||||
|
//# define RGBLIGHT_SAT_STEP 8
|
||||||
|
//# define RGBLIGHT_VAL_STEP 8
|
||||||
|
//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
|
||||||
|
//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||||
|
/*== all animations enable ==*/
|
||||||
|
//# define RGBLIGHT_ANIMATIONS
|
||||||
|
/*== or choose animations ==*/
|
||||||
|
//# define RGBLIGHT_EFFECT_BREATHING
|
||||||
|
//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||||
|
//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||||
|
//# define RGBLIGHT_EFFECT_SNAKE
|
||||||
|
//# define RGBLIGHT_EFFECT_KNIGHT
|
||||||
|
//# define RGBLIGHT_EFFECT_CHRISTMAS
|
||||||
|
//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||||
|
//# define RGBLIGHT_EFFECT_RGB_TEST
|
||||||
|
//# define RGBLIGHT_EFFECT_ALTERNATING
|
||||||
|
/*== customize breathing effect ==*/
|
||||||
|
/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
|
||||||
|
//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
|
||||||
|
/*==== use exp() and sin() ====*/
|
||||||
|
//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
|
||||||
|
//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
|
||||||
|
//#endif
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||||
|
//#define MATRIX_HAS_GHOST
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
|
||||||
|
* This is useful for the Windows task manager shortcut (ctrl+shift+esc).
|
||||||
|
*/
|
||||||
|
//#define GRAVE_ESC_CTRL_OVERRIDE
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Force NKRO
|
||||||
|
*
|
||||||
|
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||||
|
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||||
|
* makefile for this to work.)
|
||||||
|
*
|
||||||
|
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||||
|
* until the next keyboard reset.
|
||||||
|
*
|
||||||
|
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||||
|
* fully operational during normal computer usage.
|
||||||
|
*
|
||||||
|
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||||
|
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||||
|
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||||
|
* power-up.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//#define FORCE_NKRO
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Feature disable options
|
||||||
|
* These options are also useful to firmware size reduction.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* disable debug print */
|
||||||
|
//#define NO_DEBUG
|
||||||
|
|
||||||
|
/* disable print */
|
||||||
|
//#define NO_PRINT
|
||||||
|
|
||||||
|
/* disable action features */
|
||||||
|
//#define NO_ACTION_LAYER
|
||||||
|
//#define NO_ACTION_TAPPING
|
||||||
|
//#define NO_ACTION_ONESHOT
|
||||||
|
|
||||||
|
/* disable these deprecated features by default */
|
||||||
|
#define NO_ACTION_MACRO
|
||||||
|
#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
|
/* Bootmagic Lite key configuration */
|
||||||
|
//#define BOOTMAGIC_LITE_ROW 0
|
||||||
|
//#define BOOTMAGIC_LITE_COLUMN 0
|
||||||
@@ -0,0 +1,122 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "oem_ansi_fullsize",
|
||||||
|
"url": "https://github.com/johnstcn/qmk",
|
||||||
|
"maintainer": "johnstcn",
|
||||||
|
"width": 22.5,
|
||||||
|
"height": 6.25,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_fullsize_ansi": {
|
||||||
|
"layout": [
|
||||||
|
{"matrix": [0, 0], "label": "ESC", "x":0, "y":0},
|
||||||
|
{"matrix": [0, 2], "label": "F1", "x":2, "y":0},
|
||||||
|
{"matrix": [0, 3], "label": "F2", "x":3, "y":0},
|
||||||
|
{"matrix": [0, 4], "label": "F3", "x":4, "y":0},
|
||||||
|
{"matrix": [0, 5], "label": "F4", "x":5, "y":0},
|
||||||
|
{"matrix": [0, 7], "label": "F5", "x":6.5, "y":0},
|
||||||
|
{"matrix": [0, 8], "label": "F6", "x":7.5, "y":0},
|
||||||
|
{"matrix": [0, 9], "label": "F7", "x":8.5, "y":0},
|
||||||
|
{"matrix": [0, 10], "label": "F8", "x":9.5, "y":0},
|
||||||
|
{"matrix": [0, 11], "label": "F9", "x":11, "y":0},
|
||||||
|
{"matrix": [0, 12], "label": "F10", "x":12, "y":0},
|
||||||
|
{"matrix": [0, 13], "label": "F11", "x":13, "y":0},
|
||||||
|
{"matrix": [0, 14], "label": "F12", "x":14, "y":0},
|
||||||
|
{"matrix": [0, 15], "label": "PSCR", "x":15.25, "y":0},
|
||||||
|
{"matrix": [0, 16], "label": "SLCK", "x":16.25, "y":0},
|
||||||
|
{"matrix": [0, 17], "label": "PAUS", "x":17.25, "y":0},
|
||||||
|
|
||||||
|
{"matrix": [1, 0], "label": "GRV", "x":0, "y":1.25},
|
||||||
|
{"matrix": [1, 1], "label": "1", "x":1, "y":1.25},
|
||||||
|
{"matrix": [1, 2], "label": "2", "x":2, "y":1.25},
|
||||||
|
{"matrix": [1, 3], "label": "3", "x":3, "y":1.25},
|
||||||
|
{"matrix": [1, 4], "label": "4", "x":4, "y":1.25},
|
||||||
|
{"matrix": [1, 5], "label": "5", "x":5, "y":1.25},
|
||||||
|
{"matrix": [1, 6], "label": "6", "x":6, "y":1.25},
|
||||||
|
{"matrix": [1, 7], "label": "7", "x":7, "y":1.25},
|
||||||
|
{"matrix": [1, 8], "label": "8", "x":8, "y":1.25},
|
||||||
|
{"matrix": [1, 9], "label": "9", "x":9, "y":1.25},
|
||||||
|
{"matrix": [1, 10], "label": "0", "x":10, "y":1.25},
|
||||||
|
{"matrix": [1, 11], "label": "MINS", "x":11, "y":1.25},
|
||||||
|
{"matrix": [1, 12], "label": "EQL", "x":12, "y":1.25},
|
||||||
|
{"matrix": [1, 14], "label": "BSPC", "x":13, "y":1.25, "w":2},
|
||||||
|
{"matrix": [1, 15], "label": "INS", "x":15.25, "y":1.25},
|
||||||
|
{"matrix": [1, 16], "label": "HOME", "x":16.25, "y":1.25},
|
||||||
|
{"matrix": [1, 17], "label": "PGUP", "x":17.25, "y":1.25},
|
||||||
|
{"matrix": [1, 18], "label": "NLCK", "x":18.5, "y":1.25},
|
||||||
|
{"matrix": [1, 19], "label": "PSLS", "x":19.5, "y":1.25},
|
||||||
|
{"matrix": [1, 20], "label": "PAST", "x":20.5, "y":1.25},
|
||||||
|
{"matrix": [1, 21], "label": "PMNS", "x":21.5, "y":1.25},
|
||||||
|
|
||||||
|
{"matrix": [2, 0], "label": "TAB", "x":0, "y":2.25, "w":1.5},
|
||||||
|
{"matrix": [2, 2], "label": "Q", "x":1.5, "y":2.25},
|
||||||
|
{"matrix": [2, 3], "label": "W", "x":2.5, "y":2.25},
|
||||||
|
{"matrix": [2, 4], "label": "E", "x":3.5, "y":2.25},
|
||||||
|
{"matrix": [2, 5], "label": "R", "x":4.5, "y":2.25},
|
||||||
|
{"matrix": [2, 6], "label": "T", "x":5.5, "y":2.25},
|
||||||
|
{"matrix": [2, 7], "label": "Y", "x":6.5, "y":2.25},
|
||||||
|
{"matrix": [2, 8], "label": "U", "x":7.5, "y":2.25},
|
||||||
|
{"matrix": [2, 9], "label": "I", "x":8.5, "y":2.25},
|
||||||
|
{"matrix": [2, 10], "label": "O", "x":9.5, "y":2.25},
|
||||||
|
{"matrix": [2, 11], "label": "P", "x":10.5, "y":2.25},
|
||||||
|
{"matrix": [2, 12], "label": "LBRC", "x":11.5, "y":2.25},
|
||||||
|
{"matrix": [2, 13], "label": "RBRC", "x":12.5, "y":2.25},
|
||||||
|
{"matrix": [2, 14], "label": "BSLS", "x":13.5, "y":2.25, "w":1.5},
|
||||||
|
{"matrix": [2, 15], "label": "DEL", "x":15.25, "y":2.25},
|
||||||
|
{"matrix": [2, 16], "label": "END", "x":16.25, "y":2.25},
|
||||||
|
{"matrix": [2, 17], "label": "PGDN", "x":17.25, "y":2.25},
|
||||||
|
{"matrix": [2, 18], "label": "P7", "x":18.5, "y":2.25},
|
||||||
|
{"matrix": [2, 19], "label": "P8", "x":19.5, "y":2.25},
|
||||||
|
{"matrix": [2, 20], "label": "P9", "x":20.5, "y":2.25},
|
||||||
|
{"matrix": [2, 21], "label": "PPLS", "x":21.5, "y":2.25, "h": 2},
|
||||||
|
|
||||||
|
{"matrix": [3, 0], "label": "CAPS", "x":0, "y":3.25, "w":1.75},
|
||||||
|
{"matrix": [3, 2], "label": "A", "x":1.75, "y":3.25},
|
||||||
|
{"matrix": [3, 3], "label": "S", "x":2.75, "y":3.25},
|
||||||
|
{"matrix": [3, 4], "label": "D", "x":3.75, "y":3.25},
|
||||||
|
{"matrix": [3, 5], "label": "F", "x":4.75, "y":3.25},
|
||||||
|
{"matrix": [3, 6], "label": "G", "x":5.75, "y":3.25},
|
||||||
|
{"matrix": [3, 7], "label": "H", "x":6.75, "y":3.25},
|
||||||
|
{"matrix": [3, 8], "label": "J", "x":7.75, "y":3.25},
|
||||||
|
{"matrix": [3, 9], "label": "K", "x":8.75, "y":3.25},
|
||||||
|
{"matrix": [3, 10], "label": "L", "x":9.75, "y":3.25},
|
||||||
|
{"matrix": [3, 11], "label": "SCLN", "x":10.75, "y":3.25},
|
||||||
|
{"matrix": [3, 12], "label": "QUOT", "x":11.75, "y":3.25},
|
||||||
|
{"matrix": [3, 13], "label": "ENT", "x":12.75, "y":3.25, "w":2.25},
|
||||||
|
{"matrix": [3, 18], "label": "P4", "x":18.5, "y":3.25},
|
||||||
|
{"matrix": [3, 19], "label": "P5", "x":19.5, "y":3.25},
|
||||||
|
{"matrix": [3, 20], "label": "P6", "x":20.5, "y":3.25},
|
||||||
|
|
||||||
|
{"matrix": [4, 1], "label": "LSFT", "x":0, "y":4.25, "w":2.25},
|
||||||
|
{"matrix": [4, 2], "label": "Z", "x":2.25, "y":4.25},
|
||||||
|
{"matrix": [4, 3], "label": "X", "x":3.25, "y":4.25},
|
||||||
|
{"matrix": [4, 4], "label": "C", "x":4.25, "y":4.25},
|
||||||
|
{"matrix": [4, 5], "label": "V", "x":5.25, "y":4.25},
|
||||||
|
{"matrix": [4, 6], "label": "B", "x":6.25, "y":4.25},
|
||||||
|
{"matrix": [4, 7], "label": "N", "x":7.25, "y":4.25},
|
||||||
|
{"matrix": [4, 8], "label": "M", "x":8.25, "y":4.25},
|
||||||
|
{"matrix": [4, 9], "label": "COMM", "x":9.25, "y":4.25},
|
||||||
|
{"matrix": [4, 10], "label": "DOT", "x":10.25, "y":4.25},
|
||||||
|
{"matrix": [4, 11], "label": "SLSH", "x":11.25, "y":4.25},
|
||||||
|
{"matrix": [4, 13], "label": "RSFT", "x":12.25, "y":4.25, "w":2.75},
|
||||||
|
{"matrix": [4, 16], "label": "UP", "x":16.25, "y":4.25},
|
||||||
|
{"matrix": [4, 18], "label": "P1", "x":18.5, "y":4.25},
|
||||||
|
{"matrix": [4, 19], "label": "P2", "x":19.5, "y":4.25},
|
||||||
|
{"matrix": [4, 20], "label": "P3", "x":20.5, "y":4.25},
|
||||||
|
{"matrix": [4, 21], "label": "PENT", "x":21.5, "y":4.25, "h":2},
|
||||||
|
|
||||||
|
{"matrix": [5, 0], "label": "LCTL", "x":0, "y":5.25, "w":1.25},
|
||||||
|
{"matrix": [5, 1], "label": "LGUI", "x":1.25, "y":5.25, "w":1.25},
|
||||||
|
{"matrix": [5, 3], "label": "LALT", "x":2.5, "y":5.25, "w":1.25},
|
||||||
|
{"matrix": [5, 6], "label": "SPC", "x":3.75, "y":5.25, "w":6.25},
|
||||||
|
{"matrix": [5, 10], "label": "RALT", "x":10, "y":5.25, "w":1.25},
|
||||||
|
{"matrix": [5, 11], "label": "RGUI", "x":11.25, "y":5.25, "w":1.25},
|
||||||
|
{"matrix": [5, 13], "label": "MO(1)", "x":12.5, "y":5.25, "w":1.25},
|
||||||
|
{"matrix": [5, 14], "label": "RCTL", "x":13.75, "y":5.25, "w":1.25},
|
||||||
|
{"matrix": [5, 15], "label": "LEFT", "x":15.25, "y":5.25},
|
||||||
|
{"matrix": [5, 16], "label": "DOWN", "x":16.25, "y":5.25},
|
||||||
|
{"matrix": [5, 17], "label": "RGHT", "x":17.25, "y":5.25},
|
||||||
|
{"matrix": [5, 18], "label": "P0", "x":18.5, "y":5.25, "w":2},
|
||||||
|
{"matrix": [5, 20], "label": "PDOT", "x":20.5, "y":5.25}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
/* Copyright 2021 Cian Johnston
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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
|
||||||
|
|
||||||
|
// clang-format off
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_fullsize_ansi(
|
||||||
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
|
||||||
|
),
|
||||||
|
};
|
||||||
|
// clang-format on
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# The default keymap for oem_ansi_fullsize
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/* Copyright 2021 Cian Johnston
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "oem_ansi_fullsize.h"
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
/* Copyright 2021 Cian Johnston
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "quantum.h"
|
||||||
|
|
||||||
|
/* This is a shortcut to help you visually see your layout.
|
||||||
|
*
|
||||||
|
* The first section contains all of the arguments representing the physical
|
||||||
|
* layout of the board and position of the keys.
|
||||||
|
*
|
||||||
|
* The second converts the arguments into a two-dimensional array which
|
||||||
|
* represents the switch matrix.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Matrix col/row mapping
|
||||||
|
*
|
||||||
|
* 10 11 12 13 14 15 16 17 18 19 20 21
|
||||||
|
* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF CG CH CI CJ CK CL
|
||||||
|
* ┌───┐ ┌───┐┌───┐┌───┐┌───┐ ┌───┐┌───┐┌───┐┌───┐ ┌───┐┌───┐┌───┐┌───┐ ┌───┐┌───┐┌───┐
|
||||||
|
* R0 │K00│ │K02││K03││K04││K05│ │K07││K08││K09││K0A│ │K0B││K0C││K0D││K0E│ │K0F││K0G││K0H│
|
||||||
|
* └───┘ └───┘└───┘└───┘└───┘ └───┘└───┘└───┘└───┘ └───┘└───┘└───┘└───┘ └───┘└───┘└───┘
|
||||||
|
*
|
||||||
|
* ┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───────┐ ┌───┐┌───┐┌───┐ ┌───┐┌───┐┌───┐┌───┐
|
||||||
|
* R1 │K10││K11││K12││K13││K14││K15││K16││K17││K18││K19││K1A││K1B││K1C││ K1E │ │K1F││K1G││K1H│ │K1I││K1J││K1K││K1L│
|
||||||
|
* └───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───────┘ └───┘└───┘└───┘ └───┘└───┘└───┘└───┘
|
||||||
|
* ┌─────┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌─────┐ ┌───┐┌───┐┌───┐ ┌───┐┌───┐┌───┐┌───┐
|
||||||
|
* R2 │ K20 ││K22││K23││K24││K25││K26││K27││K28││K29││K2A││K2B││K2C││K2D││ K2E │ │K2F││K2G││K2H│ │K2I││K2J││K2K││ │
|
||||||
|
* └─────┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└─────┘ └───┘└───┘└───┘ └───┘└───┘└───┘│K2L│
|
||||||
|
* ┌───────┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌────────┐ ┌───┐┌───┐┌───┐│ │
|
||||||
|
* R3 │ K30 ││K32││K33││K34││K35││K36││K37││K38││K39││K3A││K3B││K3C││ K3D │ │K3I││K3J││K3K││ │
|
||||||
|
* └───────┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└────────┘ └───┘└───┘└───┘└───┘
|
||||||
|
* ┌─────────┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───────────┐ ┌───┐ ┌───┐┌───┐┌───┐┌───┐
|
||||||
|
* R4 │ K41 ││K42││K43││K44││K45││K46││K47││K48││K49││K4A││K4B││ K4D │ │K4G│ │K4I││K4J││K4K││ │
|
||||||
|
* └─────────┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───────────┘ └───┘ └───┘└───┘└───┘│K4L│
|
||||||
|
* ┌────┐┌────┐┌────┐┌──────────────────────────────┐┌────┐┌────┐┌────┐┌────┐ ┌───┐┌───┐┌───┐ ┌────────┐┌───┐│ │
|
||||||
|
* R5 │K50 ││K51 ││K53 ││ K56 ││K5A ││K5B ││K5D ││K5E │ │K5F││K5G││K5H│ │ K5I ││K5K││ │
|
||||||
|
* └────┘└────┘└────┘└──────────────────────────────┘└────┘└────┘└────┘└────┘ └───┘└───┘└───┘ └────────┘└───┘└───┘
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
// clang-format off
|
||||||
|
#define LAYOUT_fullsize_ansi( \
|
||||||
|
K00, K02, K03, K04, K05, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1L, \
|
||||||
|
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, \
|
||||||
|
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3I, K3J, K3K, \
|
||||||
|
K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4G, K4I, K4J, K4K, K4L, \
|
||||||
|
K50, K51, K53, K56, K5A, K5B, K5D, K5E, K5F, K5G, K5H, K5I, K5K \
|
||||||
|
) { \
|
||||||
|
{ K00, KC_NO, K02, K03, K04, K05, KC_NO, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, KC_NO, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1L }, \
|
||||||
|
{ K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L }, \
|
||||||
|
{ K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO, KC_NO, K3I, K3J, K3K, KC_NO }, \
|
||||||
|
{ KC_NO, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, KC_NO, K4D, KC_NO, KC_NO, K4G, KC_NO, K4I, K4J, K4K, K4L }, \
|
||||||
|
{ K50, K51, KC_NO, K53, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, KC_NO, K5D, K5E, K5F, K5G, K5H, K5I, KC_NO, K5K, KC_NO }, \
|
||||||
|
}
|
||||||
|
// clang-format on
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
# oem_ansi_fullsize
|
||||||
|
|
||||||
|

|
||||||
|
This is a basic layout for a full-sized ANSI board. It should be compatible with any 100% full-sized layout, for example [RobotDoctor's MECH-104](https://www.thingiverse.com/thing:4205065).
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Cian Johnston](https://github.com/johnstcn)
|
||||||
|
* Hardware Supported: Teensy®++ 2.0 as it has enough pins for the matrix.
|
||||||
|
* Hardware Availability: [pjrc.com](https://www.pjrc.com/store/teensypp.html)
|
||||||
|
|
||||||
|
The pin layout I used is shown below. Change it as you wish, but be sure to avoid pin D6!
|
||||||
|
|
||||||
|
```
|
||||||
|
┌──────┐
|
||||||
|
┌────┴──────┴────┐
|
||||||
|
+5V │o o│ GND
|
||||||
|
CL <== B6 │o o│ B7 ==> CE
|
||||||
|
CK <== B5 │o o│ D0 ==> CD
|
||||||
|
CJ <== B4 │o o│ D1 ==> CC
|
||||||
|
CI <== B3 │o o│ D2 ==> CB
|
||||||
|
CH <== B2 │o o│ D3 ==> CA
|
||||||
|
CG <== B1 │o o│ D4 ==> C9
|
||||||
|
CF <== B0 │o o│ D5 ==> C8
|
||||||
|
E7 │o o│ D6 ==> NOPE
|
||||||
|
C7 <== E6 │o o│ D7 ==> C6
|
||||||
|
GND │o o│ E0 ==> C5
|
||||||
|
RST │o o│ E1 ==> C4
|
||||||
|
R5 <== F0 │o o│ C0 ==> C3
|
||||||
|
R4 <== F1 │o A0 o o A4 o│ C1 ==> C2
|
||||||
|
R3 <== F2 │o A1 o o A5 o│ C2 ==> C1
|
||||||
|
R2 <== F3 │o A2 o o A6 o│ C3 ==> C0
|
||||||
|
R1 <== F4 │o A3 o o A7 o│ C4
|
||||||
|
R0 <== F5 │o o│ C5
|
||||||
|
F6 │o o│ C6
|
||||||
|
F7 │o o o o o│ C7
|
||||||
|
└────────────────┘
|
||||||
|
R G +
|
||||||
|
S N 5
|
||||||
|
T D V
|
||||||
|
```
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make handwired/oem_ansi_fullsize:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make handwired/oem_ansi_fullsize: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).
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = at90usb1286
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = halfkay
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
|
||||||
|
LAYOUTS = fullsize_ansi
|
||||||
@@ -32,6 +32,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define USB_POLLING_INTERVAL_MS 1
|
#define USB_POLLING_INTERVAL_MS 1
|
||||||
/* layer optimization */
|
/* layer optimization */
|
||||||
#define LAYER_STATE_8BIT
|
#define LAYER_STATE_8BIT
|
||||||
|
#define MAX_LAYER 2
|
||||||
|
|
||||||
|
//debug scanrate
|
||||||
|
//#define DEBUG_MATRIX_SCAN_RATE
|
||||||
|
//debug scans taking longer than one ms
|
||||||
|
//#define BENCHMARK_MATRIX
|
||||||
|
#define MATRIX_IO_DELAY 15
|
||||||
/*
|
/*
|
||||||
* Keyboard Matrix Assignments
|
* Keyboard Matrix Assignments
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values
|
|||||||
|
|
||||||
// matrix code
|
// matrix code
|
||||||
// super fast read_cols code.
|
// super fast read_cols code.
|
||||||
static matrix_row_t read_cols(void) {
|
static inline matrix_row_t read_cols(void) {
|
||||||
return (PINC & (1 << 6) ? 0 : (1UL << 0)) |
|
return (PINC & (1 << 6) ? 0 : (1UL << 0)) |
|
||||||
(PIND & (1 << 7) ? 0 : (1UL << 1)) |
|
(PIND & (1 << 7) ? 0 : (1UL << 1)) |
|
||||||
(PINE & (1 << 6) ? 0 : (1UL << 2)) |
|
(PINE & (1 << 6) ? 0 : (1UL << 2)) |
|
||||||
@@ -100,13 +100,17 @@ uint8_t matrix_scan_custom(matrix_row_t current_matrix[]) {
|
|||||||
// Set row, read cols
|
// Set row, read cols
|
||||||
for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) {
|
for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) {
|
||||||
select_row(current_row);
|
select_row(current_row);
|
||||||
asm volatile("nop");
|
matrix_output_select_delay();
|
||||||
asm volatile("nop");
|
|
||||||
matrix_row_t cols = read_cols();
|
matrix_row_t cols = read_cols();
|
||||||
changed |= (current_matrix[current_row] != cols);
|
changed |= (current_matrix[current_row] != cols);
|
||||||
current_matrix[current_row] = cols;
|
current_matrix[current_row] = cols;
|
||||||
|
|
||||||
unselect_rows();
|
unselect_rows();
|
||||||
|
//this internally calls matrix_io_delay()
|
||||||
|
matrix_output_unselect_delay();
|
||||||
}
|
}
|
||||||
|
|
||||||
return changed;
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -19,4 +19,7 @@ The brief list of speedhacks to make this keyboard blazing fast:
|
|||||||
3) Eager-per-key Debouncing algorithm (no 5ms delay before message is sent)
|
3) Eager-per-key Debouncing algorithm (no 5ms delay before message is sent)
|
||||||
4) 1000hz polling
|
4) 1000hz polling
|
||||||
|
|
||||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
See the [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).
|
||||||
@@ -25,7 +25,7 @@ SPACE_CADET_ENABLE = no # Unneeded feature.
|
|||||||
LAYOUTS = 60_ansi
|
LAYOUTS = 60_ansi
|
||||||
|
|
||||||
# special sauce for this keyboard
|
# special sauce for this keyboard
|
||||||
DEBOUNCE_TYPE = eager_pk # Debounce using eager_pk.
|
DEBOUNCE_TYPE = sym_eager_pk # Debounce using eager_pk.
|
||||||
CUSTOM_MATRIX = lite # Custom matrix that polls at 7000hz instead of a measly 2000hz.
|
CUSTOM_MATRIX = lite # Custom matrix that polls at 7000hz instead of a measly 2000hz.
|
||||||
LTO_ENABLE = yes # smaller binary
|
LTO_ENABLE = yes # smaller binary
|
||||||
SRC += matrix.c
|
SRC += matrix.c
|
||||||
|
|||||||
@@ -50,13 +50,9 @@ void matrix_scan_user(void) {
|
|||||||
|
|
||||||
last_timer = timer;
|
last_timer = timer;
|
||||||
if ((timer % 1000 == 0) && (timer != last_print_out)) {
|
if ((timer % 1000 == 0) && (timer != last_print_out)) {
|
||||||
print("Benchmark:");
|
print("Scans: ");
|
||||||
print("\n");
|
|
||||||
print_dec(timer);
|
|
||||||
print("\n");
|
|
||||||
print_dec(scans);
|
print_dec(scans);
|
||||||
print("\n");
|
print("\n");
|
||||||
print("-------");
|
|
||||||
scans = 0;
|
scans = 0;
|
||||||
last_print_out = timer;
|
last_print_out = timer;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,70 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 Quentin LEBASTARD <[email protected]>
|
||||||
|
* Copyright 2020 Anthony MARIN <[email protected]>
|
||||||
|
* Copyright 2021 Stick <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "nstickney.h"
|
||||||
|
#include "unicodemap.h"
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[BASE] = 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
|
||||||
|
//-------------------------------//
|
||||||
|
CC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, CC_QUOT,
|
||||||
|
//-------------------------------//
|
||||||
|
KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
|
||||||
|
//-------------------------------//
|
||||||
|
AC_SLSH, FC_BSLS, KC_SPC, KC_ENT, FC_MINS, AC_EQL,
|
||||||
|
//-------------------------------//
|
||||||
|
KC_LBRC, TD(LOCKS), TD(LAYERS), KC_RBRC),
|
||||||
|
|
||||||
|
[SYMB] = LAYOUT(_______, XP(IEX, SS1), X(SS2), X(SS3), XP(CUR, GBP), X(EUR), X(V14), X(V12), X(V34), XP(LSQ, LDQ), XP(RSQ, RDQ), _______,
|
||||||
|
//-------------------------------//
|
||||||
|
_______, XP(A_D, AXD), XP(A_R, ACR), XP(E_A, ECA), XP(REG, CPL), X(THR), XP(U_D, UCD), XP(U_A, UCA), XP(I_A, ICA), XP(O_A, OCA), XP(O_D, OCD), _______,
|
||||||
|
//-------------------------------//
|
||||||
|
_______, XP(A_A, ACA), XP(S_S, SEC), XP(ETH, ETC), X(EMD), _______, _______, _______, _______, XP(O_S, OCS), XP(PLC, DEG), XP(ACT, DIS),
|
||||||
|
//-------------------------------//
|
||||||
|
_______, XP(AEL, AEC), _______, XP(CPR, CNT), _______, _______, _______, _______, XP(N_T, NCT), X(MCR), XP(C_C, CCC), _______,
|
||||||
|
//-------------------------------//
|
||||||
|
X(IQM), XP(NOT, BKB), _______, _______, X(YEN), XP(MLT, DIV),
|
||||||
|
//-------------------------------//
|
||||||
|
_______, _______, _______, _______),
|
||||||
|
|
||||||
|
[NUMP] = LAYOUT(_______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______,
|
||||||
|
//-------------------------------//
|
||||||
|
_______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______,
|
||||||
|
//-------------------------------//
|
||||||
|
_______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,
|
||||||
|
//-------------------------------//
|
||||||
|
_______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______,
|
||||||
|
//-------------------------------//
|
||||||
|
_______, _______, _______, KC_PENT, _______, _______,
|
||||||
|
//-------------------------------//
|
||||||
|
_______, _______, _______, _______),
|
||||||
|
|
||||||
|
[FCTN] = LAYOUT(KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_SYSREQ,
|
||||||
|
//-------------------------------//
|
||||||
|
KC_PSCR, RGB_TOG, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_LOCK, KC_LBRC, KC_RBRC, S(KC_LBRC), S(KC_RBRC), KC_INS,
|
||||||
|
//-------------------------------//
|
||||||
|
KC_PAUS, RGB_VAI, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BRIU, KC_CLR,
|
||||||
|
//-------------------------------//
|
||||||
|
_______, KC_MPRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_MNXT, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, _______,
|
||||||
|
//-------------------------------//
|
||||||
|
RESET, _______, _______, _______, _______, RESET,
|
||||||
|
//-------------------------------//
|
||||||
|
_______, KC_F11, KC_F12, _______)};
|
||||||
@@ -47,7 +47,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define RGB_DI_PIN A3
|
#define RGB_DI_PIN A3
|
||||||
#define RGBLED_NUM 20
|
#define RGBLED_NUM 20
|
||||||
#define RGBLIGHT_ANIMATIONS
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#define RGBLIGHT_SLEEP
|
||||||
|
|
||||||
#define AUDIO_PIN A5
|
#define AUDIO_PIN A5
|
||||||
#define AUDIO_PIN_ALT A4
|
#define AUDIO_PIN_ALT A4
|
||||||
#define AUDIO_PIN_ALT_AS_NEGATIVE
|
#define AUDIO_PIN_ALT_AS_NEGATIVE
|
||||||
|
|
||||||
|
#define LED_CAPS_LOCK_PIN A6
|
||||||
|
#define LED_SCROLL_LOCK_PIN A7
|
||||||
@@ -46,4 +46,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
void matrix_scan_user(void) {
|
||||||
|
writePin(A7, layer_state_is(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
bool led_update_user(led_t led_state) {
|
||||||
|
writePin(LED_CAPS_LOCK_PIN, !led_state.caps_lock);
|
||||||
|
return false;
|
||||||
|
};
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/* Copyright 2021 kb-elmo<[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "67mk_e.h"
|
||||||
@@ -0,0 +1,105 @@
|
|||||||
|
/* Copyright 2021 kb-elmo<[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "quantum.h"
|
||||||
|
|
||||||
|
#define ____ KC_NO
|
||||||
|
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \
|
||||||
|
k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \
|
||||||
|
k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \
|
||||||
|
k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k114, \
|
||||||
|
k400, k401, k402, k406, k411, k412, k413, k414, k415 \
|
||||||
|
) { \
|
||||||
|
{ k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015 }, \
|
||||||
|
{ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115 }, \
|
||||||
|
{ k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213, ____, k215 }, \
|
||||||
|
{ k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, ____, ____ }, \
|
||||||
|
{ k400, k401, k402, ____, ____, ____, k406, ____, ____, ____, ____, k411, k412, k413, k414, k415 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_65_ansi_blocker( \
|
||||||
|
k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k015, \
|
||||||
|
k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \
|
||||||
|
k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \
|
||||||
|
k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k114, \
|
||||||
|
k400, k401, k402, k406, k411, k412, k413, k414, k415 \
|
||||||
|
) { \
|
||||||
|
{ k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, ____, k015 }, \
|
||||||
|
{ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115 }, \
|
||||||
|
{ k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213, ____, k215 }, \
|
||||||
|
{ k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, ____, ____ }, \
|
||||||
|
{ k400, k401, k402, ____, ____, ____, k406, ____, ____, ____, ____, k411, k412, k413, k414, k415 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_65_ansi_blocker_split_bs( \
|
||||||
|
k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \
|
||||||
|
k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \
|
||||||
|
k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \
|
||||||
|
k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k114, \
|
||||||
|
k400, k401, k402, k406, k411, k412, k413, k414, k415 \
|
||||||
|
) { \
|
||||||
|
{ k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015 }, \
|
||||||
|
{ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115 }, \
|
||||||
|
{ k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213, ____, k215 }, \
|
||||||
|
{ k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, ____, ____ }, \
|
||||||
|
{ k400, k401, k402, ____, ____, ____, k406, ____, ____, ____, ____, k411, k412, k413, k414, k415 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_65_ansi_blocker_tsangan( \
|
||||||
|
k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k015, \
|
||||||
|
k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \
|
||||||
|
k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \
|
||||||
|
k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k114, \
|
||||||
|
k400, k401, k402, k406, k412, k413, k414, k415 \
|
||||||
|
) { \
|
||||||
|
{ k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, ____, k015 }, \
|
||||||
|
{ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115 }, \
|
||||||
|
{ k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213, ____, k215 }, \
|
||||||
|
{ k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, ____, ____ }, \
|
||||||
|
{ k400, k401, k402, ____, ____, ____, k406, ____, ____, ____, ____, ____, k412, k413, k414, k415 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_65_iso_blocker( \
|
||||||
|
k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k015, \
|
||||||
|
k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k115, \
|
||||||
|
k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k113, k213, k215, \
|
||||||
|
k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k114, \
|
||||||
|
k400, k401, k402, k406, k411, k412, k413, k414, k415 \
|
||||||
|
) { \
|
||||||
|
{ k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, ____, k015 }, \
|
||||||
|
{ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115 }, \
|
||||||
|
{ k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213, ____, k215 }, \
|
||||||
|
{ k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, ____, ____ }, \
|
||||||
|
{ k400, k401, k402, ____, ____, ____, k406, ____, ____, ____, ____, k411, k412, k413, k414, k415 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_65_iso_blocker_split_bs( \
|
||||||
|
k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \
|
||||||
|
k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k115, \
|
||||||
|
k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k113, k213, k215, \
|
||||||
|
k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k114, \
|
||||||
|
k400, k401, k402, k406, k411, k412, k413, k414, k415 \
|
||||||
|
) { \
|
||||||
|
{ k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015 }, \
|
||||||
|
{ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115 }, \
|
||||||
|
{ k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213, ____, k215 }, \
|
||||||
|
{ k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, ____, ____ }, \
|
||||||
|
{ k400, k401, k402, ____, ____, ____, k406, ____, ____, ____, ____, k411, k412, k413, k414, k415 } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 kb-elmo<[email protected]>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General 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 "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xA68C
|
||||||
|
#define PRODUCT_ID 0xD03E
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER kb_elmo
|
||||||
|
#define PRODUCT 67mk_E
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 16
|
||||||
|
|
||||||
|
/* Keyboard Matrix Assignments */
|
||||||
|
#define MATRIX_ROW_PINS { D7, B4, D6, D5, B0 }
|
||||||
|
#define MATRIX_COL_PINS { B3, B2, B1, D4, D2, D3, C7, C6, B5, B6, F7, F6, F5, F0, F1, F4 }
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL */
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* Indicator LEDs */
|
||||||
|
#define LED_CAPS_LOCK_PIN B7
|
||||||
@@ -0,0 +1,440 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "67mk_e",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "kb-elmo",
|
||||||
|
"width": 16,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0},
|
||||||
|
{"x":14, "y":0},
|
||||||
|
{"x":15, "y":0},
|
||||||
|
{"x":0, "y":1, "w":1.5},
|
||||||
|
{"x":1.5, "y":1},
|
||||||
|
{"x":2.5, "y":1},
|
||||||
|
{"x":3.5, "y":1},
|
||||||
|
{"x":4.5, "y":1},
|
||||||
|
{"x":5.5, "y":1},
|
||||||
|
{"x":6.5, "y":1},
|
||||||
|
{"x":7.5, "y":1},
|
||||||
|
{"x":8.5, "y":1},
|
||||||
|
{"x":9.5, "y":1},
|
||||||
|
{"x":10.5, "y":1},
|
||||||
|
{"x":11.5, "y":1},
|
||||||
|
{"x":12.5, "y":1},
|
||||||
|
{"x":13.5, "y":1, "w":1.5},
|
||||||
|
{"x":15, "y":1},
|
||||||
|
{"x":0, "y":2, "w":1.75},
|
||||||
|
{"x":1.75, "y":2},
|
||||||
|
{"x":2.75, "y":2},
|
||||||
|
{"x":3.75, "y":2},
|
||||||
|
{"x":4.75, "y":2},
|
||||||
|
{"x":5.75, "y":2},
|
||||||
|
{"x":6.75, "y":2},
|
||||||
|
{"x":7.75, "y":2},
|
||||||
|
{"x":8.75, "y":2},
|
||||||
|
{"x":9.75, "y":2},
|
||||||
|
{"x":10.75, "y":2},
|
||||||
|
{"x":11.75, "y":2},
|
||||||
|
{"x":12.75, "y":2, "w":2.25},
|
||||||
|
{"x":15, "y":2},
|
||||||
|
{"x":0, "y":3, "w":1.25},
|
||||||
|
{"x":1.25, "y":3},
|
||||||
|
{"x":2.25, "y":3},
|
||||||
|
{"x":3.25, "y":3},
|
||||||
|
{"x":4.25, "y":3},
|
||||||
|
{"x":5.25, "y":3},
|
||||||
|
{"x":6.25, "y":3},
|
||||||
|
{"x":7.25, "y":3},
|
||||||
|
{"x":8.25, "y":3},
|
||||||
|
{"x":9.25, "y":3},
|
||||||
|
{"x":10.25, "y":3},
|
||||||
|
{"x":11.25, "y":3},
|
||||||
|
{"x":12.25, "y":3, "w":1.75},
|
||||||
|
{"x":14, "y":3},
|
||||||
|
{"x":15, "y":3},
|
||||||
|
{"x":0, "y":4, "w":1.25},
|
||||||
|
{"x":1.25, "y":4, "w":1.25},
|
||||||
|
{"x":2.5, "y":4, "w":1.25},
|
||||||
|
{"x":3.75, "y":4, "w":6.25},
|
||||||
|
{"x":10, "y":4, "w":1.25},
|
||||||
|
{"x":11.25, "y":4, "w":1.25},
|
||||||
|
{"x":13, "y":4},
|
||||||
|
{"x":14, "y":4},
|
||||||
|
{"x":15, "y":4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_65_ansi_blocker": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0, "w":2},
|
||||||
|
{"x":15, "y":0},
|
||||||
|
{"x":0, "y":1, "w":1.5},
|
||||||
|
{"x":1.5, "y":1},
|
||||||
|
{"x":2.5, "y":1},
|
||||||
|
{"x":3.5, "y":1},
|
||||||
|
{"x":4.5, "y":1},
|
||||||
|
{"x":5.5, "y":1},
|
||||||
|
{"x":6.5, "y":1},
|
||||||
|
{"x":7.5, "y":1},
|
||||||
|
{"x":8.5, "y":1},
|
||||||
|
{"x":9.5, "y":1},
|
||||||
|
{"x":10.5, "y":1},
|
||||||
|
{"x":11.5, "y":1},
|
||||||
|
{"x":12.5, "y":1},
|
||||||
|
{"x":13.5, "y":1, "w":1.5},
|
||||||
|
{"x":15, "y":1},
|
||||||
|
{"x":0, "y":2, "w":1.75},
|
||||||
|
{"x":1.75, "y":2},
|
||||||
|
{"x":2.75, "y":2},
|
||||||
|
{"x":3.75, "y":2},
|
||||||
|
{"x":4.75, "y":2},
|
||||||
|
{"x":5.75, "y":2},
|
||||||
|
{"x":6.75, "y":2},
|
||||||
|
{"x":7.75, "y":2},
|
||||||
|
{"x":8.75, "y":2},
|
||||||
|
{"x":9.75, "y":2},
|
||||||
|
{"x":10.75, "y":2},
|
||||||
|
{"x":11.75, "y":2},
|
||||||
|
{"x":12.75, "y":2, "w":2.25},
|
||||||
|
{"x":15, "y":2},
|
||||||
|
{"x":0, "y":3, "w":2.25},
|
||||||
|
{"x":2.25, "y":3},
|
||||||
|
{"x":3.25, "y":3},
|
||||||
|
{"x":4.25, "y":3},
|
||||||
|
{"x":5.25, "y":3},
|
||||||
|
{"x":6.25, "y":3},
|
||||||
|
{"x":7.25, "y":3},
|
||||||
|
{"x":8.25, "y":3},
|
||||||
|
{"x":9.25, "y":3},
|
||||||
|
{"x":10.25, "y":3},
|
||||||
|
{"x":11.25, "y":3},
|
||||||
|
{"x":12.25, "y":3, "w":1.75},
|
||||||
|
{"x":14, "y":3},
|
||||||
|
{"x":15, "y":3},
|
||||||
|
{"x":0, "y":4, "w":1.25},
|
||||||
|
{"x":1.25, "y":4, "w":1.25},
|
||||||
|
{"x":2.5, "y":4, "w":1.25},
|
||||||
|
{"x":3.75, "y":4, "w":6.25},
|
||||||
|
{"x":10, "y":4, "w":1.25},
|
||||||
|
{"x":11.25, "y":4, "w":1.25},
|
||||||
|
{"x":13, "y":4},
|
||||||
|
{"x":14, "y":4},
|
||||||
|
{"x":15, "y":4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_65_ansi_blocker_split_bs": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0},
|
||||||
|
{"x":14, "y":0},
|
||||||
|
{"x":15, "y":0},
|
||||||
|
{"x":0, "y":1, "w":1.5},
|
||||||
|
{"x":1.5, "y":1},
|
||||||
|
{"x":2.5, "y":1},
|
||||||
|
{"x":3.5, "y":1},
|
||||||
|
{"x":4.5, "y":1},
|
||||||
|
{"x":5.5, "y":1},
|
||||||
|
{"x":6.5, "y":1},
|
||||||
|
{"x":7.5, "y":1},
|
||||||
|
{"x":8.5, "y":1},
|
||||||
|
{"x":9.5, "y":1},
|
||||||
|
{"x":10.5, "y":1},
|
||||||
|
{"x":11.5, "y":1},
|
||||||
|
{"x":12.5, "y":1},
|
||||||
|
{"x":13.5, "y":1, "w":1.5},
|
||||||
|
{"x":15, "y":1},
|
||||||
|
{"x":0, "y":2, "w":1.75},
|
||||||
|
{"x":1.75, "y":2},
|
||||||
|
{"x":2.75, "y":2},
|
||||||
|
{"x":3.75, "y":2},
|
||||||
|
{"x":4.75, "y":2},
|
||||||
|
{"x":5.75, "y":2},
|
||||||
|
{"x":6.75, "y":2},
|
||||||
|
{"x":7.75, "y":2},
|
||||||
|
{"x":8.75, "y":2},
|
||||||
|
{"x":9.75, "y":2},
|
||||||
|
{"x":10.75, "y":2},
|
||||||
|
{"x":11.75, "y":2},
|
||||||
|
{"x":12.75, "y":2, "w":2.25},
|
||||||
|
{"x":15, "y":2},
|
||||||
|
{"x":0, "y":3, "w":2.25},
|
||||||
|
{"x":2.25, "y":3},
|
||||||
|
{"x":3.25, "y":3},
|
||||||
|
{"x":4.25, "y":3},
|
||||||
|
{"x":5.25, "y":3},
|
||||||
|
{"x":6.25, "y":3},
|
||||||
|
{"x":7.25, "y":3},
|
||||||
|
{"x":8.25, "y":3},
|
||||||
|
{"x":9.25, "y":3},
|
||||||
|
{"x":10.25, "y":3},
|
||||||
|
{"x":11.25, "y":3},
|
||||||
|
{"x":12.25, "y":3, "w":1.75},
|
||||||
|
{"x":14, "y":3},
|
||||||
|
{"x":15, "y":3},
|
||||||
|
{"x":0, "y":4, "w":1.25},
|
||||||
|
{"x":1.25, "y":4, "w":1.25},
|
||||||
|
{"x":2.5, "y":4, "w":1.25},
|
||||||
|
{"x":3.75, "y":4, "w":6.25},
|
||||||
|
{"x":10, "y":4, "w":1.25},
|
||||||
|
{"x":11.25, "y":4, "w":1.25},
|
||||||
|
{"x":13, "y":4},
|
||||||
|
{"x":14, "y":4},
|
||||||
|
{"x":15, "y":4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_65_ansi_blocker_tsangan": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0, "w":2},
|
||||||
|
{"x":15, "y":0},
|
||||||
|
{"x":0, "y":1, "w":1.5},
|
||||||
|
{"x":1.5, "y":1},
|
||||||
|
{"x":2.5, "y":1},
|
||||||
|
{"x":3.5, "y":1},
|
||||||
|
{"x":4.5, "y":1},
|
||||||
|
{"x":5.5, "y":1},
|
||||||
|
{"x":6.5, "y":1},
|
||||||
|
{"x":7.5, "y":1},
|
||||||
|
{"x":8.5, "y":1},
|
||||||
|
{"x":9.5, "y":1},
|
||||||
|
{"x":10.5, "y":1},
|
||||||
|
{"x":11.5, "y":1},
|
||||||
|
{"x":12.5, "y":1},
|
||||||
|
{"x":13.5, "y":1, "w":1.5},
|
||||||
|
{"x":15, "y":1},
|
||||||
|
{"x":0, "y":2, "w":1.75},
|
||||||
|
{"x":1.75, "y":2},
|
||||||
|
{"x":2.75, "y":2},
|
||||||
|
{"x":3.75, "y":2},
|
||||||
|
{"x":4.75, "y":2},
|
||||||
|
{"x":5.75, "y":2},
|
||||||
|
{"x":6.75, "y":2},
|
||||||
|
{"x":7.75, "y":2},
|
||||||
|
{"x":8.75, "y":2},
|
||||||
|
{"x":9.75, "y":2},
|
||||||
|
{"x":10.75, "y":2},
|
||||||
|
{"x":11.75, "y":2},
|
||||||
|
{"x":12.75, "y":2, "w":2.25},
|
||||||
|
{"x":15, "y":2},
|
||||||
|
{"x":0, "y":3, "w":2.25},
|
||||||
|
{"x":2.25, "y":3},
|
||||||
|
{"x":3.25, "y":3},
|
||||||
|
{"x":4.25, "y":3},
|
||||||
|
{"x":5.25, "y":3},
|
||||||
|
{"x":6.25, "y":3},
|
||||||
|
{"x":7.25, "y":3},
|
||||||
|
{"x":8.25, "y":3},
|
||||||
|
{"x":9.25, "y":3},
|
||||||
|
{"x":10.25, "y":3},
|
||||||
|
{"x":11.25, "y":3},
|
||||||
|
{"x":12.25, "y":3, "w":1.75},
|
||||||
|
{"x":14, "y":3},
|
||||||
|
{"x":15, "y":3},
|
||||||
|
{"x":0, "y":4, "w":1.5},
|
||||||
|
{"x":1.5, "y":4},
|
||||||
|
{"x":2.5, "y":4, "w":1.5},
|
||||||
|
{"x":4, "y":4, "w":7},
|
||||||
|
{"x":11, "y":4, "w":1.5},
|
||||||
|
{"x":13, "y":4},
|
||||||
|
{"x":14, "y":4},
|
||||||
|
{"x":15, "y":4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_65_iso_blocker": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0, "w":2},
|
||||||
|
{"x":15, "y":0},
|
||||||
|
{"x":0, "y":1, "w":1.5},
|
||||||
|
{"x":1.5, "y":1},
|
||||||
|
{"x":2.5, "y":1},
|
||||||
|
{"x":3.5, "y":1},
|
||||||
|
{"x":4.5, "y":1},
|
||||||
|
{"x":5.5, "y":1},
|
||||||
|
{"x":6.5, "y":1},
|
||||||
|
{"x":7.5, "y":1},
|
||||||
|
{"x":8.5, "y":1},
|
||||||
|
{"x":9.5, "y":1},
|
||||||
|
{"x":10.5, "y":1},
|
||||||
|
{"x":11.5, "y":1},
|
||||||
|
{"x":12.5, "y":1},
|
||||||
|
{"x":15, "y":1},
|
||||||
|
{"x":0, "y":2, "w":1.75},
|
||||||
|
{"x":1.75, "y":2},
|
||||||
|
{"x":2.75, "y":2},
|
||||||
|
{"x":3.75, "y":2},
|
||||||
|
{"x":4.75, "y":2},
|
||||||
|
{"x":5.75, "y":2},
|
||||||
|
{"x":6.75, "y":2},
|
||||||
|
{"x":7.75, "y":2},
|
||||||
|
{"x":8.75, "y":2},
|
||||||
|
{"x":9.75, "y":2},
|
||||||
|
{"x":10.75, "y":2},
|
||||||
|
{"x":11.75, "y":2},
|
||||||
|
{"x":12.75, "y":2},
|
||||||
|
{"x":13.75, "y":1, "w":1.25, "h":2},
|
||||||
|
{"x":15, "y":2},
|
||||||
|
{"x":0, "y":3, "w":1.25},
|
||||||
|
{"x":1.25, "y":3},
|
||||||
|
{"x":2.25, "y":3},
|
||||||
|
{"x":3.25, "y":3},
|
||||||
|
{"x":4.25, "y":3},
|
||||||
|
{"x":5.25, "y":3},
|
||||||
|
{"x":6.25, "y":3},
|
||||||
|
{"x":7.25, "y":3},
|
||||||
|
{"x":8.25, "y":3},
|
||||||
|
{"x":9.25, "y":3},
|
||||||
|
{"x":10.25, "y":3},
|
||||||
|
{"x":11.25, "y":3},
|
||||||
|
{"x":12.25, "y":3, "w":1.75},
|
||||||
|
{"x":14, "y":3},
|
||||||
|
{"x":15, "y":3},
|
||||||
|
{"x":0, "y":4, "w":1.25},
|
||||||
|
{"x":1.25, "y":4, "w":1.25},
|
||||||
|
{"x":2.5, "y":4, "w":1.25},
|
||||||
|
{"x":3.75, "y":4, "w":6.25},
|
||||||
|
{"x":10, "y":4, "w":1.25},
|
||||||
|
{"x":11.25, "y":4, "w":1.25},
|
||||||
|
{"x":13, "y":4},
|
||||||
|
{"x":14, "y":4},
|
||||||
|
{"x":15, "y":4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_65_iso_blocker_split_bs": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0},
|
||||||
|
{"x":14, "y":0},
|
||||||
|
{"x":15, "y":0},
|
||||||
|
{"x":0, "y":1, "w":1.5},
|
||||||
|
{"x":1.5, "y":1},
|
||||||
|
{"x":2.5, "y":1},
|
||||||
|
{"x":3.5, "y":1},
|
||||||
|
{"x":4.5, "y":1},
|
||||||
|
{"x":5.5, "y":1},
|
||||||
|
{"x":6.5, "y":1},
|
||||||
|
{"x":7.5, "y":1},
|
||||||
|
{"x":8.5, "y":1},
|
||||||
|
{"x":9.5, "y":1},
|
||||||
|
{"x":10.5, "y":1},
|
||||||
|
{"x":11.5, "y":1},
|
||||||
|
{"x":12.5, "y":1},
|
||||||
|
{"x":15, "y":1},
|
||||||
|
{"x":0, "y":2, "w":1.75},
|
||||||
|
{"x":1.75, "y":2},
|
||||||
|
{"x":2.75, "y":2},
|
||||||
|
{"x":3.75, "y":2},
|
||||||
|
{"x":4.75, "y":2},
|
||||||
|
{"x":5.75, "y":2},
|
||||||
|
{"x":6.75, "y":2},
|
||||||
|
{"x":7.75, "y":2},
|
||||||
|
{"x":8.75, "y":2},
|
||||||
|
{"x":9.75, "y":2},
|
||||||
|
{"x":10.75, "y":2},
|
||||||
|
{"x":11.75, "y":2},
|
||||||
|
{"x":12.75, "y":2},
|
||||||
|
{"x":13.75, "y":1, "w":1.25, "h":2},
|
||||||
|
{"x":15, "y":2},
|
||||||
|
{"x":0, "y":3, "w":1.25},
|
||||||
|
{"x":1.25, "y":3},
|
||||||
|
{"x":2.25, "y":3},
|
||||||
|
{"x":3.25, "y":3},
|
||||||
|
{"x":4.25, "y":3},
|
||||||
|
{"x":5.25, "y":3},
|
||||||
|
{"x":6.25, "y":3},
|
||||||
|
{"x":7.25, "y":3},
|
||||||
|
{"x":8.25, "y":3},
|
||||||
|
{"x":9.25, "y":3},
|
||||||
|
{"x":10.25, "y":3},
|
||||||
|
{"x":11.25, "y":3},
|
||||||
|
{"x":12.25, "y":3, "w":1.75},
|
||||||
|
{"x":14, "y":3},
|
||||||
|
{"x":15, "y":3},
|
||||||
|
{"x":0, "y":4, "w":1.25},
|
||||||
|
{"x":1.25, "y":4, "w":1.25},
|
||||||
|
{"x":2.5, "y":4, "w":1.25},
|
||||||
|
{"x":3.75, "y":4, "w":6.25},
|
||||||
|
{"x":10, "y":4, "w":1.25},
|
||||||
|
{"x":11.25, "y":4, "w":1.25},
|
||||||
|
{"x":13, "y":4},
|
||||||
|
{"x":14, "y":4},
|
||||||
|
{"x":15, "y":4}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
/* Copyright 2021 kb-elmo<[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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_65_ansi_blocker(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT_65_ansi_blocker(
|
||||||
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
/* Copyright 2021 kb-elmo<[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_DEL,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
|
||||||
|
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT_all(
|
||||||
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
[2] = LAYOUT_all(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
[3] = LAYOUT_all(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
)
|
||||||
|
};
|
||||||
File renamed without changes.
@@ -0,0 +1,21 @@
|
|||||||
|
# 67mk_E
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
A simple "no frills" drop-in replacement PCB for the KBDfans 67mkII / 67lite
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo)
|
||||||
|
* Hardware Supported: 67mk_E rev.1 PCB
|
||||||
|
* Hardware Availability: [Open source project](https://github.com/kb-elmo/67mk_e)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make kb_elmo/67mk_e:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make kb_elmo/67mk_e:default:flash
|
||||||
|
|
||||||
|
**Bootloader:** Press the physical reset button on the bottom side of the PCB (labeled Reset) or hold down the top left key while plugging in the board.
|
||||||
|
|
||||||
|
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).
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
|
||||||
|
LAYOUTS = 65_ansi_blocker 65_ansi_blocker_split_bs 65_ansi_blocker_tsangan 65_iso_blocker 65_iso_blocker_split_bs
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
/* Copyright 2021 Pascal Pfeil
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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
|
||||||
|
|
||||||
|
/* 1000Hz USB polling */
|
||||||
|
#define USB_POLLING_INTERVAL_MS 1
|
||||||
|
|
||||||
|
/* Send up to 4 key press events per scan */
|
||||||
|
#define QMK_KEYS_PER_SCAN 4
|
||||||
|
|
||||||
|
/* Force NKRO on boot up */
|
||||||
|
#define FORCE_NKRO
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
|
||||||
|
#undef RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||||
|
#define RGB_DISABLE_WHEN_USB_SUSPENDED true
|
||||||
|
|
||||||
|
#undef RGB_DISABLE_TIMEOUT
|
||||||
|
#define RGB_DISABLE_TIMEOUT 900000
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
/* Copyright 2021 Pascal Pfeil
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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_65_ansi_blocker(
|
||||||
|
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLASH, KC_DEL,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, LT(1, KC_SPC), KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT_65_ansi_blocker(
|
||||||
|
KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, BS_NORM, RGB_VAI,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BS_SWAP, 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, RGB_TOG, RGB_SPI,
|
||||||
|
KC_TRNS, 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_MOD,
|
||||||
|
KC_TRNS, AG_NORM, AG_SWAP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
[2] = LAYOUT_65_ansi_blocker(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_65_ansi_blocker(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
};
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
|
LTO_ENABLE = yes
|
||||||
@@ -1,119 +1,17 @@
|
|||||||
#include "mkiirgb.h"
|
/* Copyright 2021 DZTECH <[email protected]>
|
||||||
#ifdef RGB_MATRIX_ENABLE
|
*
|
||||||
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
{0, C8_8, C7_8, C6_8}, // LA17
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
{0, C9_8, C7_7, C6_7}, // LA16
|
* (at your option) any later version.
|
||||||
{0, C9_7, C8_7, C6_6}, // LA15
|
*
|
||||||
{0, C9_6, C8_6, C7_6}, // LA14
|
* This program is distributed in the hope that it will be useful,
|
||||||
{0, C9_5, C8_5, C7_5}, // LA13
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
{0, C9_4, C8_4, C7_4}, // LA12
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
{0, C9_3, C8_3, C7_3}, // LA11
|
* GNU General Public License for more details.
|
||||||
{0, C9_2, C8_2, C7_2}, // LA10
|
*
|
||||||
{0, C9_1, C8_1, C7_1}, // LA9
|
* You should have received a copy of the GNU General Public License
|
||||||
{0, C2_9, C3_9, C4_9}, // LB0
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
{0, C1_9, C3_10, C4_10}, // LB1
|
*/
|
||||||
{0, C1_10, C2_10, C4_11}, // LB2
|
|
||||||
{0, C1_11, C2_11, C3_11}, // LB3
|
#include "mkiirgb.h"
|
||||||
{0, C1_13, C2_13, C3_13}, // LB5
|
|
||||||
{0, C1_14, C2_14, C3_14}, // LB6
|
|
||||||
|
|
||||||
{0, C1_7, C2_7, C3_7}, // LA7
|
|
||||||
{0, C1_6, C2_6, C3_6}, // LA6
|
|
||||||
{0, C1_5, C2_5, C3_5}, // LA5
|
|
||||||
{0, C1_4, C2_4, C3_4}, // LA4
|
|
||||||
{0, C1_3, C2_3, C3_3}, // LA3
|
|
||||||
{0, C1_2, C2_2, C4_3}, // LA2
|
|
||||||
{0, C1_1, C3_2, C4_2}, // LA1
|
|
||||||
{0, C2_1, C3_1, C4_1}, // LA0
|
|
||||||
{0, C9_9, C8_9, C7_9}, // LB9
|
|
||||||
{0, C9_10, C8_10, C7_10}, // LB10
|
|
||||||
{0, C9_11, C8_11, C7_11}, // LB11
|
|
||||||
{0, C9_12, C8_12, C7_12}, // LB12
|
|
||||||
{0, C9_13, C8_13, C7_13}, // LB13
|
|
||||||
{0, C9_14, C8_14, C7_14}, // LB14
|
|
||||||
{0, C1_15, C2_15, C3_15}, // LB7
|
|
||||||
|
|
||||||
{0, C1_8, C2_8, C3_8}, // LA8
|
|
||||||
{1, C9_6, C8_6, C7_6}, // LC14
|
|
||||||
{1, C9_5, C8_5, C7_5}, // LC13
|
|
||||||
{1, C9_4, C8_4, C7_4}, // LC12
|
|
||||||
{1, C9_3, C8_3, C7_3}, // LC11
|
|
||||||
{1, C9_2, C8_2, C7_2}, // LC10
|
|
||||||
{1, C9_1, C8_1, C7_1}, // LC9
|
|
||||||
{1, C2_9, C3_9, C4_9}, // LD0
|
|
||||||
{1, C1_9, C3_10, C4_10}, // LD1
|
|
||||||
{1, C1_10, C2_10, C4_11}, // LD2
|
|
||||||
{1, C1_11, C2_11, C3_11}, // LD3
|
|
||||||
{1, C1_12, C2_12, C3_12}, // LD4
|
|
||||||
{1, C1_13, C2_13, C3_13}, // LD5
|
|
||||||
{0, C1_16, C2_16, C3_16}, // LB8
|
|
||||||
|
|
||||||
{1, C9_8, C7_7, C6_7}, // LC16
|
|
||||||
{1, C1_5, C2_5, C3_5}, // LC5
|
|
||||||
{1, C1_4, C2_4, C3_4}, // LC4
|
|
||||||
{1, C1_3, C2_3, C3_3}, // LC3
|
|
||||||
{1, C1_2, C2_2, C4_3}, // LC2
|
|
||||||
{1, C1_1, C3_2, C4_2}, // LC1
|
|
||||||
{1, C9_9, C8_9, C7_9}, // LD9
|
|
||||||
{1, C9_10, C8_10, C7_10}, // LD10
|
|
||||||
{1, C9_11, C8_11, C7_11}, // LD11
|
|
||||||
{1, C9_12, C8_12, C7_12}, // LD12
|
|
||||||
{1, C1_14, C2_14, C3_14}, // LD6
|
|
||||||
{1, C1_15, C2_15, C3_15}, // LD7
|
|
||||||
{1, C1_16, C2_16, C3_16}, // LD8
|
|
||||||
{0, C9_15, C8_15, C6_14}, // LB15
|
|
||||||
|
|
||||||
{1, C8_8, C7_8, C6_8}, // LC17
|
|
||||||
{1, C1_8, C2_8, C3_8}, // LC8
|
|
||||||
{1, C1_7, C2_7, C3_7}, // LC7
|
|
||||||
{1, C2_1, C3_1, C4_1}, // LC0
|
|
||||||
{1, C9_14, C8_14, C7_14}, // LD14
|
|
||||||
{1, C9_15, C8_15, C6_14}, // LD15
|
|
||||||
{1, C8_16, C7_16, C6_16}, // LD17
|
|
||||||
{0, C8_16, C7_16, C6_16}, // LB17
|
|
||||||
{0, C9_16, C7_15, C6_15}, // LB16
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
led_config_t g_led_config = { {
|
|
||||||
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
|
|
||||||
{ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
|
|
||||||
{ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 },
|
|
||||||
{ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED,56, 57 },
|
|
||||||
{ 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, NO_LED, 63, 64, NO_LED, 65, 66 }
|
|
||||||
}, {
|
|
||||||
{0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0},
|
|
||||||
{4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16},
|
|
||||||
{6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32},
|
|
||||||
{9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48},
|
|
||||||
{2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64}
|
|
||||||
}, {
|
|
||||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
|
||||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
|
||||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
|
||||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
|
||||||
1, 1, 1, 4, 1, 1, 1, 1, 1
|
|
||||||
} };
|
|
||||||
|
|
||||||
void suspend_power_down_kb(void)
|
|
||||||
{
|
|
||||||
rgb_matrix_set_suspend_state(true);
|
|
||||||
suspend_power_down_user();
|
|
||||||
}
|
|
||||||
|
|
||||||
void suspend_wakeup_init_kb(void)
|
|
||||||
{
|
|
||||||
rgb_matrix_set_suspend_state(false);
|
|
||||||
suspend_wakeup_init_user();
|
|
||||||
}
|
|
||||||
|
|
||||||
__attribute__ ((weak))
|
|
||||||
void rgb_matrix_indicators_user(void)
|
|
||||||
{
|
|
||||||
if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK))
|
|
||||||
{
|
|
||||||
rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
@@ -1,16 +1,26 @@
|
|||||||
|
/* Copyright 2021 DZTECH <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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
|
#pragma once
|
||||||
#define XXX KC_NO
|
|
||||||
|
#if defined(KEYBOARD_kbdfans_kbd67_mkiirgb_v1)
|
||||||
|
#include "v1.h"
|
||||||
|
#elif defined(KEYBOARD_kbdfans_kbd67_mkiirgb_v2)
|
||||||
|
#include "v2.h"
|
||||||
|
#elif defined(KEYBOARD_kbdfans_kbd67_mkiirgb_v3)
|
||||||
|
#include "v3.h"
|
||||||
|
#endif
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
#define LAYOUT_65_ansi_blocker( \
|
|
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
|
||||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
|
||||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
|
|
||||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
|
|
||||||
K40, K41, K42, K45, K48, K4A, K4B, K4D, K4E \
|
|
||||||
) { \
|
|
||||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
|
||||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
|
||||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \
|
|
||||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E }, \
|
|
||||||
{ K40, K41, K42, XXX, XXX, K45, XXX, XXX, K48, XXX, K4A, K4B, XXX, K4D, K4E } \
|
|
||||||
}
|
|
||||||
@@ -3,17 +3,19 @@
|
|||||||
A customizable 65% RGB keyboard.
|
A customizable 65% RGB keyboard.
|
||||||
|
|
||||||
* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681)
|
* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681)
|
||||||
* Hardware Supported: KBD67 Mk.II RGB V1 and V2
|
* Hardware Supported: KBD67 Mk.II RGB V1, V2, and V3
|
||||||
* Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/)
|
* Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/)
|
||||||
|
|
||||||
There are two versions of the KBD67 MKII RGB. Please use the appropriate firmware for your board.
|
There are three versions of the KBD67 MKII RGB. Please use the appropriate firmware for your board.
|
||||||
|
|
||||||
* V1: STM32F303 (Arm), takes `.bin` files
|
* V1: STM32F303 (Arm), takes `.bin` files
|
||||||
* V2: ATmega32U4 (AVR), takes `.hex` files
|
* V2: ATmega32U4 (AVR), takes `.hex` files
|
||||||
|
* V3: Atmega32U4 (AVR), takes `.bin` files
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
make kbdfans/kbd67/mkiirgb/v1:default # Arm (STM32F303)
|
make kbdfans/kbd67/mkiirgb/v1:default # Arm (STM32F303)
|
||||||
make kbdfans/kbd67/mkiirgb/v2:default # AVR (ATmega32U4)
|
make kbdfans/kbd67/mkiirgb/v2:default # AVR (ATmega32U4)
|
||||||
|
make kbdfans/kbd67/mkiirgb/v3:default # AVR (ATmega32U4)
|
||||||
|
|
||||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
See the [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).
|
||||||
@@ -0,0 +1,124 @@
|
|||||||
|
/* Copyright 2021 DZTECH <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "v1.h"
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
|
||||||
|
|
||||||
|
{0, C8_8, C7_8, C6_8}, // LA17
|
||||||
|
{0, C9_8, C7_7, C6_7}, // LA16
|
||||||
|
{0, C9_7, C8_7, C6_6}, // LA15
|
||||||
|
{0, C9_6, C8_6, C7_6}, // LA14
|
||||||
|
{0, C9_5, C8_5, C7_5}, // LA13
|
||||||
|
{0, C9_4, C8_4, C7_4}, // LA12
|
||||||
|
{0, C9_3, C8_3, C7_3}, // LA11
|
||||||
|
{0, C9_2, C8_2, C7_2}, // LA10
|
||||||
|
{0, C9_1, C8_1, C7_1}, // LA9
|
||||||
|
{0, C2_9, C3_9, C4_9}, // LB0
|
||||||
|
{0, C1_9, C3_10, C4_10}, // LB1
|
||||||
|
{0, C1_10, C2_10, C4_11}, // LB2
|
||||||
|
{0, C1_11, C2_11, C3_11}, // LB3
|
||||||
|
{0, C1_13, C2_13, C3_13}, // LB5
|
||||||
|
{0, C1_14, C2_14, C3_14}, // LB6
|
||||||
|
|
||||||
|
{0, C1_7, C2_7, C3_7}, // LA7
|
||||||
|
{0, C1_6, C2_6, C3_6}, // LA6
|
||||||
|
{0, C1_5, C2_5, C3_5}, // LA5
|
||||||
|
{0, C1_4, C2_4, C3_4}, // LA4
|
||||||
|
{0, C1_3, C2_3, C3_3}, // LA3
|
||||||
|
{0, C1_2, C2_2, C4_3}, // LA2
|
||||||
|
{0, C1_1, C3_2, C4_2}, // LA1
|
||||||
|
{0, C2_1, C3_1, C4_1}, // LA0
|
||||||
|
{0, C9_9, C8_9, C7_9}, // LB9
|
||||||
|
{0, C9_10, C8_10, C7_10}, // LB10
|
||||||
|
{0, C9_11, C8_11, C7_11}, // LB11
|
||||||
|
{0, C9_12, C8_12, C7_12}, // LB12
|
||||||
|
{0, C9_13, C8_13, C7_13}, // LB13
|
||||||
|
{0, C9_14, C8_14, C7_14}, // LB14
|
||||||
|
{0, C1_15, C2_15, C3_15}, // LB7
|
||||||
|
|
||||||
|
{0, C1_8, C2_8, C3_8}, // LA8
|
||||||
|
{1, C9_6, C8_6, C7_6}, // LC14
|
||||||
|
{1, C9_5, C8_5, C7_5}, // LC13
|
||||||
|
{1, C9_4, C8_4, C7_4}, // LC12
|
||||||
|
{1, C9_3, C8_3, C7_3}, // LC11
|
||||||
|
{1, C9_2, C8_2, C7_2}, // LC10
|
||||||
|
{1, C9_1, C8_1, C7_1}, // LC9
|
||||||
|
{1, C2_9, C3_9, C4_9}, // LD0
|
||||||
|
{1, C1_9, C3_10, C4_10}, // LD1
|
||||||
|
{1, C1_10, C2_10, C4_11}, // LD2
|
||||||
|
{1, C1_11, C2_11, C3_11}, // LD3
|
||||||
|
{1, C1_12, C2_12, C3_12}, // LD4
|
||||||
|
{1, C1_13, C2_13, C3_13}, // LD5
|
||||||
|
{0, C1_16, C2_16, C3_16}, // LB8
|
||||||
|
|
||||||
|
{1, C9_8, C7_7, C6_7}, // LC16
|
||||||
|
{1, C1_5, C2_5, C3_5}, // LC5
|
||||||
|
{1, C1_4, C2_4, C3_4}, // LC4
|
||||||
|
{1, C1_3, C2_3, C3_3}, // LC3
|
||||||
|
{1, C1_2, C2_2, C4_3}, // LC2
|
||||||
|
{1, C1_1, C3_2, C4_2}, // LC1
|
||||||
|
{1, C9_9, C8_9, C7_9}, // LD9
|
||||||
|
{1, C9_10, C8_10, C7_10}, // LD10
|
||||||
|
{1, C9_11, C8_11, C7_11}, // LD11
|
||||||
|
{1, C9_12, C8_12, C7_12}, // LD12
|
||||||
|
{1, C1_14, C2_14, C3_14}, // LD6
|
||||||
|
{1, C1_15, C2_15, C3_15}, // LD7
|
||||||
|
{1, C1_16, C2_16, C3_16}, // LD8
|
||||||
|
{0, C9_15, C8_15, C6_14}, // LB15
|
||||||
|
|
||||||
|
{1, C8_8, C7_8, C6_8}, // LC17
|
||||||
|
{1, C1_8, C2_8, C3_8}, // LC8
|
||||||
|
{1, C1_7, C2_7, C3_7}, // LC7
|
||||||
|
{1, C2_1, C3_1, C4_1}, // LC0
|
||||||
|
{1, C9_14, C8_14, C7_14}, // LD14
|
||||||
|
{1, C9_15, C8_15, C6_14}, // LD15
|
||||||
|
{1, C8_16, C7_16, C6_16}, // LD17
|
||||||
|
{0, C8_16, C7_16, C6_16}, // LB17
|
||||||
|
{0, C9_16, C7_15, C6_15}, // LB16
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
led_config_t g_led_config = { {
|
||||||
|
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
|
||||||
|
{ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
|
||||||
|
{ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 },
|
||||||
|
{ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED,56, 57 },
|
||||||
|
{ 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, NO_LED, 63, 64, NO_LED, 65, 66 }
|
||||||
|
}, {
|
||||||
|
{0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0},
|
||||||
|
{4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16},
|
||||||
|
{6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32},
|
||||||
|
{9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48},
|
||||||
|
{2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64}
|
||||||
|
}, {
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
1, 1, 1, 4, 1, 1, 1, 1, 1
|
||||||
|
} };
|
||||||
|
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
|
void rgb_matrix_indicators_user(void)
|
||||||
|
{
|
||||||
|
if (host_keyboard_led_state().caps_lock)
|
||||||
|
{
|
||||||
|
rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
/* Copyright 2021 DZTECH <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 XXX KC_NO
|
||||||
|
#include "quantum.h"
|
||||||
|
#define LAYOUT_65_ansi_blocker( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
|
||||||
|
K40, K41, K42, K45, K48, K4A, K4B, K4D, K4E \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E }, \
|
||||||
|
{ K40, K41, K42, XXX, XXX, K45, XXX, XXX, K48, XXX, K4A, K4B, XXX, K4D, K4E } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,124 @@
|
|||||||
|
/* Copyright 2021 DZTECH <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "v2.h"
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
|
||||||
|
|
||||||
|
{0, C8_8, C7_8, C6_8}, // LA17
|
||||||
|
{0, C9_8, C7_7, C6_7}, // LA16
|
||||||
|
{0, C9_7, C8_7, C6_6}, // LA15
|
||||||
|
{0, C9_6, C8_6, C7_6}, // LA14
|
||||||
|
{0, C9_5, C8_5, C7_5}, // LA13
|
||||||
|
{0, C9_4, C8_4, C7_4}, // LA12
|
||||||
|
{0, C9_3, C8_3, C7_3}, // LA11
|
||||||
|
{0, C9_2, C8_2, C7_2}, // LA10
|
||||||
|
{0, C9_1, C8_1, C7_1}, // LA9
|
||||||
|
{0, C2_9, C3_9, C4_9}, // LB0
|
||||||
|
{0, C1_9, C3_10, C4_10}, // LB1
|
||||||
|
{0, C1_10, C2_10, C4_11}, // LB2
|
||||||
|
{0, C1_11, C2_11, C3_11}, // LB3
|
||||||
|
{0, C1_13, C2_13, C3_13}, // LB5
|
||||||
|
{0, C1_14, C2_14, C3_14}, // LB6
|
||||||
|
|
||||||
|
{0, C1_7, C2_7, C3_7}, // LA7
|
||||||
|
{0, C1_6, C2_6, C3_6}, // LA6
|
||||||
|
{0, C1_5, C2_5, C3_5}, // LA5
|
||||||
|
{0, C1_4, C2_4, C3_4}, // LA4
|
||||||
|
{0, C1_3, C2_3, C3_3}, // LA3
|
||||||
|
{0, C1_2, C2_2, C4_3}, // LA2
|
||||||
|
{0, C1_1, C3_2, C4_2}, // LA1
|
||||||
|
{0, C2_1, C3_1, C4_1}, // LA0
|
||||||
|
{0, C9_9, C8_9, C7_9}, // LB9
|
||||||
|
{0, C9_10, C8_10, C7_10}, // LB10
|
||||||
|
{0, C9_11, C8_11, C7_11}, // LB11
|
||||||
|
{0, C9_12, C8_12, C7_12}, // LB12
|
||||||
|
{0, C9_13, C8_13, C7_13}, // LB13
|
||||||
|
{0, C9_14, C8_14, C7_14}, // LB14
|
||||||
|
{0, C1_15, C2_15, C3_15}, // LB7
|
||||||
|
|
||||||
|
{0, C1_8, C2_8, C3_8}, // LA8
|
||||||
|
{1, C9_6, C8_6, C7_6}, // LC14
|
||||||
|
{1, C9_5, C8_5, C7_5}, // LC13
|
||||||
|
{1, C9_4, C8_4, C7_4}, // LC12
|
||||||
|
{1, C9_3, C8_3, C7_3}, // LC11
|
||||||
|
{1, C9_2, C8_2, C7_2}, // LC10
|
||||||
|
{1, C9_1, C8_1, C7_1}, // LC9
|
||||||
|
{1, C2_9, C3_9, C4_9}, // LD0
|
||||||
|
{1, C1_9, C3_10, C4_10}, // LD1
|
||||||
|
{1, C1_10, C2_10, C4_11}, // LD2
|
||||||
|
{1, C1_11, C2_11, C3_11}, // LD3
|
||||||
|
{1, C1_12, C2_12, C3_12}, // LD4
|
||||||
|
{1, C1_13, C2_13, C3_13}, // LD5
|
||||||
|
{0, C1_16, C2_16, C3_16}, // LB8
|
||||||
|
|
||||||
|
{1, C9_8, C7_7, C6_7}, // LC16
|
||||||
|
{1, C1_5, C2_5, C3_5}, // LC5
|
||||||
|
{1, C1_4, C2_4, C3_4}, // LC4
|
||||||
|
{1, C1_3, C2_3, C3_3}, // LC3
|
||||||
|
{1, C1_2, C2_2, C4_3}, // LC2
|
||||||
|
{1, C1_1, C3_2, C4_2}, // LC1
|
||||||
|
{1, C9_9, C8_9, C7_9}, // LD9
|
||||||
|
{1, C9_10, C8_10, C7_10}, // LD10
|
||||||
|
{1, C9_11, C8_11, C7_11}, // LD11
|
||||||
|
{1, C9_12, C8_12, C7_12}, // LD12
|
||||||
|
{1, C1_14, C2_14, C3_14}, // LD6
|
||||||
|
{1, C1_15, C2_15, C3_15}, // LD7
|
||||||
|
{1, C1_16, C2_16, C3_16}, // LD8
|
||||||
|
{0, C9_15, C8_15, C6_14}, // LB15
|
||||||
|
|
||||||
|
{1, C8_8, C7_8, C6_8}, // LC17
|
||||||
|
{1, C1_8, C2_8, C3_8}, // LC8
|
||||||
|
{1, C1_7, C2_7, C3_7}, // LC7
|
||||||
|
{1, C2_1, C3_1, C4_1}, // LC0
|
||||||
|
{1, C9_14, C8_14, C7_14}, // LD14
|
||||||
|
{1, C9_15, C8_15, C6_14}, // LD15
|
||||||
|
{1, C8_16, C7_16, C6_16}, // LD17
|
||||||
|
{0, C8_16, C7_16, C6_16}, // LB17
|
||||||
|
{0, C9_16, C7_15, C6_15}, // LB16
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
led_config_t g_led_config = { {
|
||||||
|
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
|
||||||
|
{ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
|
||||||
|
{ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 },
|
||||||
|
{ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED,56, 57 },
|
||||||
|
{ 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, NO_LED, 63, 64, NO_LED, 65, 66 }
|
||||||
|
}, {
|
||||||
|
{0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0},
|
||||||
|
{4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16},
|
||||||
|
{6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32},
|
||||||
|
{9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48},
|
||||||
|
{2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64}
|
||||||
|
}, {
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
1, 1, 1, 4, 1, 1, 1, 1, 1
|
||||||
|
} };
|
||||||
|
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
|
void rgb_matrix_indicators_user(void)
|
||||||
|
{
|
||||||
|
if (host_keyboard_led_state().caps_lock)
|
||||||
|
{
|
||||||
|
rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
/* Copyright 2021 DZTECH <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 XXX KC_NO
|
||||||
|
#include "quantum.h"
|
||||||
|
#define LAYOUT_65_ansi_blocker( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
|
||||||
|
K40, K41, K42, K45, K48, K4A, K4B, K4D, K4E \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E }, \
|
||||||
|
{ K40, K41, K42, XXX, XXX, K45, XXX, XXX, K48, XXX, K4A, K4B, XXX, K4D, K4E } \
|
||||||
|
}
|
||||||
Executable
+75
@@ -0,0 +1,75 @@
|
|||||||
|
/* Copyright 2021 DZTECH <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0x4B42 // KB
|
||||||
|
#define PRODUCT_ID 0x1226
|
||||||
|
#define DEVICE_VER 0x0002
|
||||||
|
#define MANUFACTURER KBDfans
|
||||||
|
#define PRODUCT kbd67mkiirgb v3
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 15
|
||||||
|
#define MATRIX_ROW_PINS { F0, F1, F4, E6, C6 }
|
||||||
|
#define MATRIX_COL_PINS { F7, F6, F5, C7, B0, B1, B2, B3, B4, D7, D6, D4, D5, D3, D2}
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL*/
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
/* disable these deprecated features by default */
|
||||||
|
#define NO_ACTION_MACRO
|
||||||
|
#define NO_ACTION_FUNCTION
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
|
||||||
|
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
|
||||||
|
#define USB_SUSPEND_WAKEUP_DELAY 5000
|
||||||
|
#define RGB_MATRIX_KEYPRESSES
|
||||||
|
#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
||||||
|
#define DISABLE_RGB_MATRIX_BAND_SAT
|
||||||
|
#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
||||||
|
#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
||||||
|
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
||||||
|
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
||||||
|
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
||||||
|
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
||||||
|
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
||||||
|
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
||||||
|
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
||||||
|
#define DISABLE_RGB_MATRIX_SPLASH
|
||||||
|
#define DISABLE_RGB_MATRIX_MULTISPLASH
|
||||||
|
#define DISABLE_RGB_MATRIX_SOLID_SPLASH
|
||||||
|
#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
||||||
|
#define DISABLE_RGB_MATRIX_DIGITAL_RAIN
|
||||||
|
#define DISABLE_RGB_MATRIX_RAINDROPS
|
||||||
|
#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
||||||
|
#define RGB_MATRIX_LED_PROCESS_LIMIT 4
|
||||||
|
#define RGB_MATRIX_LED_FLUSH_LIMIT 26
|
||||||
|
#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL
|
||||||
|
#define DRIVER_ADDR_1 0b0110000
|
||||||
|
#define DRIVER_ADDR_2 0b0110000 // this is here for compliancy reasons.
|
||||||
|
#define DRIVER_COUNT 1
|
||||||
|
#define DRIVER_1_LED_TOTAL 67
|
||||||
|
#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
|
||||||
|
#define DRIVER_INDICATOR_LED_TOTAL 0
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# KBD67 Mk.II RGB V3 (Hotswap)
|
||||||
|
|
||||||
|
A hotswap 65% keyboard with USB C, inswitch RGB, and ESD protection.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681)
|
||||||
|
* Hardware Supported: KBD67 Mk.II RGB V3
|
||||||
|
* Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make kbdfans/kbd67/mkiirgb/v3: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).
|
||||||
Executable
+28
@@ -0,0 +1,28 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = lufa-ms
|
||||||
|
BOOTLOADER_SIZE = 6144
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
RGB_MATRIX_ENABLE = yes # Use RGB matrix
|
||||||
|
RGB_MATRIX_DRIVER = IS31FL3741
|
||||||
|
LTO_ENABLE = yes
|
||||||
|
|
||||||
|
LAYOUTS = 65_ansi_blocker
|
||||||
Executable
+126
@@ -0,0 +1,126 @@
|
|||||||
|
/* Copyright 2021 DZTECH <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "v3.h"
|
||||||
|
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
|
||||||
|
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
|
||||||
|
{0, CS21_SW1, CS20_SW1, CS19_SW1},
|
||||||
|
{0, CS21_SW2, CS20_SW2, CS19_SW2},
|
||||||
|
{0, CS21_SW3, CS20_SW3, CS19_SW3},
|
||||||
|
{0, CS21_SW4, CS20_SW4, CS19_SW4},
|
||||||
|
{0, CS21_SW5, CS20_SW5, CS19_SW5},
|
||||||
|
{0, CS21_SW6, CS20_SW6, CS19_SW6},
|
||||||
|
{0, CS21_SW7, CS20_SW7, CS19_SW7},
|
||||||
|
{0, CS21_SW8, CS20_SW8, CS19_SW8},
|
||||||
|
{0, CS24_SW1, CS23_SW1, CS22_SW1},
|
||||||
|
{0, CS24_SW2, CS23_SW2, CS22_SW2},
|
||||||
|
{0, CS24_SW3, CS23_SW3, CS22_SW3},
|
||||||
|
{0, CS24_SW4, CS23_SW4, CS22_SW4},
|
||||||
|
{0, CS24_SW5, CS23_SW5, CS22_SW5},
|
||||||
|
{0, CS24_SW6, CS23_SW6, CS22_SW6},
|
||||||
|
{0, CS24_SW7, CS23_SW7, CS22_SW7},
|
||||||
|
|
||||||
|
{0, CS15_SW1, CS14_SW1, CS13_SW1},
|
||||||
|
{0, CS15_SW2, CS14_SW2, CS13_SW2},
|
||||||
|
{0, CS15_SW3, CS14_SW3, CS13_SW3},
|
||||||
|
{0, CS15_SW4, CS14_SW4, CS13_SW4},
|
||||||
|
{0, CS15_SW5, CS14_SW5, CS13_SW5},
|
||||||
|
{0, CS15_SW6, CS14_SW6, CS13_SW6},
|
||||||
|
{0, CS15_SW7, CS14_SW7, CS13_SW7},
|
||||||
|
{0, CS15_SW8, CS14_SW8, CS13_SW8},
|
||||||
|
{0, CS30_SW1, CS29_SW1, CS28_SW1},
|
||||||
|
{0, CS30_SW2, CS29_SW2, CS28_SW2},
|
||||||
|
{0, CS30_SW3, CS29_SW3, CS28_SW3},
|
||||||
|
{0, CS30_SW4, CS29_SW4, CS28_SW4},
|
||||||
|
{0, CS30_SW5, CS29_SW5, CS28_SW5},
|
||||||
|
{0, CS30_SW6, CS29_SW6, CS28_SW6},
|
||||||
|
{0, CS30_SW7, CS29_SW7, CS28_SW7},
|
||||||
|
|
||||||
|
{0, CS12_SW1, CS11_SW1, CS10_SW1},
|
||||||
|
{0, CS12_SW2, CS11_SW2, CS10_SW2},
|
||||||
|
{0, CS12_SW3, CS11_SW3, CS10_SW3},
|
||||||
|
{0, CS12_SW4, CS11_SW4, CS10_SW4},
|
||||||
|
{0, CS12_SW5, CS11_SW5, CS10_SW5},
|
||||||
|
{0, CS12_SW6, CS11_SW6, CS10_SW6},
|
||||||
|
{0, CS12_SW7, CS11_SW7, CS10_SW7},
|
||||||
|
{0, CS12_SW8, CS11_SW8, CS10_SW8},
|
||||||
|
{0, CS33_SW1, CS32_SW1, CS31_SW1},
|
||||||
|
{0, CS33_SW2, CS32_SW2, CS31_SW2},
|
||||||
|
{0, CS33_SW3, CS32_SW3, CS31_SW3},
|
||||||
|
{0, CS33_SW4, CS32_SW4, CS31_SW4},
|
||||||
|
{0, CS33_SW5, CS32_SW5, CS31_SW5},
|
||||||
|
{0, CS33_SW7, CS32_SW7, CS31_SW7},
|
||||||
|
|
||||||
|
{0, CS9_SW1, CS8_SW1, CS7_SW1},
|
||||||
|
{0, CS9_SW2, CS8_SW2, CS7_SW2},
|
||||||
|
{0, CS9_SW3, CS8_SW3, CS7_SW3},
|
||||||
|
{0, CS9_SW4, CS8_SW4, CS7_SW4},
|
||||||
|
{0, CS9_SW5, CS8_SW5, CS7_SW5},
|
||||||
|
{0, CS9_SW6, CS8_SW6, CS7_SW6},
|
||||||
|
{0, CS9_SW7, CS8_SW7, CS7_SW7},
|
||||||
|
{0, CS9_SW8, CS8_SW8, CS7_SW8},
|
||||||
|
{0, CS36_SW1, CS35_SW1, CS34_SW1},
|
||||||
|
{0, CS36_SW2, CS35_SW2, CS34_SW2},
|
||||||
|
{0, CS36_SW3, CS35_SW3, CS34_SW3},
|
||||||
|
{0, CS36_SW4, CS35_SW4, CS34_SW4},
|
||||||
|
{0, CS36_SW5, CS35_SW5, CS34_SW5},
|
||||||
|
{0, CS36_SW7, CS35_SW7, CS34_SW7},
|
||||||
|
|
||||||
|
{0, CS3_SW1, CS2_SW1, CS1_SW1},
|
||||||
|
{0, CS3_SW2, CS2_SW2, CS1_SW2},
|
||||||
|
{0, CS3_SW3, CS2_SW3, CS1_SW3},
|
||||||
|
{0, CS3_SW6, CS2_SW6, CS1_SW6},
|
||||||
|
// {0, CS39_SW1, CS38_SW1, CS37_SW1},
|
||||||
|
{0, CS39_SW2, CS38_SW2, CS37_SW2},
|
||||||
|
{0, CS39_SW3, CS38_SW3, CS37_SW3},
|
||||||
|
{0, CS39_SW4, CS38_SW4, CS37_SW4},
|
||||||
|
{0, CS39_SW5, CS38_SW5, CS37_SW5},
|
||||||
|
{0, CS39_SW7, CS38_SW7, CS37_SW7}
|
||||||
|
|
||||||
|
};
|
||||||
|
led_config_t g_led_config = { {
|
||||||
|
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
|
||||||
|
{ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
|
||||||
|
{ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 },
|
||||||
|
{ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, NO_LED,55, 56, 57 },
|
||||||
|
{ 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66 }
|
||||||
|
}, {
|
||||||
|
{0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0},
|
||||||
|
{4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16},
|
||||||
|
{6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32},
|
||||||
|
{9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48},
|
||||||
|
{ 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 }
|
||||||
|
|
||||||
|
}, {
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
1, 1, 1, 4, 1, 1, 1, 1, 1
|
||||||
|
} };
|
||||||
|
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
|
void rgb_matrix_indicators_user(void)
|
||||||
|
{
|
||||||
|
if (host_keyboard_led_state().caps_lock)
|
||||||
|
{
|
||||||
|
rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
Loaded 100 of 229 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user