Compare commits

...
35 Commits
Author SHA1 Message Date
Drashna Jaelre 7aba1fd176 Fix RGBLIGHT_SLEEP function (#4865)
* Only re-enable RGBLIGHT if it was on when going to sleep

* Reformat file to follow QMK Standards

* Fix check, since this is a loop, whoops

Much thanks to @Rockman18 for catching this and posting the additional code!
2019-01-25 17:11:49 -08:00
Drashna Jaelre 569ed9db9d Revert Commit 1d3b9eea94 (#4942)
Was not supposed to merge 4763 yet

This reverts commit 1d3b9eea94.
2019-01-25 17:11:19 -08:00
Drashna Jaelre 0306e487e2 Circular animation (#4796)
* Add ability to animate arm_atsam led matrix from the center of a circle

* Make arm_atsam led matrix circular animation circular rather than obloid

* Fix indentation in tmk_core led_matrix.c
2019-01-25 16:04:21 -08:00
walkerstop 1d3b9eea94 [Keyboard] Support for Wheat Field Peripherals blocked 65% PCB (#4763)
* Basic Fanoe support (no LED yet)

* Enable RGB lights

* Backlighting support

* Change to reflect Wheat Field brand of Fanoe PCB

* Hot swap variant

* Fix review comment issues

* Fix review issues

* Corrected rules.mk

* Change naming to avoid using possibly copyrighted names

* Added info.json

* Corrected manufacturer name in info.json

* Keymap updates

* Add layout for use with ws2812b and such

* Fixes based on code review
2019-01-25 15:57:15 -08:00
mtei 2e8b32b9b5 move #include "rgb.h" from quantum.h to quantum.c
I think `quantum.h` should contain only API declarations that `quantum.c` provides externally. `rgb.h` contains function weak definitions. This should not be in `quantum.h`.
2019-01-25 13:38:12 -08:00
fauxpark 79b58937f4 Add C(), A() and G() to match already existing S() (#4673) 2019-01-25 13:12:48 -08:00
Konstantin Đorđević 2f009d7461 Add MOD_MASK_* macros to core code (#4337)
* Add MOD_MASK_* macros to core code

* MOD_MASK_ALL → MOD_MASK_CSAG
2019-01-25 13:02:38 -08:00
Olivier Poitrey e611433cb5 rs: code friendly keymap for preonic, iris and my preonic clone (#4303)
I worked on those keymap to simplify the use of 60% keyboards for
coders. Instead of trying to mimic planck, this keymap remove
raise/lower layer complexity and keep some important sign keys for coder
in the upper right side pretty much the same way as they are on a full
keyboard.

A karabiner configuration is also provided to mimic most of the keymap
features on the macbook internal keyboard for when you are forced to use
it.
2019-01-25 12:57:10 -08:00
Drashna Jaelre 3542e573c8 Fix process_combo which assign -1 to uint16_t (#3697) 2019-01-25 12:11:38 -08:00
Shihpin Tseng b416113616 Fix oneshot_time wrong type (#3696)
* Fix oneshot_time wrong type

* Fix oneshot_time_layer wrong type
2019-01-25 12:09:53 -08:00
MakotoKurauchi 3c0c432836 Fix problem that MAGIC_SWAP_ALT_GUI will not be effective when OSM(mod) is used 2019-01-25 12:05:17 -08:00
Dave Brown b4ae07cbb1 Adding documentation for the LM layer modifier. (#3617)
* Adding documentation for the LM layer modifier.

This will hopefully clear up some of the confusion around adding this layer modifier.  I struggled with this a bit as well at first.

* Removing duplicate table.

* Changed section title to `Changing Layers`

* Retain name
2019-01-25 12:00:04 -08:00
lambda_sakura 8e47f64888 Add support for RETRO_TAPPING to LT(layer, kc) 2019-01-25 11:27:14 -08:00
zunger-humu 0ba9620d65 [Keymap] New kbd67/hotswap keymap for writing both code and math (#4933)
* Custom keymap.

* Fix magic layer, enable Unicode.

* Update README.

* Make Unicode config change keymap-local.

* Move magic to AltGr, simplifying layout.

* Changes per Drashna.

* Fix magic+esc = backtick!

* Change reset implementation per Drashna's suggestion.

* Add a few more symbols so long as the commit is open - √ℜℂℤ⊙ℚℕ and the like.

* Typo fix.

* Slight simplification, drop an extra variable.
2019-01-25 09:46:49 -08:00
skullY 4d8eefc694 Add support for Clueboard 66% rev4 2019-01-24 16:54:01 -08:00
Balz Guenat 5dcb1114d7 Fix a typo in link to the Pro Micro ISP firmware 2019-01-24 16:13:18 -08:00
zvecr af3956d8ba [Keyboard] Remove hadron ver0 as it is no longer required (#4921) 2019-01-24 11:12:50 -08:00
fauxpark b5feae07c2 Remove unused fn_actions[] and action_function() in default keymaps (#4829) 2019-01-24 07:38:44 -08:00
MechMerlin 5d1ea88bf7 [Keyboard] KBD67: enable bootmagic lite by default (#4931)
* enable bootmagic lite by default

* add a second layer with a reset key
2019-01-23 21:06:55 -08:00
shovelpaw ba70ab1748 [Keymap] Adding keymap for Nyquist (#4918)
* Added busby222 config

* Fixed bug with leftover colemak and dvorak layouts

* Fixing dumb mistake

* Minor tweaks to layout. Need to use at work tomorrow to make more adjustments

* Added mouse controls for raised layer

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update config.h

Added mouse specific settings for smoother mouse movement (default is sort of hard to use)

* config.h cleanup

* Lowering max mouse speed (personal preference)

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update config.h

* Update rules.mk

* Added MIDI layer

* Switched the Adjust layer to an MO call

* Update keymap.c

* Fixing bugs related to midi layer

* Changed "Caps Lock" ctrl to RCTRL for use in VirtualBox

* Added shovelpaw keyamp

* Removed deprecated QUANTUM_DIR code block

* Switched midi layer to be only active when held

* Addressing requested changes

* Removed unnecessary include statement
2019-01-23 21:05:21 -08:00
MechMerlin 465559e166 Optimize/Update the new_project script (#4920)
* use pragma once in our templates

* template.h is present in both avr/ps2avrgb options so we moved it to base. In addition we now use pragma once
2019-01-23 21:04:04 -08:00
zvecr cf596a0371 Remove lfkeyboards parent rules.mk as its only required for mini1800 2019-01-23 18:28:56 -08:00
Danny 87ab49e403 [Keyboard] Add BDN9 (#4919) 2019-01-23 17:58:04 -08:00
MechMerlin fafb33d9dd [Keyboard] Add KBD67 Hotswap Support (#4916)
* initial commit

* move the original kbd67 stuff into its own directory, rev1

* get rid of vanilla cookie cutter code

* put in the switch matrix pins, backlight pin, and rgb underglow pin. Number of underglow LEDs is questionable.

* switch matrix created for hotswap

* create a basic keymap for testing

* make info.json for QMK Configurator support

* rename kbd67 due to compile error

* kbd67 generic readme file

* fix make instructions for the new rev1

* comment out unneeded rgb light #defines

* Update keyboards/kbd67/readme.md

Add an extra space for proper markdown rendering

Co-Authored-By: mechmerlin <[email protected]>

* Update keyboards/kbd67/hotswap/hotswap.h

Co-Authored-By: mechmerlin <[email protected]>

* Update keyboards/kbd67/hotswap/keymaps/default/keymap.c

Co-Authored-By: mechmerlin <[email protected]>

* use pragma once

* proper format of MechMerlin
2019-01-23 17:37:24 -08:00
skullY f940b6c5fa Fixup the clueboard 66 info.json 2019-01-23 17:19:41 -08:00
skullydazed d1f735b6d2 Clueboard refresh (#4902)
* Cluecard: refactor

- renamed layout macro KEYMAP to LAYOUT
- reformatted layout macro to more closely resemble physical device layout
- keymaps now use #include QMK_KEYBOARD_H
- config.h files updated to use #pragma once method
- deleted outdated QUANTUM_DIR code blocks from rules.mk files
- white space changes on rules.mk files (alignment/readability)

* Cluecard: Configurator support

* Cluecard: readme update

- added image
- updated Docs links

* Clueboard 66% HotSwap: corrected matrix and Configurator data

- removed k31 and k84 from LAYOUT
  - both appear to be unsupported for this PCB according to images on clueboard.co
  - updated block comment mock-ups to match changes
- rebuilt info.json file
- delete removed keys from default keymap.c

* Clueboard 66% HotSwap: readme update

- fix make example
- updated Docs links

* Clueboard 66% HotSwap: 66_ansi keymap update

Updated to use #include QMK_KEYBOARD_H

* Clueboard 60% refactor

- renamed layout macro KEYMAP to LAYOUT_all
- renamed layout macro KEYMAP_AEK to LAYOUT_aek
- removed redundant KC_TRNS definitions from keymaps
- all keymaps now use #include QMK_KEYBOARD_H

* Clueboard 17%: refactor

* Clueboard 17%: Configurator support

* Clueboard 17%: update Docs links in readme

* Cleanup the 2x1800 files

* Update Clueboard 60% to standard matrix

* Update the clueboard default keymaps

* Refresh and update clueboard 17

* Add the 66% hotswap to Clueboard's readme

* Clarify the 66% hotswap's readme

* change the image to imgur

* Update the clueboard 66 to follow modern standards

* update clueboard 66_hotswap to follow modern practices

* Move the logo to imgur

* update clueboard/card to follow modern practices

* remove clueboard/66 as a valid make target

* Address comments in #4902

* fix user keymaps after the changes
2019-01-23 09:25:32 -08:00
noroadsleft 9667c10477 Give the keymap folder the proper name
It was named default_60_iso for some reason. *shrug*
2019-01-22 22:59:48 -08:00
noroadsleft 2dd031d4f0 Fix layouts/default/66_iso keymap
Keymap had a comma after the last keycode.

Aligned for readability.
2019-01-22 22:59:48 -08:00
Nikolaus Wittenstein 6b1009b7a8 [Keyboard] Add DataHand keyboard support (#4847) 2019-01-22 15:17:41 -08:00
Rys Sommefeldt 2a33d2c424 [Keymap] Add a compile-time provided macro and assign to _FL (#4908)
* Update make command with correct variant

* Add a custom keycode for a compile-time defined macro and add to _FL
2019-01-22 12:39:53 -08:00
Felipe Coury 5be7d09b36 Added info.json for TGR Alice 2019-01-22 12:36:51 -08:00
Ian O'Dea 6ca52c9d57 Fix indentation in tmk_core led_matrix.c 2019-01-07 10:22:47 -06:00
Ian O'Dea 9f3afae5d1 Make arm_atsam led matrix circular animation circular rather than obloid 2019-01-07 10:20:15 -06:00
Ian O'Dea d55dc9b816 Add ability to animate arm_atsam led matrix from the center of a circle 2019-01-07 09:36:28 -06:00
Shihpin Tseng 1950a145c7 Fix process_combo which assign -1 to uint16_t 2018-08-20 02:29:08 +08:00
224 changed files with 5195 additions and 4416 deletions

No files matched your search

+23 -23
View File
@@ -60,21 +60,21 @@ Sometimes, you might want to switch between layers in a macro or as part of a ta
These allow you to combine a modifier with a keycode. When pressed, the keydown event for the modifier, then `kc` will be sent. On release, the keyup event for `kc`, then the modifier will be sent. These allow you to combine a modifier with a keycode. When pressed, the keydown event for the modifier, then `kc` will be sent. On release, the keyup event for `kc`, then the modifier will be sent.
|Key |Aliases |Description | |Key |Aliases |Description |
|----------|----------------------|----------------------------------------------------| |----------|-------------------------------|----------------------------------------------------|
|`LCTL(kc)`| |Hold Left Control and press `kc` | |`LCTL(kc)`|`C(kc)` |Hold Left Control and press `kc` |
|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` | |`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` |
|`LALT(kc)`| |Hold Left Alt and press `kc` | |`LALT(kc)`|`A(kc)` |Hold Left Alt and press `kc` |
|`LGUI(kc)`|`LCMD(kc)`, `LWIN(kc)`|Hold Left GUI and press `kc` | |`LGUI(kc)`|`G(kc)`, `LCMD(kc)`, `LWIN(kc)`|Hold Left GUI and press `kc` |
|`RCTL(kc)`| |Hold Right Control and press `kc` | |`RCTL(kc)`| |Hold Right Control and press `kc` |
|`RSFT(kc)`| |Hold Right Shift and press `kc` | |`RSFT(kc)`| |Hold Right Shift and press `kc` |
|`RALT(kc)`|`ALGR(kc)` |Hold Right Alt and press `kc` | |`RALT(kc)`|`ALGR(kc)` |Hold Right Alt and press `kc` |
|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)`|Hold Right GUI and press `kc` | |`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)` |Hold Right GUI and press `kc` |
|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc`| |`SGUI(kc)`|`SCMD(kc)`, `SWIN(kc)` |Hold Left Shift and GUI and press `kc` |
|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` | |`LCA(kc)` | |Hold Left Control and Alt and press `kc` |
|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` | |`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` |
|`SGUI(kc)`|`SCMD(kc)`, `SWIN(kc)`|Hold Left Shift and GUI and press `kc` | |`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` |
|`LCA(kc)` | |Hold Left Control and Alt and press `kc` | |`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc`|
You can also chain them, for example `LCTL(LALT(KC_DEL))` makes a key that sends Control+Alt+Delete with a single keypress. You can also chain them, for example `LCTL(LALT(KC_DEL))` makes a key that sends Control+Alt+Delete with a single keypress.
@@ -110,20 +110,20 @@ For convenience, QMK includes some Mod-Tap shortcuts to make common combinations
|Key |Aliases |Description | |Key |Aliases |Description |
|------------|-----------------------------------------------------------------|-------------------------------------------------------| |------------|-----------------------------------------------------------------|-------------------------------------------------------|
|`LCTL_T(kc)`|`CTL_T(kc)` |Left Control when held, `kc` when tapped | |`LCTL_T(kc)`|`CTL_T(kc)` |Left Control when held, `kc` when tapped |
|`RCTL_T(kc)`| |Right Control when held, `kc` when tapped |
|`LSFT_T(kc)`|`SFT_T(kc)` |Left Shift when held, `kc` when tapped | |`LSFT_T(kc)`|`SFT_T(kc)` |Left Shift when held, `kc` when tapped |
|`RSFT_T(kc)`| |Right Shift when held, `kc` when tapped |
|`LALT_T(kc)`|`ALT_T(kc)` |Left Alt when held, `kc` when tapped | |`LALT_T(kc)`|`ALT_T(kc)` |Left Alt when held, `kc` when tapped |
|`RALT_T(kc)`|`ALGR_T(kc)` |Right Alt when held, `kc` when tapped |
|`LGUI_T(kc)`|`LCMD_T(kc)`, `LWIN_T(kc)`, `GUI_T(kc)`, `CMD_T(kc)`, `WIN_T(kc)`|Left GUI when held, `kc` when tapped | |`LGUI_T(kc)`|`LCMD_T(kc)`, `LWIN_T(kc)`, `GUI_T(kc)`, `CMD_T(kc)`, `WIN_T(kc)`|Left GUI when held, `kc` when tapped |
|`RCTL_T(kc)`| |Right Control when held, `kc` when tapped |
|`RSFT_T(kc)`| |Right Shift when held, `kc` when tapped |
|`RALT_T(kc)`|`ALGR_T(kc)` |Right Alt when held, `kc` when tapped |
|`RGUI_T(kc)`|`RCMD_T(kc)`, `RWIN_T(kc)` |Right GUI when held, `kc` when tapped | |`RGUI_T(kc)`|`RCMD_T(kc)`, `RWIN_T(kc)` |Right GUI when held, `kc` when tapped |
|`C_S_T(kc)` | |Left Control and Shift when held, `kc` when tapped |
|`MEH_T(kc)` | |Left Control, Shift and Alt when held, `kc` when tapped|
|`LCAG_T(kc)`| |Left Control, Alt and GUI when held, `kc` when tapped |
|`RCAG_T(kc)`| |Right Control, Alt and GUI when held, `kc` when tapped |
|`HYPR_T(kc)`|`ALL_T(kc)` |Left Control, Shift, Alt and GUI when held, `kc` when tapped - more info [here](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)|
|`SGUI_T(kc)`|`SCMD_T(kc)`, `SWIN_T(kc)` |Left Shift and GUI when held, `kc` when tapped | |`SGUI_T(kc)`|`SCMD_T(kc)`, `SWIN_T(kc)` |Left Shift and GUI when held, `kc` when tapped |
|`LCA_T(kc)` | |Left Control and Alt when held, `kc` when tapped | |`LCA_T(kc)` | |Left Control and Alt when held, `kc` when tapped |
|`LCAG_T(kc)`| |Left Control, Alt and GUI when held, `kc` when tapped |
|`RCAG_T(kc)`| |Right Control, Alt and GUI when held, `kc` when tapped |
|`C_S_T(kc)` | |Left Control and Shift when held, `kc` when tapped |
|`MEH_T(kc)` | |Left Control, Shift and Alt when held, `kc` when tapped|
|`HYPR_T(kc)`|`ALL_T(kc)` |Left Control, Shift, Alt and GUI when held, `kc` when tapped - more info [here](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)|
## Caveats ## Caveats
+1 -1
View File
@@ -53,7 +53,7 @@ This is pretty straight-forward - we'll be connecting like-things to like-things
The only difference between the .hex files below is which pin is connected to RESET. You can use them on other boards as well, as long as you're aware of the pins being used. If for some reason neither of these pins are available, [create an issue](https://github.com/qmk/qmk_firmware/issues/new), and we can generate one for you! The only difference between the .hex files below is which pin is connected to RESET. You can use them on other boards as well, as long as you're aware of the pins being used. If for some reason neither of these pins are available, [create an issue](https://github.com/qmk/qmk_firmware/issues/new), and we can generate one for you!
* Teensy 2.0: [`util/teensy_2.0_ISP_B0.hex`](https://github.com/qmk/qmk_firmware/blob/master/util/teensy_2.0_ISP_B0.hex) (`B0`) * Teensy 2.0: [`util/teensy_2.0_ISP_B0.hex`](https://github.com/qmk/qmk_firmware/blob/master/util/teensy_2.0_ISP_B0.hex) (`B0`)
* Pro Micro: [`util/pro_micro_ISP_B6_10.hex`](https://github.com/qmk/qmk_firmware/blob/master/util/pro_mico_ISP_B6_10.hex) (`B6/10`) * Pro Micro: [`util/pro_micro_ISP_B6_10.hex`](https://github.com/qmk/qmk_firmware/blob/master/util/pro_micro_ISP_B6_10.hex) (`B6/10`)
**Flash your Teenys/Pro Micro with one of these and continue - you won't need the file after flashing your ISP device.** **Flash your Teenys/Pro Micro with one of these and continue - you won't need the file after flashing your ISP device.**
+26 -26
View File
@@ -290,7 +290,7 @@ This is a reference only. Each group of keys links to the page documenting their
|`DF(layer)` |Set the base (default) layer | |`DF(layer)` |Set the base (default) layer |
|`MO(layer)` |Momentarily turn on `layer` when pressed (requires `KC_TRNS` on destination layer)| |`MO(layer)` |Momentarily turn on `layer` when pressed (requires `KC_TRNS` on destination layer)|
|`OSL(layer)` |Momentarily activates `layer` until a key is pressed. See [One Shot Keys](https://docs.qmk.fm/#/feature_advanced_keycodes?id=one-shot-keys) for details. | |`OSL(layer)` |Momentarily activates `layer` until a key is pressed. See [One Shot Keys](https://docs.qmk.fm/#/feature_advanced_keycodes?id=one-shot-keys) for details. |
|`LM(layer, mod)`|Momentarily turn on `layer` (like MO) with `mod` active as well. |`LM(layer, mod)`|Momentarily turn on `layer` (like MO) with `mod` active as well. Where `mod` is a mods_bit. Mods can be viewed [here](https://docs.qmk.fm/#/feature_advanced_keycodes?id=mod-tap). Example Implementation: `LM(LAYER_1, MOD_LALT)`|
|`LT(layer, kc)` |Turn on `layer` when held, `kc` when tapped | |`LT(layer, kc)` |Turn on `layer` when held, `kc` when tapped |
|`TG(layer)` |Toggle `layer` on or off | |`TG(layer)` |Toggle `layer` on or off |
|`TO(layer)` |Turn on `layer` when pressed | |`TO(layer)` |Turn on `layer` when pressed |
@@ -319,43 +319,43 @@ This is a reference only. Each group of keys links to the page documenting their
## [Modifiers](feature_advanced_keycodes.md#modifier-keys) ## [Modifiers](feature_advanced_keycodes.md#modifier-keys)
|Key |Aliases |Description | |Key |Aliases |Description |
|----------|----------------------|----------------------------------------------------| |----------|-------------------------------|----------------------------------------------------|
|`KC_HYPR` | |Hold Left Control, Shift, Alt and GUI | |`LCTL(kc)`|`C(kc)` |Hold Left Control and press `kc` |
|`KC_MEH` | |Hold Left Control, Shift and Alt | |`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` |
|`LCTL(kc)`| |Hold Left Control and press `kc` | |`LALT(kc)`|`A(kc)` |Hold Left Alt and press `kc` |
|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` | |`LGUI(kc)`|`G(kc)`, `LCMD(kc)`, `LWIN(kc)`|Hold Left GUI and press `kc` |
|`LALT(kc)`| |Hold Left Alt and press `kc` | |`RCTL(kc)`| |Hold Right Control and press `kc` |
|`LGUI(kc)`|`LCMD(kc)`, `LWIN(kc)`|Hold Left GUI and press `kc` | |`RSFT(kc)`| |Hold Right Shift and press `kc` |
|`RCTL(kc)`| |Hold Right Control and press `kc` | |`RALT(kc)`|`ALGR(kc)` |Hold Right Alt and press `kc` |
|`RSFT(kc)`| |Hold Right Shift and press `kc` | |`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)` |Hold Right GUI and press `kc` |
|`RALT(kc)`|`ALGR(kc)` |Hold Right Alt and press `kc` | |`SGUI(kc)`|`SCMD(kc)`, `SWIN(kc)` |Hold Left Shift and GUI and press `kc` |
|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)`|Hold Right GUI and press `kc` | |`LCA(kc)` | |Hold Left Control and Alt and press `kc` |
|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc`| |`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` |
|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` | |`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` |
|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` | |`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc`|
|`SGUI(kc)`|`SCMD(kc)`, `SWIN(kc)`|Hold Left Shift and GUI and press `kc` | |`KC_MEH` | |Left Control, Shift and Alt |
|`LCA(kc)` | |Hold Left Control and Alt and press `kc` | |`KC_HYPR` | |Left Control, Shift, Alt and GUI |
## [Mod-Tap Keys](feature_advanced_keycodes.md#mod-tap) ## [Mod-Tap Keys](feature_advanced_keycodes.md#mod-tap)
|Key |Aliases |Description | |Key |Aliases |Description |
|------------|-----------------------------------------------------------------|-------------------------------------------------------| |------------|-----------------------------------------------------------------|-------------------------------------------------------|
|`LCTL_T(kc)`|`CTL_T(kc)` |Left Control when held, `kc` when tapped | |`LCTL_T(kc)`|`CTL_T(kc)` |Left Control when held, `kc` when tapped |
|`RCTL_T(kc)`| |Right Control when held, `kc` when tapped |
|`LSFT_T(kc)`|`SFT_T(kc)` |Left Shift when held, `kc` when tapped | |`LSFT_T(kc)`|`SFT_T(kc)` |Left Shift when held, `kc` when tapped |
|`RSFT_T(kc)`| |Right Shift when held, `kc` when tapped |
|`LALT_T(kc)`|`ALT_T(kc)` |Left Alt when held, `kc` when tapped | |`LALT_T(kc)`|`ALT_T(kc)` |Left Alt when held, `kc` when tapped |
|`RALT_T(kc)`|`ALGR_T(kc)` |Right Alt when held, `kc` when tapped |
|`LGUI_T(kc)`|`LCMD_T(kc)`, `LWIN_T(kc)`, `GUI_T(kc)`, `CMD_T(kc)`, `WIN_T(kc)`|Left GUI when held, `kc` when tapped | |`LGUI_T(kc)`|`LCMD_T(kc)`, `LWIN_T(kc)`, `GUI_T(kc)`, `CMD_T(kc)`, `WIN_T(kc)`|Left GUI when held, `kc` when tapped |
|`RCTL_T(kc)`| |Right Control when held, `kc` when tapped |
|`RSFT_T(kc)`| |Right Shift when held, `kc` when tapped |
|`RALT_T(kc)`|`ALGR_T(kc)` |Right Alt when held, `kc` when tapped |
|`RGUI_T(kc)`|`RCMD_T(kc)`, `RWIN_T(kc)` |Right GUI when held, `kc` when tapped | |`RGUI_T(kc)`|`RCMD_T(kc)`, `RWIN_T(kc)` |Right GUI when held, `kc` when tapped |
|`C_S_T(kc)` | |Left Control and Shift when held, `kc` when tapped |
|`MEH_T(kc)` | |Left Control, Shift and Alt when held, `kc` when tapped|
|`LCAG_T(kc)`| |Left Control, Alt and GUI when held, `kc` when tapped |
|`RCAG_T(kc)`| |Right Control, Alt and GUI when held, `kc` when tapped |
|`HYPR_T(kc)`|`ALL_T(kc)` |Left Control, Shift, Alt and GUI when held, `kc` when tapped - more info [here](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)|
|`SGUI_T(kc)`|`SCMD_T(kc)`, `SWIN_T(kc)` |Left Shift and GUI when held, `kc` when tapped | |`SGUI_T(kc)`|`SCMD_T(kc)`, `SWIN_T(kc)` |Left Shift and GUI when held, `kc` when tapped |
|`LCA_T(kc)` | |Left Control and Alt when held, `kc` when tapped | |`LCA_T(kc)` | |Left Control and Alt when held, `kc` when tapped |
|`LCAG_T(kc)`| |Left Control, Alt and GUI when held, `kc` when tapped |
|`RCAG_T(kc)`| |Right Control, Alt and GUI when held, `kc` when tapped |
|`C_S_T(kc)` | |Left Control and Shift when held, `kc` when tapped |
|`MEH_T(kc)` | |Left Control, Shift and Alt when held, `kc` when tapped|
|`HYPR_T(kc)`|`ALL_T(kc)` |Left Control, Shift, Alt and GUI when held, `kc` when tapped - more info [here](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)|
## [RGB Lighting](feature_rgblight.md) ## [RGB Lighting](feature_rgblight.md)
+12
View File
@@ -0,0 +1,12 @@
{
"keyboard_name": "TGR Alice",
"url": "",
"maintainer": "Felipe Coury",
"width": 17.75,
"height": 5,
"layouts": {
"LAYOUT": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.25, "y":0}, {"label":"!", "x":2.25, "y":0}, {"label":"@", "x":3.25, "y":0}, {"label":"#", "x":4.25, "y":0}, {"label":"$", "x":5.25, "y":0}, {"label":"%", "x":6.25, "y":0}, {"label":"^", "x":7.25, "y":0}, {"label":"&", "x":9.75, "y":0}, {"label":"*", "x":10.75, "y":0}, {"label":"(", "x":11.75, "y":0}, {"label":")", "x":12.75, "y":0}, {"label":"_", "x":13.75, "y":0}, {"label":"+", "x":14.75, "y":0}, {"label":"|", "x":15.75, "y":0}, {"label":"~", "x":16.75, "y":0}, {"label":"Insert", "x":0, "y":1}, {"label":"Tab", "x":1.25, "y":1, "w":1.5}, {"label":"Q", "x":2.75, "y":1}, {"label":"W", "x":3.75, "y":1}, {"label":"E", "x":4.75, "y":1}, {"label":"R", "x":5.75, "y":1}, {"label":"T", "x":6.75, "y":1}, {"label":"Y", "x":9.25, "y":1}, {"label":"U", "x":10.25, "y":1}, {"label":"I", "x":11.25, "y":1}, {"label":"O", "x":12.25, "y":1}, {"label":"P", "x":13.25, "y":1}, {"label":"{", "x":14.25, "y":1}, {"label":"}", "x":15.25, "y":1}, {"label":"Backspace", "x":16.25, "y":1, "w":1.5}, {"label":"Delete", "x":0, "y":2}, {"label":"Caps Lock", "x":1.25, "y":2, "w":1.75}, {"label":"A", "x":3, "y":2}, {"label":"S", "x":4, "y":2}, {"label":"D", "x":5, "y":2}, {"label":"F", "x":6, "y":2}, {"label":"G", "x":7, "y":2}, {"label":"H", "x":9.5, "y":2}, {"label":"J", "x":10.5, "y":2}, {"label":"K", "x":11.5, "y":2}, {"label":"L", "x":12.5, "y":2}, {"label":":", "x":13.5, "y":2}, {"label":"\"", "x":14.5, "y":2}, {"label":"Enter", "x":15.5, "y":2, "w":2.25}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":9, "y":3}, {"label":"N", "x":10, "y":3}, {"label":"M", "x":11, "y":3}, {"label":"<", "x":12, "y":3}, {"label":">", "x":13, "y":3}, {"label":"?", "x":14, "y":3}, {"label":"Shift", "x":15, "y":3, "w":1.75}, {"label":"Fn", "x":16.75, "y":3}, {"label":"Ctrl", "x":1.25, "y":4, "w":1.5}, {"label":"Alt", "x":3.5, "y":4, "w":1.5}, {"x":5, "y":4, "w":2.25}, {"label":"Win", "x":7.25, "y":4, "w":1.25}, {"x":9, "y":4, "w":2.75}, {"label":"Alt", "x":11.75, "y":4, "w":1.5}, {"label":"Ctrl", "x":16.25, "y":4, "w":1.5}]
}
}
}
-35
View File
@@ -1,5 +1,4 @@
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
#define _BL 0 #define _BL 0
#define _FN1 1 #define _FN1 1
@@ -108,37 +107,3 @@ void led_set_user(uint8_t usb_led) {
} }
} }
enum function_id {
SHIFT_ESC,
};
const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_FUNCTION(SHIFT_ESC),
};
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
static uint8_t shift_esc_shift_mask;
switch (id) {
case SHIFT_ESC:
shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
if (record->event.pressed) {
if (shift_esc_shift_mask) {
add_key(KC_GRV);
send_keyboard_report();
} else {
add_key(KC_ESC);
send_keyboard_report();
}
} else {
if (shift_esc_shift_mask) {
del_key(KC_GRV);
send_keyboard_report();
} else {
del_key(KC_ESC);
send_keyboard_report();
}
}
break;
}
}
-37
View File
@@ -4,9 +4,6 @@
#include "rgblight.h" #include "rgblight.h"
#endif #endif
// Used for SHIFT_ESC
#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them // Layer names don't all need to be of the same length, obviously, and you can also skip them
@@ -66,37 +63,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_P0, LT(_FL,KC_PDOT), KC_PENT \ KC_P0, LT(_FL,KC_PDOT), KC_PENT \
), ),
}; };
enum function_id {
SHIFT_ESC,
};
const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_FUNCTION(SHIFT_ESC),
};
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
static uint8_t shift_esc_shift_mask;
switch (id) {
case SHIFT_ESC:
shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
if (record->event.pressed) {
if (shift_esc_shift_mask) {
add_key(KC_GRV);
send_keyboard_report();
} else {
add_key(KC_ESC);
send_keyboard_report();
}
} else {
if (shift_esc_shift_mask) {
del_key(KC_GRV);
send_keyboard_report();
} else {
del_key(KC_ESC);
send_keyboard_report();
}
}
break;
}
}
+1
View File
@@ -0,0 +1 @@
#include "bdn9.h"
@@ -1,4 +1,4 @@
/* Copyright 2019 REPLACE_WITH_YOUR_NAME /* Copyright 2019 Danny Nguyen <[email protected]>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@@ -13,8 +13,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef %KEYBOARD_UPPERCASE%_H #pragma once
#define %KEYBOARD_UPPERCASE%_H
#include "quantum.h" #include "quantum.h"
@@ -27,12 +26,10 @@
* represents the switch matrix. * represents the switch matrix.
*/ */
#define LAYOUT( \ #define LAYOUT( \
K00, K01, K02, \ KA1, KA2, KA3, \
K10, K11 \ KB1, KB2, KB3, \
KC1, KC2, KC3 \
) \ ) \
{ \ { \
{ K00, K01, K02 }, \ { KA1, KA2, KA3, KB1, KB2, KB3, KC1, KC2, KC3 } \
{ K10, KC_NO, K11 }, \
} }
#endif
+74
View File
@@ -0,0 +1,74 @@
/*
Copyright 2019 Danny Nguyen <[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 0xCB10
#define PRODUCT_ID 0x1133
#define DEVICE_VER 0x0100
#define MANUFACTURER Keebio
#define PRODUCT BDN9
#define DESCRIPTION 3x3 Macropad with Rotary Encoders
/* key matrix size */
#define MATRIX_ROWS 1
#define MATRIX_COLS 9
/* Keyboard Matrix Assignments */
#define NO_PIN (~0)
#define MATRIX_ROW_PINS { NO_PIN }
#define MATRIX_COL_PINS { D2, D4, F4, D7, B1, B3, E6, B4, B2 }
/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
#define DIODE_DIRECTION COL2ROW
#define NUMBER_OF_ENCODERS 2
#define ENCODERS_PAD_A { D1, F5 }
#define ENCODERS_PAD_B { D0, F6 }
#define BACKLIGHT_PIN B5
// #define BACKLIGHT_BREATHING
#define BACKLIGHT_LEVELS 7
#define RGB_DI_PIN D3
#ifdef RGB_DI_PIN
#define RGBLED_NUM 3
#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
#endif
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCING_DELAY 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* key combination for magic key command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
View File
Whitespace-only changes.
+41
View File
@@ -0,0 +1,41 @@
/* Copyright 2019 Danny Nguyen <[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(
KC_A, KC_B, KC_C, \
BL_STEP, KC_UP, RGB_MOD, \
KC_LEFT, KC_DOWN, KC_RGHT \
),
};
void encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
if (clockwise) {
tap_code(KC_PGDN);
} else {
tap_code(KC_PGUP);
}
}
else if (index == 1) {
if (clockwise) {
tap_code(KC_DOWN);
} else {
tap_code(KC_UP);
}
}
}
+15
View File
@@ -0,0 +1,15 @@
# BDN9
![BDN9](https://cdn.shopify.com/s/files/1/1851/5125/products/[email protected]?v=1547909493)
A 3x3 macropad with support for a rotary encoder at the upper two corners.
Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
Hardware Supported: Pro Micro, Elite-C, Proton C
Hardware Availability: [Keebio - BDN9](https://keeb.io/products/bdn9-3x3-9-key-macropad-rotary-encoder-support)
Make example for this keyboard (after setting up your build environment):
make bdn9: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).
+50
View File
@@ -0,0 +1,50 @@
MCU = atmega32u4
F_CPU = 16000000
ARCH = AVR8
F_USB = $(F_CPU)
# Interrupt driven control endpoint task(+60)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
# Bootloader selection
# Teensy halfkay
# Pro Micro caterina
# Atmel DFU atmel-dfu
# LUFA DFU lufa-dfu
# QMK DFU qmk-dfu
# atmega32a bootloadHID
BOOTLOADER = caterina
# If you don't know the bootloader type, then you can specify the
# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
# Teensy halfKay 512
# Teensy++ halfKay 1024
# Atmel DFU loader 4096
# LUFA bootloader 4096
# USBaspLoader 2048
# OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
ENCODER_ENABLE = yes
-4
View File
@@ -41,7 +41,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS
), // */ ), // */
}; };
const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_LAYER_MOMENTARY(1),
};
@@ -3,12 +3,13 @@
#define _______ KC_TRNS #define _______ KC_TRNS
#define XXXXXXX KC_NO #define XXXXXXX KC_NO
#define C(kc) LCTL(KC_##kc) #undef C
#undef S
#define C(kc) LCTL(KC_##kc)
#define S(kc) LSFT(KC_##kc)
#define RA(kc) RALT(KC_##kc) #define RA(kc) RALT(KC_##kc)
#define KC_SLCT KC_SELECT #define KC_SLCT KC_SELECT
#define MEDAPP LT(MEDIA, KC_APP) #define MEDAPP LT(MEDIA, KC_APP)
#undef S
#define S(kc) LSFT(KC_##kc)
uint8_t current_layer_global = 255; uint8_t current_layer_global = 255;
@@ -17,11 +17,15 @@
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
/* Allow shortcuts for combos like RALT(KC_RBRC) that don't take up more than 7 characters: */ /* Allow shortcuts for combos like RALT(KC_RBRC) that don't take up more than 7 characters: */
#define G(kc) RALT(KC_##kc) /* Original shortcuts (quantum_keycodes.h) take full-sized keycodes: too long! */
#define A(kc) LALT(KC_##kc) #undef C
#undef S
#undef A
#undef G
#define C(kc) LCTL(KC_##kc) #define C(kc) LCTL(KC_##kc)
#undef S /* Original shortcut (quantum_keycodes.h) takes full-sized keycodes: too long! */
#define S(kc) LSFT(KC_##kc) #define S(kc) LSFT(KC_##kc)
#define A(kc) LALT(KC_##kc)
#define G(kc) RALT(KC_##kc)
#define CTALDEL LCTL(LALT(KC_DEL)) #define CTALDEL LCTL(LALT(KC_DEL))
enum layers { enum layers {
+3 -6
View File
@@ -12,13 +12,11 @@ void matrix_init_kb(void) {
MCUCR |= (1<<JTD); MCUCR |= (1<<JTD);
}; };
void led_set_kb(uint8_t usb_led) void led_set_kb(uint8_t usb_led) {
{
print("led_set\n"); print("led_set\n");
} }
void backlight_init_ports(void) void backlight_init_ports(void) {
{
// Set C7 to output // Set C7 to output
DDRC |= (1<<7); DDRC |= (1<<7);
@@ -29,8 +27,7 @@ void backlight_init_ports(void)
TCCR4B = 0b00000001; TCCR4B = 0b00000001;
} }
void backlight_set(uint8_t level) void backlight_set(uint8_t level) {
{
// Determine the PWM level // Determine the PWM level
switch (level) switch (level)
{ {
+13 -10
View File
@@ -19,18 +19,21 @@
*/ */
// The first section contains all of the arguments // The first section contains all of the arguments
// The second converts the arguments into a two-dimensional array // The second converts the arguments into a two-dimensional array
#define KEYMAP( \ #define LAYOUT_numpad_5x4( \
k00, k01, k02, k03, \ k00, k01, k02, k03, \
k10, k11, k12, k13, \ k10, k11, k12, \
k20, k21, k22, \ k20, k21, k22, k13, \
k30, k31, k32, k33, \ k30, k31, k32, \
k40, k42 \ k40, k42, k33 \
) { \ ) { \
{ k00, k01, k02, k03, }, \ { k00, k01, k02, k03 }, \
{ k10, k11, k12, k13, }, \ { k10, k11, k12, k13 }, \
{ k20, k21, k22, KC_NO, }, \ { k20, k21, k22, KC_NO }, \
{ k30, k31, k32, k33, }, \ { k30, k31, k32, k33 }, \
{ k40, KC_NO, k42, KC_NO } \ { k40, KC_NO, k42, KC_NO } \
} }
#define LAYOUT LAYOUT_numpad_5x4
#define KEYMAP LAYOUT_numpad_5x4
#endif #endif
+31
View File
@@ -0,0 +1,31 @@
{
"keyboard_name": "Clueboard 17% (Cluepad)",
"keyboard_folder": "clueboard/17",
"url": "",
"maintainer": "qmk",
"width": 4,
"height": 5,
"layouts": {
"LAYOUT_numpad_5x4": {
"layout": [
{"label":"Num Lock", "x":0, "y":0},
{"label":"/", "x":1, "y":0},
{"label":"*", "x":2, "y":0},
{"label":"-", "x":3, "y":0},
{"label":"7", "x":0, "y":1},
{"label":"8", "x":1, "y":1},
{"label":"9", "x":2, "y":1},
{"label":"4", "x":0, "y":2},
{"label":"5", "x":1, "y":2},
{"label":"6", "x":2, "y":2},
{"label":"+", "x":3, "y":1, "h":2},
{"label":"1", "x":0, "y":3},
{"label":"2", "x":1, "y":3},
{"label":"3", "x":2, "y":3},
{"label":"0", "x":0, "y":4, "w":2},
{"label":".", "x":2, "y":4},
{"label":"Enter", "x":3, "y":3, "h":2}
]
}
}
}
+15 -16
View File
@@ -1,6 +1,4 @@
#include "17.h" #include QMK_KEYBOARD_H
#include "backlight.h"
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -8,7 +6,6 @@
// entirely and just use numbers. // entirely and just use numbers.
#define _BL 0 #define _BL 0
#define _FL 1 #define _FL 1
#define _RS 2
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _BL: (Base Layer) Default Layer /* Keymap _BL: (Base Layer) Default Layer
@@ -24,12 +21,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | 0| .| Ent| * | 0| .| Ent|
* '-------------------' * '-------------------'
*/ */
[_BL] = KEYMAP( [_BL] = LAYOUT_numpad_5x4(
LT(_FL, KC_NLCK), KC_PSLS, KC_PAST, KC_PMNS, \ LT(_FL, KC_NLCK), KC_PSLS, KC_PAST, KC_PMNS, \
KC_P7, KC_P8, KC_P9, KC_PPLS, \ KC_P7, KC_P8, KC_P9, \
KC_P4, KC_P5, KC_P6, \ KC_P4, KC_P5, KC_P6, KC_PPLS, \
KC_P1, KC_P2, KC_P3, KC_PENT, \ KC_P1, KC_P2, KC_P3, \
KC_P0, KC_PDOT), KC_P0, KC_PDOT, KC_PENT \
),
/* Keymap _FL: Function Layer /* Keymap _FL: Function Layer
* .-------------------. * .-------------------.
@@ -44,10 +42,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | Fn1| | Fn7| * | Fn1| | Fn7|
* '-------------------' * '-------------------'
*/ */
[_FL] = KEYMAP( [_FL] = LAYOUT_numpad_5x4(
LT(_FL, KC_NLCK), KC_TRNS, KC_TRNS, RGB_TOG, \ LT(_FL, KC_NLCK), _______, _______, RGB_TOG, \
KC_TRNS, RGB_SAI, KC_TRNS, RGB_VAI, \ _______, RGB_SAI, _______, \
RGB_HUD, BL_STEP, RGB_HUI, \ RGB_HUD, BL_STEP, RGB_HUI, RGB_VAI, \
KC_TRNS, RGB_SAD, KC_TRNS, RGB_VAD, \ _______, RGB_SAD, _______, \
RGB_MOD, KC_TRNS) RGB_MOD, _______, RGB_VAD \
)
}; };
+2 -2
View File
@@ -1,6 +1,6 @@
# Clueboard 17% (Formerly Cluepad) # Clueboard 17% (Formerly Cluepad)
![Clueboard 17%](https://static1.squarespace.com/static/55c13bdee4b099be5dcb82eb/5842fbdce3df28eae5ec557e/5844fb2cb8a79bbdfd63bad1/1498501250178/IMGP3931.jpg?format=750w) ![Clueboard 17%](https://i.imgur.com/3XBC5c0.jpg)
A basic 17 key numpad PCB. A basic 17 key numpad PCB.
@@ -13,4 +13,4 @@ Make example for this keyboard (after setting up your build environment):
make clueboard/17:default make clueboard/17:default
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. 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).
+10 -15
View File
@@ -1,6 +1,4 @@
# MCU name # MCU name
#MCU = at90usb1287
MCU = atmega32u4 MCU = atmega32u4
# Processor frequency. # Processor frequency.
@@ -50,16 +48,13 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options # Build Options
# comment out to disable the options. BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
# MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
# MOUSEKEY_ENABLE = yes # Mouse keys(+4700) CONSOLE_ENABLE = yes # Console for debug(+400)
# EXTRAKEY_ENABLE = yes # Audio control and System control(+450) COMMAND_ENABLE = no # Commands for debug and configuration
# CONSOLE_ENABLE = yes # Console for debug(+400) NKRO_ENABLE = yes # USB Nkey Rollover
# COMMAND_ENABLE = yes # Commands for debug and configuration BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
BACKLIGHT_ENABLE = yes # Enable numpad's backlight functionality MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
RGBLIGHT_ENABLE = yes UNICODE_ENABLE = no # Unicode
# MIDI_ENABLE = YES # MIDI controls
# UNICODE_ENABLE = YES # Unicode
# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
+5 -10
View File
@@ -21,10 +21,6 @@ void matrix_init_kb(void) {
DDRB |= (1<<5); // Capslock DDRB |= (1<<5); // Capslock
DDRB |= (1<<6); // Scroll Lock DDRB |= (1<<6); // Scroll Lock
// JTAG disable for PORT F. write JTD bit twice within four cycles.
MCUCR |= (1<<JTD);
MCUCR |= (1<<JTD);
// Run the keymap level init // Run the keymap level init
matrix_init_user(); matrix_init_user();
} }
@@ -38,25 +34,24 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
} }
void led_set_kb(uint8_t usb_led) { void led_set_kb(uint8_t usb_led) {
// Toggle numlock as needed
if (usb_led & (1<<USB_LED_NUM_LOCK)) { if (usb_led & (1<<USB_LED_NUM_LOCK)) {
// Turn numlock on
PORTB |= (1<<4); PORTB |= (1<<4);
} else { } else {
// Turn numlock off
PORTB &= ~(1<<4); PORTB &= ~(1<<4);
} }
// Toggle capslock as needed
if (usb_led & (1<<USB_LED_CAPS_LOCK)) { if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
// Turn capslock on
PORTB |= (1<<5); PORTB |= (1<<5);
} else { } else {
// Turn capslock off
PORTB &= ~(1<<5); PORTB &= ~(1<<5);
} }
// Toggle scrolllock as needed
if (usb_led & (1<<USB_LED_SCROLL_LOCK)) { if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
// Turn scroll lock on
PORTB |= (1<<6); PORTB |= (1<<6);
} else { } else {
// Turn scroll lock off
PORTB &= ~(1<<6); PORTB &= ~(1<<6);
} }
} }
+3 -1
View File
@@ -21,7 +21,7 @@
// This a shortcut to help you visually see your layout. // This a shortcut to help you visually see your layout.
// The first section contains all of the arguments // The first section contains all of the arguments
// The second converts the arguments into a two-dimensional array // The second converts the arguments into a two-dimensional array
#define LAYOUT( \ #define LAYOUT_all( \
k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \
@@ -90,4 +90,6 @@
{ kb0, KC_NO, KC_NO, KC_NO, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO } \ { kb0, KC_NO, KC_NO, KC_NO, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO } \
} }
#define LAYOUT LAYOUT_all
#endif #endif
+1
View File
@@ -58,6 +58,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* audio support */ /* audio support */
#define B7_AUDIO #define B7_AUDIO
#define C4_AUDIO #define C4_AUDIO
#define AUDIO_CLICKY
/* number of backlight levels */ /* number of backlight levels */
// #define BACKLIGHT_PIN B7 // #define BACKLIGHT_PIN B7
+19 -373
View File
@@ -1,5 +1,5 @@
{ {
"keyboard_name": "CB 2x1800", "keyboard_name": "Clueboard 2x1800",
"url": "", "url": "",
"maintainer": "skullydazed", "maintainer": "skullydazed",
"width": 24, "width": 24,
@@ -8,388 +8,34 @@
"LAYOUT": { "LAYOUT": {
"key_count": 127, "key_count": 127,
"layout": [ "layout": [
{"label":"Home", "x":0, "y":0}, {"label":"Home", "x":0, "y":0}, {"label":"End", "x":1, "y":0}, {"label":"PgUp", "x":2, "y":0}, {"label":"PgDn", "x":3, "y":0}, {"label":"Esc", "x":4.75, "y":0}, {"label":"F1", "x":6.25, "y":0}, {"label":"F2", "x":7.25, "y":0}, {"label":"F3", "x":8.25, "y":0}, {"label":"F4", "x":9.25, "y":0}, {"label":"F5", "x":10.75, "y":0}, {"label":"F6", "x":11.75, "y":0}, {"label":"F7", "x":12.75, "y":0}, {"label":"F8", "x":13.75, "y":0}, {"label":"F9", "x":15.25, "y":0}, {"label":"F10", "x":16.25, "y":0}, {"label":"F11", "x":17.25, "y":0}, {"label":"F12", "x":18.25, "y":0}, {"label":"PrtSc", "x":20, "y":0}, {"label":"Scroll Lock", "x":21, "y":0}, {"label":"Pause", "x":22, "y":0}, {"label":"Insert", "x":23, "y":0},
{"label":"End", "x":1, "y":0}, {"label":"-", "x":0, "y":1.25}, {"label":"Num Lock", "x":1, "y":1.25}, {"label":"/", "x":2, "y":1.25}, {"label":"*", "x":3, "y":1.25}, {"label":"~", "x":4.5, "y":1.25}, {"label":"!", "x":5.5, "y":1.25}, {"label":"@", "x":6.5, "y":1.25}, {"label":"#", "x":7.5, "y":1.25}, {"label":"$", "x":8.5, "y":1.25}, {"label":"%", "x":9.5, "y":1.25}, {"label":"^", "x":10.5, "y":1.25}, {"label":"&", "x":11.5, "y":1.25}, {"label":"*", "x":12.5, "y":1.25}, {"label":"(", "x":13.5, "y":1.25}, {"label":")", "x":14.5, "y":1.25}, {"label":"_", "x":15.5, "y":1.25}, {"label":"+", "x":16.5, "y":1.25}, {"label":"Backspace", "x":17.5, "y":1.25, "w":2}, {"label":"Num Lock", "x":20, "y":1.25}, {"label":"/", "x":21, "y":1.25}, {"label":"*", "x":22, "y":1.25}, {"label":"-", "x":23, "y":1.25},
{"label":"PgUp", "x":2, "y":0}, {"label":"+", "x":0, "y":2.25, "h":2}, {"label":"7", "x":1, "y":2.25}, {"label":"8", "x":2, "y":2.25}, {"label":"9", "x":3, "y":2.25}, {"label":"Tab", "x":4.5, "y":2.25, "w":1.5}, {"label":"Q", "x":6, "y":2.25}, {"label":"W", "x":7, "y":2.25}, {"label":"E", "x":8, "y":2.25}, {"label":"R", "x":9, "y":2.25}, {"label":"T", "x":10, "y":2.25}, {"label":"Y", "x":11, "y":2.25}, {"label":"U", "x":12, "y":2.25}, {"label":"I", "x":13, "y":2.25}, {"label":"O", "x":14, "y":2.25}, {"label":"P", "x":15, "y":2.25}, {"label":"{", "x":16, "y":2.25}, {"label":"}", "x":17, "y":2.25}, {"label":"|", "x":18, "y":2.25, "w":1.5}, {"label":"7", "x":20, "y":2.25}, {"label":"8", "x":21, "y":2.25}, {"label":"9", "x":22, "y":2.25}, {"label":"+", "x":23, "y":2.25, "h":2},
{"label":"PgDn", "x":3, "y":0}, {"label":"4", "x":1, "y":3.25}, {"label":"5", "x":2, "y":3.25}, {"label":"6", "x":3, "y":3.25}, {"label":"Caps Lock", "x":4.5, "y":3.25, "w":1.75}, {"label":"A", "x":6.25, "y":3.25}, {"label":"S", "x":7.25, "y":3.25}, {"label":"D", "x":8.25, "y":3.25}, {"label":"F", "x":9.25, "y":3.25}, {"label":"G", "x":10.25, "y":3.25}, {"label":"H", "x":11.25, "y":3.25}, {"label":"J", "x":12.25, "y":3.25}, {"label":"K", "x":13.25, "y":3.25}, {"label":"L", "x":14.25, "y":3.25}, {"label":":", "x":15.25, "y":3.25}, {"label":"\"", "x":16.25, "y":3.25}, {"label":"Enter", "x":17.25, "y":3.25, "w":2.25}, {"label":"4", "x":20, "y":3.25}, {"label":"5", "x":21, "y":3.25}, {"label":"6", "x":22, "y":3.25},
{"label":"Esc", "x":4.75, "y":0}, {"label":"Enter", "x":0, "y":4.25, "h":2}, {"label":"1", "x":1, "y":4.25}, {"label":"2", "x":2, "y":4.25}, {"label":"3", "x":3, "y":4.25}, {"label":"\\u2191", "x":4.25, "y":4.5}, {"label":"Shift", "x":5.5, "y":4.25, "w":1.25}, {"label":"Z", "x":6.75, "y":4.25}, {"label":"X", "x":7.75, "y":4.25}, {"label":"C", "x":8.75, "y":4.25}, {"label":"V", "x":9.75, "y":4.25}, {"label":"B", "x":10.75, "y":4.25}, {"label":"N", "x":11.75, "y":4.25}, {"label":"M", "x":12.75, "y":4.25}, {"label":"<", "x":13.75, "y":4.25}, {"label":">", "x":14.75, "y":4.25}, {"label":"?", "x":15.75, "y":4.25}, {"label":"Shift", "x":16.75, "y":4.25, "w":1.75}, {"label":"\\u2191", "x":18.75, "y":4.5}, {"label":"1", "x":20, "y":4.25}, {"label":"2", "x":21, "y":4.25}, {"label":"3", "x":22, "y":4.25}, {"label":"Enter", "x":23, "y":4.25, "h":2},
{"label":"F1", "x":6.25, "y":0}, {"label":"0", "x":1, "y":5.25}, {"label":".", "x":2, "y":5.25}, {"label":"\\u2190", "x":3.25, "y":5.5}, {"label":"\\u2193", "x":4.25, "y":5.5}, {"label":"\\u2192", "x":5.25, "y":5.5}, {"label":"Ctrl", "x":6.5, "y":5.25}, {"label":"Win", "x":7.5, "y":5.25}, {"label":"Alt", "x":8.5, "y":5.25}, {"label":"1u", "x":9.5, "y":5.25}, {"label":"1u", "x":10.5, "y":5.25}, {"label":"1u", "x":11.5, "y":5.25}, {"label":"1u", "x":12.5, "y":5.25}, {"label":"Alt", "x":13.5, "y":5.25}, {"label":"Win", "x":14.5, "y":5.25}, {"label":"Menu", "x":15.5, "y":5.25}, {"label":"Ctrl", "x":16.5, "y":5.25}, {"label":"\\u2190", "x":17.75, "y":5.5}, {"label":"\\u2193", "x":18.75, "y":5.5}, {"label":"\\u2192", "x":19.75, "y":5.5}, {"label":"0", "x":21, "y":5.25}, {"label":".", "x":22, "y":5.25}
{"label":"F2", "x":7.25, "y":0},
{"label":"F3", "x":8.25, "y":0},
{"label":"F4", "x":9.25, "y":0},
{"label":"F5", "x":10.75, "y":0},
{"label":"F6", "x":11.75, "y":0},
{"label":"F7", "x":12.75, "y":0},
{"label":"F8", "x":13.75, "y":0},
{"label":"F9", "x":15.25, "y":0},
{"label":"F10", "x":16.25, "y":0},
{"label":"F11", "x":17.25, "y":0},
{"label":"F12", "x":18.25, "y":0},
{"label":"PrtSc", "x":20, "y":0},
{"label":"Scroll Lock", "x":21, "y":0},
{"label":"Pause", "x":22, "y":0},
{"label":"Insert", "x":23, "y":0},
{"label":"-", "x":0, "y":1.25},
{"label":"Num Lock", "x":1, "y":1.25},
{"label":"/", "x":2, "y":1.25},
{"label":"*", "x":3, "y":1.25},
{"label":"~", "x":4.5, "y":1.25},
{"label":"!", "x":5.5, "y":1.25},
{"label":"@", "x":6.5, "y":1.25},
{"label":"#", "x":7.5, "y":1.25},
{"label":"$", "x":8.5, "y":1.25},
{"label":"%", "x":9.5, "y":1.25},
{"label":"^", "x":10.5, "y":1.25},
{"label":"&", "x":11.5, "y":1.25},
{"label":"*", "x":12.5, "y":1.25},
{"label":"(", "x":13.5, "y":1.25},
{"label":")", "x":14.5, "y":1.25},
{"label":"_", "x":15.5, "y":1.25},
{"label":"+", "x":16.5, "y":1.25},
{"label":"Backspace", "x":17.5, "y":1.25, "w":2},
{"label":"Num Lock", "x":20, "y":1.25},
{"label":"/", "x":21, "y":1.25},
{"label":"*", "x":22, "y":1.25},
{"label":"-", "x":23, "y":1.25},
{"label":"+", "x":0, "y":2.25, "h":2},
{"label":"7", "x":1, "y":2.25},
{"label":"8", "x":2, "y":2.25},
{"label":"9", "x":3, "y":2.25},
{"label":"Tab", "x":4.5, "y":2.25, "w":1.5},
{"label":"Q", "x":6, "y":2.25},
{"label":"W", "x":7, "y":2.25},
{"label":"E", "x":8, "y":2.25},
{"label":"R", "x":9, "y":2.25},
{"label":"T", "x":10, "y":2.25},
{"label":"Y", "x":11, "y":2.25},
{"label":"U", "x":12, "y":2.25},
{"label":"I", "x":13, "y":2.25},
{"label":"O", "x":14, "y":2.25},
{"label":"P", "x":15, "y":2.25},
{"label":"{", "x":16, "y":2.25},
{"label":"}", "x":17, "y":2.25},
{"label":"|", "x":18, "y":2.25, "w":1.5},
{"label":"7", "x":20, "y":2.25},
{"label":"8", "x":21, "y":2.25},
{"label":"9", "x":22, "y":2.25},
{"label":"+", "x":23, "y":2.25, "h":2},
{"label":"4", "x":1, "y":3.25},
{"label":"5", "x":2, "y":3.25},
{"label":"6", "x":3, "y":3.25},
{"label":"Caps Lock", "x":4.5, "y":3.25, "w":1.75},
{"label":"A", "x":6.25, "y":3.25},
{"label":"S", "x":7.25, "y":3.25},
{"label":"D", "x":8.25, "y":3.25},
{"label":"F", "x":9.25, "y":3.25},
{"label":"G", "x":10.25, "y":3.25},
{"label":"H", "x":11.25, "y":3.25},
{"label":"J", "x":12.25, "y":3.25},
{"label":"K", "x":13.25, "y":3.25},
{"label":"L", "x":14.25, "y":3.25},
{"label":":", "x":15.25, "y":3.25},
{"label":"\"", "x":16.25, "y":3.25},
{"label":"Enter", "x":17.25, "y":3.25, "w":2.25},
{"label":"4", "x":20, "y":3.25},
{"label":"5", "x":21, "y":3.25},
{"label":"6", "x":22, "y":3.25},
{"label":"Enter", "x":0, "y":4.25, "h":2},
{"label":"1", "x":1, "y":4.25},
{"label":"2", "x":2, "y":4.25},
{"label":"3", "x":3, "y":4.25},
{"label":"\\u2191", "x":4.25, "y":4.5},
{"label":"Shift", "x":5.5, "y":4.25, "w":1.25},
{"label":"Z", "x":6.75, "y":4.25},
{"label":"X", "x":7.75, "y":4.25},
{"label":"C", "x":8.75, "y":4.25},
{"label":"V", "x":9.75, "y":4.25},
{"label":"B", "x":10.75, "y":4.25},
{"label":"N", "x":11.75, "y":4.25},
{"label":"M", "x":12.75, "y":4.25},
{"label":"<", "x":13.75, "y":4.25},
{"label":">", "x":14.75, "y":4.25},
{"label":"?", "x":15.75, "y":4.25},
{"label":"Shift", "x":16.75, "y":4.25, "w":1.75},
{"label":"\\u2191", "x":18.75, "y":4.5},
{"label":"1", "x":20, "y":4.25},
{"label":"2", "x":21, "y":4.25},
{"label":"3", "x":22, "y":4.25},
{"label":"Enter", "x":23, "y":4.25, "h":2},
{"label":"0", "x":1, "y":5.25},
{"label":".", "x":2, "y":5.25},
{"label":"\\u2190", "x":3.25, "y":5.5},
{"label":"\\u2193", "x":4.25, "y":5.5},
{"label":"\\u2192", "x":5.25, "y":5.5},
{"label":"Ctrl", "x":6.5, "y":5.25},
{"label":"Win", "x":7.5, "y":5.25},
{"label":"Alt", "x":8.5, "y":5.25},
{"label":"1u", "x":9.5, "y":5.25},
{"label":"1u", "x":10.5, "y":5.25},
{"label":"1u", "x":11.5, "y":5.25},
{"label":"1u", "x":12.5, "y":5.25},
{"label":"Alt", "x":13.5, "y":5.25},
{"label":"Win", "x":14.5, "y":5.25},
{"label":"Menu", "x":15.5, "y":5.25},
{"label":"Ctrl", "x":16.5, "y":5.25},
{"label":"\\u2190", "x":17.75, "y":5.5},
{"label":"\\u2193", "x":18.75, "y":5.5},
{"label":"\\u2192", "x":19.75, "y":5.5},
{"label":"0", "x":21, "y":5.25},
{"label":".", "x":22, "y":5.25}
] ]
}, },
"LAYOUT_7u_space": { "LAYOUT_7u_space": {
"key_count": 121, "key_count": 121,
"layout": [ "layout": [
{"label":"k00", "x":0, "y":0}, {"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4.75, "y":0}, {"label":"k06", "x":6.25, "y":0}, {"label":"k07", "x":7.25, "y":0}, {"label":"k08", "x":8.25, "y":0}, {"label":"k09", "x":9.25, "y":0}, {"label":"k0a", "x":10.75, "y":0}, {"label":"k60", "x":11.75, "y":0}, {"label":"k61", "x":12.75, "y":0}, {"label":"k62", "x":13.75, "y":0}, {"label":"k63", "x":15.25, "y":0}, {"label":"k64", "x":16.25, "y":0}, {"label":"k65", "x":17.25, "y":0}, {"label":"k66", "x":18.25, "y":0}, {"label":"k67", "x":20, "y":0}, {"label":"k68", "x":21, "y":0}, {"label":"k69", "x":22, "y":0}, {"label":"k6a", "x":23, "y":0},
{"label":"k01", "x":1, "y":0}, {"label":"k10", "x":0, "y":1.25}, {"label":"k11", "x":1, "y":1.25}, {"label":"k12", "x":2, "y":1.25}, {"label":"k13", "x":3, "y":1.25}, {"label":"k14", "x":4.5, "y":1.25}, {"label":"k15", "x":5.5, "y":1.25}, {"label":"k16", "x":6.5, "y":1.25}, {"label":"k17", "x":7.5, "y":1.25}, {"label":"k18", "x":8.5, "y":1.25}, {"label":"k19", "x":9.5, "y":1.25}, {"label":"k0a", "x":10.5, "y":1.25}, {"label":"k70", "x":11.5, "y":1.25}, {"label":"k71", "x":12.5, "y":1.25}, {"label":"k72", "x":13.5, "y":1.25}, {"label":"k73", "x":14.5, "y":1.25}, {"label":"k74", "x":15.5, "y":1.25}, {"label":"k75", "x":16.5, "y":1.25}, {"label":"k76", "x":17.5, "y":1.25, "w":2}, {"label":"k77", "x":20, "y":1.25}, {"label":"k78", "x":21, "y":1.25}, {"label":"k79", "x":22, "y":1.25}, {"label":"k7a", "x":23, "y":1.25},
{"label":"k02", "x":2, "y":0}, {"label":"k20", "x":0, "y":2.25, "h":2}, {"label":"k21", "x":1, "y":2.25}, {"label":"k22", "x":2, "y":2.25}, {"label":"k23", "x":3, "y":2.25}, {"label":"k24", "x":4.5, "y":2.25, "w":1.5}, {"label":"k25", "x":6, "y":2.25}, {"label":"k26", "x":7, "y":2.25}, {"label":"k27", "x":8, "y":2.25}, {"label":"k28", "x":9, "y":2.25}, {"label":"k29", "x":10, "y":2.25}, {"label":"k2a", "x":11, "y":2.25}, {"label":"k80", "x":12, "y":2.25}, {"label":"k81", "x":13, "y":2.25}, {"label":"k82", "x":14, "y":2.25}, {"label":"k83", "x":15, "y":2.25}, {"label":"k84", "x":16, "y":2.25}, {"label":"k85", "x":17, "y":2.25}, {"label":"k86", "x":18, "y":2.25, "w":1.5}, {"label":"k87", "x":20, "y":2.25}, {"label":"k88", "x":21, "y":2.25}, {"label":"k89", "x":22, "y":2.25}, {"label":"k8a", "x":23, "y":2.25, "h":2},
{"label":"k03", "x":3, "y":0}, {"label":"k31", "x":1, "y":3.25}, {"label":"k32", "x":2, "y":3.25}, {"label":"k33", "x":3, "y":3.25}, {"label":"k34", "x":4.5, "y":3.25, "w":1.75}, {"label":"k35", "x":6.25, "y":3.25}, {"label":"k36", "x":7.25, "y":3.25}, {"label":"k37", "x":8.25, "y":3.25}, {"label":"k38", "x":9.25, "y":3.25}, {"label":"k39", "x":10.25, "y":3.25}, {"label":"k3a", "x":11.25, "y":3.25}, {"label":"k90", "x":12.25, "y":3.25}, {"label":"k91", "x":13.25, "y":3.25}, {"label":"k92", "x":14.25, "y":3.25}, {"label":"k93", "x":15.25, "y":3.25}, {"label":"k94", "x":16.25, "y":3.25}, {"label":"k95", "x":17.25, "y":3.25, "w":2.25}, {"label":"k97", "x":20, "y":3.25}, {"label":"k98", "x":21, "y":3.25}, {"label":"k99", "x":22, "y":3.25},
{"label":"k04", "x":4.75, "y":0}, {"label":"k40", "x":0, "y":4.25, "h":2}, {"label":"k41", "x":1, "y":4.25}, {"label":"k42", "x":2, "y":4.25}, {"label":"k43", "x":3, "y":4.25}, {"label":"k45", "x":5.5, "y":4.25, "w":1.25}, {"label":"k46", "x":6.75, "y":4.25}, {"label":"k47", "x":7.75, "y":4.25}, {"label":"k48", "x":8.75, "y":4.25}, {"label":"k49", "x":9.75, "y":4.25}, {"label":"k4a", "x":10.75, "y":4.25}, {"label":"ka0", "x":11.75, "y":4.25}, {"label":"ka1", "x":12.75, "y":4.25}, {"label":"ka2", "x":13.75, "y":4.25}, {"label":"ka3", "x":14.75, "y":4.25}, {"label":"ka4", "x":15.75, "y":4.25}, {"label":"ka5", "x":16.75, "y":4.25, "w":1.75}, {"label":"ka7", "x":20, "y":4.25}, {"label":"ka8", "x":21, "y":4.25}, {"label":"ka9", "x":22, "y":4.25}, {"label":"kaa", "x":23, "y":4.25, "h":2}, {"label":"k44", "x":4.25, "y":4.5}, {"label":"k96", "x":18.75, "y":4.5},
{"label":"k06", "x":6.25, "y":0}, {"label":"k51", "x":1, "y":5.25}, {"label":"k52", "x":2, "y":5.25}, {"label":"k56", "x":6.5, "y":5.25}, {"label":"k57", "x":7.5, "y":5.25}, {"label":"kb0", "x":8.5, "y":5.25, "w":7}, {"label":"kb4", "x":15.5, "y":5.25}, {"label":"kb5", "x":16.5, "y":5.25}, {"label":"kb8", "x":21, "y":5.25}, {"label":"kb9", "x":22, "y":5.25}, {"label":"k53", "x":3.25, "y":5.5}, {"label":"k54", "x":4.25, "y":5.5}, {"label":"k55", "x":5.25, "y":5.5}, {"label":"ka6", "x":17.75, "y":5.5}, {"label":"kb6", "x":18.75, "y":5.5}, {"label":"kb7", "x":19.75, "y":5.5}
{"label":"k07", "x":7.25, "y":0},
{"label":"k08", "x":8.25, "y":0},
{"label":"k09", "x":9.25, "y":0},
{"label":"k0a", "x":10.75, "y":0},
{"label":"k60", "x":11.75, "y":0},
{"label":"k61", "x":12.75, "y":0},
{"label":"k62", "x":13.75, "y":0},
{"label":"k63", "x":15.25, "y":0},
{"label":"k64", "x":16.25, "y":0},
{"label":"k65", "x":17.25, "y":0},
{"label":"k66", "x":18.25, "y":0},
{"label":"k67", "x":20, "y":0},
{"label":"k68", "x":21, "y":0},
{"label":"k69", "x":22, "y":0},
{"label":"k6a", "x":23, "y":0},
{"label":"k10", "x":0, "y":1.25},
{"label":"k11", "x":1, "y":1.25},
{"label":"k12", "x":2, "y":1.25},
{"label":"k13", "x":3, "y":1.25},
{"label":"k14", "x":4.5, "y":1.25},
{"label":"k15", "x":5.5, "y":1.25},
{"label":"k16", "x":6.5, "y":1.25},
{"label":"k17", "x":7.5, "y":1.25},
{"label":"k18", "x":8.5, "y":1.25},
{"label":"k19", "x":9.5, "y":1.25},
{"label":"k0a", "x":10.5, "y":1.25},
{"label":"k70", "x":11.5, "y":1.25},
{"label":"k71", "x":12.5, "y":1.25},
{"label":"k72", "x":13.5, "y":1.25},
{"label":"k73", "x":14.5, "y":1.25},
{"label":"k74", "x":15.5, "y":1.25},
{"label":"k75", "x":16.5, "y":1.25},
{"label":"k76", "x":17.5, "y":1.25, "w":2},
{"label":"k77", "x":20, "y":1.25},
{"label":"k78", "x":21, "y":1.25},
{"label":"k79", "x":22, "y":1.25},
{"label":"k7a", "x":23, "y":1.25},
{"label":"k20", "x":0, "y":2.25, "h":2},
{"label":"k21", "x":1, "y":2.25},
{"label":"k22", "x":2, "y":2.25},
{"label":"k23", "x":3, "y":2.25},
{"label":"k24", "x":4.5, "y":2.25, "w":1.5},
{"label":"k25", "x":6, "y":2.25},
{"label":"k26", "x":7, "y":2.25},
{"label":"k27", "x":8, "y":2.25},
{"label":"k28", "x":9, "y":2.25},
{"label":"k29", "x":10, "y":2.25},
{"label":"k2a", "x":11, "y":2.25},
{"label":"k80", "x":12, "y":2.25},
{"label":"k81", "x":13, "y":2.25},
{"label":"k82", "x":14, "y":2.25},
{"label":"k83", "x":15, "y":2.25},
{"label":"k84", "x":16, "y":2.25},
{"label":"k85", "x":17, "y":2.25},
{"label":"k86", "x":18, "y":2.25, "w":1.5},
{"label":"k87", "x":20, "y":2.25},
{"label":"k88", "x":21, "y":2.25},
{"label":"k89", "x":22, "y":2.25},
{"label":"k8a", "x":23, "y":2.25, "h":2},
{"label":"k31", "x":1, "y":3.25},
{"label":"k32", "x":2, "y":3.25},
{"label":"k33", "x":3, "y":3.25},
{"label":"k34", "x":4.5, "y":3.25, "w":1.75},
{"label":"k35", "x":6.25, "y":3.25},
{"label":"k36", "x":7.25, "y":3.25},
{"label":"k37", "x":8.25, "y":3.25},
{"label":"k38", "x":9.25, "y":3.25},
{"label":"k39", "x":10.25, "y":3.25},
{"label":"k3a", "x":11.25, "y":3.25},
{"label":"k90", "x":12.25, "y":3.25},
{"label":"k91", "x":13.25, "y":3.25},
{"label":"k92", "x":14.25, "y":3.25},
{"label":"k93", "x":15.25, "y":3.25},
{"label":"k94", "x":16.25, "y":3.25},
{"label":"k95", "x":17.25, "y":3.25, "w":2.25},
{"label":"k97", "x":20, "y":3.25},
{"label":"k98", "x":21, "y":3.25},
{"label":"k99", "x":22, "y":3.25},
{"label":"k40", "x":0, "y":4.25, "h":2},
{"label":"k41", "x":1, "y":4.25},
{"label":"k42", "x":2, "y":4.25},
{"label":"k43", "x":3, "y":4.25},
{"label":"k45", "x":5.5, "y":4.25, "w":1.25},
{"label":"k46", "x":6.75, "y":4.25},
{"label":"k47", "x":7.75, "y":4.25},
{"label":"k48", "x":8.75, "y":4.25},
{"label":"k49", "x":9.75, "y":4.25},
{"label":"k4a", "x":10.75, "y":4.25},
{"label":"ka0", "x":11.75, "y":4.25},
{"label":"ka1", "x":12.75, "y":4.25},
{"label":"ka2", "x":13.75, "y":4.25},
{"label":"ka3", "x":14.75, "y":4.25},
{"label":"ka4", "x":15.75, "y":4.25},
{"label":"ka5", "x":16.75, "y":4.25, "w":1.75},
{"label":"ka7", "x":20, "y":4.25},
{"label":"ka8", "x":21, "y":4.25},
{"label":"ka9", "x":22, "y":4.25},
{"label":"kaa", "x":23, "y":4.25, "h":2},
{"label":"k44", "x":4.25, "y":4.5},
{"label":"k96", "x":18.75, "y":4.5},
{"label":"k51", "x":1, "y":5.25},
{"label":"k52", "x":2, "y":5.25},
{"label":"k56", "x":6.5, "y":5.25},
{"label":"k57", "x":7.5, "y":5.25},
{"label":"kb0", "x":8.5, "y":5.25, "w":7},
{"label":"kb4", "x":15.5, "y":5.25},
{"label":"kb5", "x":16.5, "y":5.25},
{"label":"kb8", "x":21, "y":5.25},
{"label":"kb9", "x":22, "y":5.25},
{"label":"k53", "x":3.25, "y":5.5},
{"label":"k54", "x":4.25, "y":5.5},
{"label":"k55", "x":5.25, "y":5.5},
{"label":"ka6", "x":17.75, "y":5.5},
{"label":"kb6", "x":18.75, "y":5.5},
{"label":"kb7", "x":19.75, "y":5.5}
] ]
}, },
"LAYOUT_4u_space": { "LAYOUT_4u_space": {
"key_count": 124, "key_count": 124,
"layout": [ "layout": [
{"label":"k00", "x":0, "y":0}, {"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4.75, "y":0}, {"label":"k06", "x":6.25, "y":0}, {"label":"k07", "x":7.25, "y":0}, {"label":"k08", "x":8.25, "y":0}, {"label":"k09", "x":9.25, "y":0}, {"label":"k0a", "x":10.75, "y":0}, {"label":"k60", "x":11.75, "y":0}, {"label":"k61", "x":12.75, "y":0}, {"label":"k62", "x":13.75, "y":0}, {"label":"k63", "x":15.25, "y":0}, {"label":"k64", "x":16.25, "y":0}, {"label":"k65", "x":17.25, "y":0}, {"label":"k66", "x":18.25, "y":0}, {"label":"k67", "x":20, "y":0}, {"label":"k68", "x":21, "y":0}, {"label":"k69", "x":22, "y":0}, {"label":"k6a", "x":23, "y":0},
{"label":"k01", "x":1, "y":0}, {"label":"k10", "x":0, "y":1.25}, {"label":"k11", "x":1, "y":1.25}, {"label":"k12", "x":2, "y":1.25}, {"label":"k13", "x":3, "y":1.25}, {"label":"k14", "x":4.5, "y":1.25}, {"label":"k15", "x":5.5, "y":1.25}, {"label":"k16", "x":6.5, "y":1.25}, {"label":"k17", "x":7.5, "y":1.25}, {"label":"k18", "x":8.5, "y":1.25}, {"label":"k19", "x":9.5, "y":1.25}, {"label":"k0a", "x":10.5, "y":1.25}, {"label":"k70", "x":11.5, "y":1.25}, {"label":"k71", "x":12.5, "y":1.25}, {"label":"k72", "x":13.5, "y":1.25}, {"label":"k73", "x":14.5, "y":1.25}, {"label":"k74", "x":15.5, "y":1.25}, {"label":"k75", "x":16.5, "y":1.25}, {"label":"k76", "x":17.5, "y":1.25, "w":2}, {"label":"k77", "x":20, "y":1.25}, {"label":"k78", "x":21, "y":1.25}, {"label":"k79", "x":22, "y":1.25}, {"label":"k7a", "x":23, "y":1.25},
{"label":"k02", "x":2, "y":0}, {"label":"k20", "x":0, "y":2.25, "h":2}, {"label":"k21", "x":1, "y":2.25}, {"label":"k22", "x":2, "y":2.25}, {"label":"k23", "x":3, "y":2.25}, {"label":"k24", "x":4.5, "y":2.25, "w":1.5}, {"label":"k25", "x":6, "y":2.25}, {"label":"k26", "x":7, "y":2.25}, {"label":"k27", "x":8, "y":2.25}, {"label":"k28", "x":9, "y":2.25}, {"label":"k29", "x":10, "y":2.25}, {"label":"k2a", "x":11, "y":2.25}, {"label":"k80", "x":12, "y":2.25}, {"label":"k81", "x":13, "y":2.25}, {"label":"k82", "x":14, "y":2.25}, {"label":"k83", "x":15, "y":2.25}, {"label":"k84", "x":16, "y":2.25}, {"label":"k85", "x":17, "y":2.25}, {"label":"k86", "x":18, "y":2.25, "w":1.5}, {"label":"k87", "x":20, "y":2.25}, {"label":"k88", "x":21, "y":2.25}, {"label":"k89", "x":22, "y":2.25}, {"label":"k8a", "x":23, "y":2.25, "h":2},
{"label":"k03", "x":3, "y":0}, {"label":"k31", "x":1, "y":3.25}, {"label":"k32", "x":2, "y":3.25}, {"label":"k33", "x":3, "y":3.25}, {"label":"k34", "x":4.5, "y":3.25, "w":1.75}, {"label":"k35", "x":6.25, "y":3.25}, {"label":"k36", "x":7.25, "y":3.25}, {"label":"k37", "x":8.25, "y":3.25}, {"label":"k38", "x":9.25, "y":3.25}, {"label":"k39", "x":10.25, "y":3.25}, {"label":"k3a", "x":11.25, "y":3.25}, {"label":"k90", "x":12.25, "y":3.25}, {"label":"k91", "x":13.25, "y":3.25}, {"label":"k92", "x":14.25, "y":3.25}, {"label":"k93", "x":15.25, "y":3.25}, {"label":"k94", "x":16.25, "y":3.25}, {"label":"k95", "x":17.25, "y":3.25, "w":2.25}, {"label":"k97", "x":20, "y":3.25}, {"label":"k98", "x":21, "y":3.25}, {"label":"k99", "x":22, "y":3.25},
{"label":"k04", "x":4.75, "y":0}, {"label":"k40", "x":0, "y":4.25, "h":2}, {"label":"k41", "x":1, "y":4.25}, {"label":"k42", "x":2, "y":4.25}, {"label":"k43", "x":3, "y":4.25}, {"label":"k45", "x":5.5, "y":4.25, "w":1.25}, {"label":"k46", "x":6.75, "y":4.25}, {"label":"k47", "x":7.75, "y":4.25}, {"label":"k48", "x":8.75, "y":4.25}, {"label":"k49", "x":9.75, "y":4.25}, {"label":"k4a", "x":10.75, "y":4.25}, {"label":"ka0", "x":11.75, "y":4.25}, {"label":"ka1", "x":12.75, "y":4.25}, {"label":"ka2", "x":13.75, "y":4.25}, {"label":"ka3", "x":14.75, "y":4.25}, {"label":"ka4", "x":15.75, "y":4.25}, {"label":"ka5", "x":16.75, "y":4.25, "w":1.75}, {"label":"ka7", "x":20, "y":4.25}, {"label":"ka8", "x":21, "y":4.25}, {"label":"ka9", "x":22, "y":4.25}, {"label":"kaa", "x":23, "y":4.25, "h":2}, {"label":"k44", "x":4.25, "y":4.5}, {"label":"k96", "x":18.75, "y":4.5},
{"label":"k06", "x":6.25, "y":0}, {"label":"k51", "x":1, "y":5.25}, {"label":"k52", "x":2, "y":5.25}, {"label":"k56", "x":6.5, "y":5.25}, {"label":"k57", "x":7.5, "y":5.25}, {"label":"k58", "x":8.5, "y":5.25}, {"label":"kb0", "x":9.5, "y":5.25, "w":4}, {"label":"kb2", "x":13.5, "y":5.25}, {"label":"kb3", "x":14.5, "y":5.25}, {"label":"kb4", "x":15.5, "y":5.25}, {"label":"kb5", "x":16.5, "y":5.25}, {"label":"kb8", "x":21, "y":5.25}, {"label":"kb9", "x":22, "y":5.25}, {"label":"k53", "x":3.25, "y":5.5}, {"label":"k54", "x":4.25, "y":5.5}, {"label":"k55", "x":5.25, "y":5.5}, {"label":"ka6", "x":17.75, "y":5.5}, {"label":"kb6", "x":18.75, "y":5.5}, {"label":"kb7", "x":19.75, "y":5.5}
{"label":"k07", "x":7.25, "y":0},
{"label":"k08", "x":8.25, "y":0},
{"label":"k09", "x":9.25, "y":0},
{"label":"k0a", "x":10.75, "y":0},
{"label":"k60", "x":11.75, "y":0},
{"label":"k61", "x":12.75, "y":0},
{"label":"k62", "x":13.75, "y":0},
{"label":"k63", "x":15.25, "y":0},
{"label":"k64", "x":16.25, "y":0},
{"label":"k65", "x":17.25, "y":0},
{"label":"k66", "x":18.25, "y":0},
{"label":"k67", "x":20, "y":0},
{"label":"k68", "x":21, "y":0},
{"label":"k69", "x":22, "y":0},
{"label":"k6a", "x":23, "y":0},
{"label":"k10", "x":0, "y":1.25},
{"label":"k11", "x":1, "y":1.25},
{"label":"k12", "x":2, "y":1.25},
{"label":"k13", "x":3, "y":1.25},
{"label":"k14", "x":4.5, "y":1.25},
{"label":"k15", "x":5.5, "y":1.25},
{"label":"k16", "x":6.5, "y":1.25},
{"label":"k17", "x":7.5, "y":1.25},
{"label":"k18", "x":8.5, "y":1.25},
{"label":"k19", "x":9.5, "y":1.25},
{"label":"k0a", "x":10.5, "y":1.25},
{"label":"k70", "x":11.5, "y":1.25},
{"label":"k71", "x":12.5, "y":1.25},
{"label":"k72", "x":13.5, "y":1.25},
{"label":"k73", "x":14.5, "y":1.25},
{"label":"k74", "x":15.5, "y":1.25},
{"label":"k75", "x":16.5, "y":1.25},
{"label":"k76", "x":17.5, "y":1.25, "w":2},
{"label":"k77", "x":20, "y":1.25},
{"label":"k78", "x":21, "y":1.25},
{"label":"k79", "x":22, "y":1.25},
{"label":"k7a", "x":23, "y":1.25},
{"label":"k20", "x":0, "y":2.25, "h":2},
{"label":"k21", "x":1, "y":2.25},
{"label":"k22", "x":2, "y":2.25},
{"label":"k23", "x":3, "y":2.25},
{"label":"k24", "x":4.5, "y":2.25, "w":1.5},
{"label":"k25", "x":6, "y":2.25},
{"label":"k26", "x":7, "y":2.25},
{"label":"k27", "x":8, "y":2.25},
{"label":"k28", "x":9, "y":2.25},
{"label":"k29", "x":10, "y":2.25},
{"label":"k2a", "x":11, "y":2.25},
{"label":"k80", "x":12, "y":2.25},
{"label":"k81", "x":13, "y":2.25},
{"label":"k82", "x":14, "y":2.25},
{"label":"k83", "x":15, "y":2.25},
{"label":"k84", "x":16, "y":2.25},
{"label":"k85", "x":17, "y":2.25},
{"label":"k86", "x":18, "y":2.25, "w":1.5},
{"label":"k87", "x":20, "y":2.25},
{"label":"k88", "x":21, "y":2.25},
{"label":"k89", "x":22, "y":2.25},
{"label":"k8a", "x":23, "y":2.25, "h":2},
{"label":"k31", "x":1, "y":3.25},
{"label":"k32", "x":2, "y":3.25},
{"label":"k33", "x":3, "y":3.25},
{"label":"k34", "x":4.5, "y":3.25, "w":1.75},
{"label":"k35", "x":6.25, "y":3.25},
{"label":"k36", "x":7.25, "y":3.25},
{"label":"k37", "x":8.25, "y":3.25},
{"label":"k38", "x":9.25, "y":3.25},
{"label":"k39", "x":10.25, "y":3.25},
{"label":"k3a", "x":11.25, "y":3.25},
{"label":"k90", "x":12.25, "y":3.25},
{"label":"k91", "x":13.25, "y":3.25},
{"label":"k92", "x":14.25, "y":3.25},
{"label":"k93", "x":15.25, "y":3.25},
{"label":"k94", "x":16.25, "y":3.25},
{"label":"k95", "x":17.25, "y":3.25, "w":2.25},
{"label":"k97", "x":20, "y":3.25},
{"label":"k98", "x":21, "y":3.25},
{"label":"k99", "x":22, "y":3.25},
{"label":"k40", "x":0, "y":4.25, "h":2},
{"label":"k41", "x":1, "y":4.25},
{"label":"k42", "x":2, "y":4.25},
{"label":"k43", "x":3, "y":4.25},
{"label":"k45", "x":5.5, "y":4.25, "w":1.25},
{"label":"k46", "x":6.75, "y":4.25},
{"label":"k47", "x":7.75, "y":4.25},
{"label":"k48", "x":8.75, "y":4.25},
{"label":"k49", "x":9.75, "y":4.25},
{"label":"k4a", "x":10.75, "y":4.25},
{"label":"ka0", "x":11.75, "y":4.25},
{"label":"ka1", "x":12.75, "y":4.25},
{"label":"ka2", "x":13.75, "y":4.25},
{"label":"ka3", "x":14.75, "y":4.25},
{"label":"ka4", "x":15.75, "y":4.25},
{"label":"ka5", "x":16.75, "y":4.25, "w":1.75},
{"label":"ka7", "x":20, "y":4.25},
{"label":"ka8", "x":21, "y":4.25},
{"label":"ka9", "x":22, "y":4.25},
{"label":"kaa", "x":23, "y":4.25, "h":2},
{"label":"k44", "x":4.25, "y":4.5},
{"label":"k96", "x":18.75, "y":4.5},
{"label":"k51", "x":1, "y":5.25},
{"label":"k52", "x":2, "y":5.25},
{"label":"k56", "x":6.5, "y":5.25},
{"label":"k57", "x":7.5, "y":5.25},
{"label":"k58", "x":8.5, "y":5.25},
{"label":"kb0", "x":9.5, "y":5.25, "w":4},
{"label":"kb2", "x":13.5, "y":5.25},
{"label":"kb3", "x":14.5, "y":5.25},
{"label":"kb4", "x":15.5, "y":5.25},
{"label":"kb5", "x":16.5, "y":5.25},
{"label":"kb8", "x":21, "y":5.25},
{"label":"kb9", "x":22, "y":5.25},
{"label":"k53", "x":3.25, "y":5.5},
{"label":"k54", "x":4.25, "y":5.5},
{"label":"k55", "x":5.25, "y":5.5},
{"label":"ka6", "x":17.75, "y":5.5},
{"label":"kb6", "x":18.75, "y":5.5},
{"label":"kb7", "x":19.75, "y":5.5}
] ]
} }
} }
@@ -14,11 +14,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef CONFIG_USER_H #pragma once
#define CONFIG_USER_H
#include "config_common.h" #include "config_common.h"
// place overrides here // place overrides here
#endif
@@ -14,11 +14,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef CONFIG_USER_H #pragma once
#define CONFIG_USER_H
#include "config_common.h" #include "config_common.h"
// place overrides here // place overrides here
#endif
@@ -14,11 +14,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef CONFIG_USER_H #pragma once
#define CONFIG_USER_H
#include "config_common.h" #include "config_common.h"
// place overrides here // place overrides here
#endif
@@ -14,11 +14,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef CONFIG_USER_H #pragma once
#define CONFIG_USER_H
#include "config_common.h" #include "config_common.h"
// place overrides here // place overrides here
#endif
@@ -14,11 +14,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef CONFIG_USER_H #pragma once
#define CONFIG_USER_H
#include "config_common.h" #include "config_common.h"
// place overrides here // place overrides here
#endif
@@ -1 +0,0 @@
MOUSEKEY_ENABLE = yes
@@ -14,11 +14,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef CONFIG_USER_H #pragma once
#define CONFIG_USER_H
#include "config_common.h" #include "config_common.h"
// place overrides here // place overrides here
#endif
@@ -1 +0,0 @@
MOUSEKEY_ENABLE = yes
+4 -4
View File
@@ -2,11 +2,11 @@
Clueboard Double 1800 All The Way Clueboard Double 1800 All The Way
Keyboard Maintainer: [Zach White](https://github.com/skullydazed) * Keyboard Maintainer: [Zach White](https://github.com/skullydazed)
Hardware Supported: Clueboard 2x1800 PCB * Hardware Supported: Clueboard 2x1800 PCB
Hardware Availability: 2018 Apr 1 Group Buy * Hardware Availability: 2018 Apr 1 Group Buy
Make example for this keyboard (after setting up your build environment): Make example for this keyboard:
make 2x1800:default make 2x1800:default
+8 -52
View File
@@ -1,64 +1,20 @@
# MCU name # MCU details
MCU = at90usb1286 MCU = at90usb1286
# Processor frequency.
# This will define a symbol, F_CPU, in all source code files equal to the
# processor frequency in Hz. You can then use this symbol in your source code to
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
# automatically to create a 32-bit value in your source code.
#
# This will be an integer division of F_USB below, as it is sourced by
# F_USB after it has run through any CPU prescalers. Note that this value
# does not *change* the processor frequency - it should merely be updated to
# reflect the processor speed set externally so that the code can use accurate
# software delays.
F_CPU = 16000000 F_CPU = 16000000
#
# LUFA specific
#
# Target architecture (see library "Board Types" documentation).
ARCH = AVR8 ARCH = AVR8
# Input clock frequency.
# This will define a symbol, F_USB, in all source code files equal to the
# input clock frequency (before any prescaling is performed) in Hz. This value may
# differ from F_CPU if prescaling is used on the latter, and is required as the
# raw input clock is fed directly to the PLL sections of the AVR for high speed
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
# at the end, this will be done automatically to create a 32-bit value in your
# source code.
#
# If no clock division is performed on the input clock inside the AVR (via the
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
F_USB = $(F_CPU) F_USB = $(F_CPU)
# Interrupt driven control endpoint task(+60)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
# Boot Section Size in *bytes*
# Teensy halfKay 512
# Teensy++ halfKay 1024
# Atmel DFU loader 4096
# LUFA bootloader 4096
# USBaspLoader 2048
OPT_DEFS += -DBOOTLOADER_SIZE=1024 OPT_DEFS += -DBOOTLOADER_SIZE=1024
# Build Options # Build Options
# change yes to no to disable BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
# MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE = no # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400) CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration COMMAND_ENABLE = no # Commands for debug and configuration
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB Nkey Rollover
NKRO_ENABLE = yes # USB Nkey Rollover
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
UNICODE_ENABLE = no # Unicode UNICODE_ENABLE = no # Unicode
RGBLIGHT_ENABLE = no # RGB on port C6 RGBLIGHT_ENABLE = yes # RGB on port C6
AUDIO_ENABLE = no # Audio output on port C4 and B7 AUDIO_ENABLE = yes # Audio output on port C4 and B7
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+8 -5
View File
@@ -19,15 +19,15 @@
#include "quantum.h" #include "quantum.h"
/* /*
* These are shortcuts to help you work with the various layout options. If your * These are shortcuts to help you work with the various layout options. If your
* keymap works with one of the LAYOUT_...() macros you are encouraged to use that * keymap works with one of the LAYOUT_...() macros you are encouraged to use that
* and to contribute your keymap to the corresponding layout in * and to contribute your keymap to the corresponding layout in
* `qmk_firmware/layouts/community`. * `qmk_firmware/layouts/community`.
*/ */
/* The fully-featured KEYMAP() that has every single key available in the matrix. /* The fully-featured LAYOUT_all() that has every single key available in the matrix.
*/ */
#define KEYMAP(\ #define LAYOUT_all(\
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, \
@@ -44,7 +44,7 @@
/* A layout that matches the Apple Extended Keyboard's main area. No split keys, /* A layout that matches the Apple Extended Keyboard's main area. No split keys,
* 3 mods on either side of the spacebar. * 3 mods on either side of the spacebar.
*/ */
#define KEYMAP_AEK(\ #define LAYOUT_aek(\
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2e, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2e, \
@@ -102,4 +102,7 @@
{ k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, KC_NO, k3e, }, \ { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, KC_NO, k3e, }, \
{ k40, k41, k42, KC_NO, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, k4a, k4b, k4c, KC_NO, k4e, }, \ { k40, k41, k42, KC_NO, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, k4a, k4b, k4c, KC_NO, k4e, }, \
} }
#define LAYOUT LAYOUT_all
#define KEYMAP LAYOUT_all
#endif #endif
@@ -1,126 +0,0 @@
/*
ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#include "hal.h"
#if HAL_USE_PAL || defined(__DOXYGEN__)
/**
* @brief PAL setup.
* @details Digital I/O ports static configuration as defined in @p board.h.
* This variable is used by the HAL when initializing the PAL driver.
*/
const PALConfig pal_default_config = {
#if STM32_HAS_GPIOA
{VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR,
VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH},
#endif
#if STM32_HAS_GPIOB
{VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR,
VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH},
#endif
#if STM32_HAS_GPIOC
{VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR,
VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH},
#endif
#if STM32_HAS_GPIOD
{VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR,
VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH},
#endif
#if STM32_HAS_GPIOE
{VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR,
VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH},
#endif
#if STM32_HAS_GPIOF
{VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR,
VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH},
#endif
#if STM32_HAS_GPIOG
{VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR,
VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH},
#endif
#if STM32_HAS_GPIOH
{VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR,
VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH},
#endif
#if STM32_HAS_GPIOI
{VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR,
VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH}
#endif
};
#endif
void enter_bootloader_mode_if_requested(void);
/**
* @brief Early initialization code.
* @details This initialization must be performed just after stack setup
* and before any other initialization.
*/
void __early_init(void) {
enter_bootloader_mode_if_requested();
stm32_clock_init();
}
#if HAL_USE_SDC || defined(__DOXYGEN__)
/**
* @brief SDC card detection.
*/
bool sdc_lld_is_card_inserted(SDCDriver *sdcp) {
(void)sdcp;
/* TODO: Fill the implementation.*/
return true;
}
/**
* @brief SDC card write protection detection.
*/
bool sdc_lld_is_write_protected(SDCDriver *sdcp) {
(void)sdcp;
/* TODO: Fill the implementation.*/
return false;
}
#endif /* HAL_USE_SDC */
#if HAL_USE_MMC_SPI || defined(__DOXYGEN__)
/**
* @brief MMC_SPI card detection.
*/
bool mmc_lld_is_card_inserted(MMCDriver *mmcp) {
(void)mmcp;
/* TODO: Fill the implementation.*/
return true;
}
/**
* @brief MMC_SPI card write protection detection.
*/
bool mmc_lld_is_write_protected(MMCDriver *mmcp) {
(void)mmcp;
/* TODO: Fill the implementation.*/
return false;
}
#endif
/**
* @brief Board-specific initialization code.
* @todo Add your board-specific code, if any.
*/
void boardInit(void) {
}
File diff suppressed because it is too large. Load diff
@@ -1,5 +0,0 @@
# List of all the board related files.
BOARDSRC = $(BOARD_PATH)/boards/GENERIC_STM32_F303XC/board.c
# Required include directories
BOARDINC = $(BOARD_PATH)/boards/GENERIC_STM32_F303XC
-7
View File
@@ -1,7 +0,0 @@
/* Address for jumping to bootloader on STM32 chips. */
/* It is chip dependent, the correct number can be looked up here:
* http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
* This also requires a patch to chibios:
* <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
*/
#define STM32_BOOTLOADER_ADDRESS 0x1FFFD800
+15 -12
View File
@@ -15,8 +15,9 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef CONFIG_H #pragma once
#define CONFIG_H
#include "config_common.h"
/* USB Device descriptor parameter */ /* USB Device descriptor parameter */
#define VENDOR_ID 0xC1ED #define VENDOR_ID 0xC1ED
@@ -26,6 +27,12 @@
#define PRODUCT Clueboard 60% #define PRODUCT Clueboard 60%
#define DESCRIPTION Clueboard 60% #define DESCRIPTION Clueboard 60%
/* Address for jumping to bootloader on STM32 chips. */
/* It is chip dependent, the correct number can be looked up here:
* http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
*/
#define STM32_BOOTLOADER_ADDRESS 0x1FFFD800
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5
#define MATRIX_COLS 15 #define MATRIX_COLS 15
@@ -33,18 +40,16 @@
/* /*
* Keyboard Matrix Assignments * Keyboard Matrix Assignments
* *
* Change this to how you wired your keyboard * COLS: Pins used for columns, left to right
* COLS: AVR pins used for columns, left to right * ROWS: Pins used for rows, top to bottom
* ROWS: AVR pins used for rows, top to bottom
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
* *
*/ */
/* Note: These are not used for arm boards. They're here purely as documentation. #define MATRIX_ROW_PINS { B0, B1, B2, A15, A10 }
* #define MATRIX_ROW_PINS { PB0, PB1, PB2, PA15, PA10 } #define MATRIX_COL_PINS { A2, A3, A6, B14, B15, A8, A9, A7, B3, B4, C14, C15, C13, B5, B6 }
* #define MATRIX_COL_PINS { PA2, PA3, PA6, PB14, PB15, PA8, PA9, PA7, PB3, PB4, PC14, PC15, PC13, PB5, PB6 } #define UNUSED_PINS { A0, A1, A9, B7, B8, B9, B10, B11, B12, B13 }
* #define UNUSED_PINS #define DIODE_DIRECTION COL2ROW
*/
/* 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 */
#define DEBOUNCE 6 #define DEBOUNCE 6
@@ -121,8 +126,6 @@
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1 //#define MIDI_TONE_KEYCODE_OCTAVES 1
#endif
/* Backlight configuration /* Backlight configuration
*/ */
#define BACKLIGHT_LEVELS 1 #define BACKLIGHT_LEVELS 1
File diff suppressed because it is too large. Load diff
@@ -1,7 +1,5 @@
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
#define _______ KC_TRNS
enum keyboard_layers { enum keyboard_layers {
_BL, _BL,
_FL, _FL,
@@ -46,19 +44,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Ctrl |Gui|Alt | Space |Alt |Gui|Fn |Ctrl | * |Ctrl |Gui|Alt | Space |Alt |Gui|Fn |Ctrl |
* `-----------------------------------------------------------' * `-----------------------------------------------------------'
*/ */
[_BL] = KEYMAP( [_BL] = LAYOUT_all(
KC_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_GRV, KC_BSPC,\ KC_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_GRV, KC_BSPC,\
KC_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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, \
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_NUHS, KC_ENT, \ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_NUHS, KC_ENT, \
KC_LSFT, KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_BSLS, \ 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_BSLS, \
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL),
[_FL] = KEYMAP( [_FL] = LAYOUT_all(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,_______,\ KC_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, _______,_______,\
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
_______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ _______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, \ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, \
_______,_______,_______, _______, _______, _______, MO(_FL), _______), _______,_______,_______, _______, _______, _______, MO(_FL), _______),
[_CL] = KEYMAP( [_CL] = LAYOUT_all(
BL_STEP,S_BSKTC,S_ODEJY,S_RCKBY,S_DOEDR,S_SCALE,S_ONEUP,S_COIN, S_SONIC,S_ZELDA,_______,_______,_______,_______,_______,\ BL_STEP,S_BSKTC,S_ODEJY,S_RCKBY,S_DOEDR,S_SCALE,S_ONEUP,S_COIN, S_SONIC,S_ZELDA,_______,_______,_______,_______,_______,\
_______, _______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, \ _______, _______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, \
_______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ _______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
@@ -1,7 +1,5 @@
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
#define _______ KC_TRNS
enum keyboard_layers { enum keyboard_layers {
_BL, _BL,
_FL, _FL,
@@ -22,19 +20,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Ctrl |Gui|Alt | Space |Alt|Fn |Ctrl | * |Ctrl |Gui|Alt | Space |Alt|Fn |Ctrl |
* `-----------------------------------------------------------' * `-----------------------------------------------------------'
*/ */
[_BL] = KEYMAP_AEK( [_BL] = LAYOUT_aek(
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_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS,\ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS,\
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, \
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL),
[_FL] = KEYMAP_AEK( [_FL] = LAYOUT_aek(
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_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, _______, \
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,\ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,\
_______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ _______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
_______, _______, _______, _______, _______, MO(_FL), _______), _______, _______, _______, _______, _______, MO(_FL), _______),
[_CL] = KEYMAP_AEK( [_CL] = LAYOUT_aek(
BL_STEP,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ BL_STEP,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
_______, _______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______,\ _______, _______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______,\
_______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ _______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
@@ -1,7 +1,5 @@
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
#define _______ KC_TRNS
enum keyboard_layers { enum keyboard_layers {
_BL, _BL,
_FL, _FL,
@@ -47,25 +45,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Ctrl |Alt|Gui | Space |Alt |Gui|Fn |Ctrl | * |Ctrl |Alt|Gui | Space |Alt |Gui|Fn |Ctrl |
* `-----------------------------------------------------------------' * `-----------------------------------------------------------------'
*/ */
[_BL] = KEYMAP( [_BL] = LAYOUT_all(
KC_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_GRV, KC_BSPC,\ KC_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_GRV, KC_BSPC,\
KC_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_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, \
MT(MOD_LCTL, KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_NUHS, KC_ENT, \ MT(MOD_LCTL, KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_NUHS, KC_ENT, \
KC_LSFT, KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, MO(_YF), \ KC_LSFT, KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, MO(_YF), \
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL), KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL),
[_FL] = KEYMAP( [_FL] = LAYOUT_all(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,_______,\ KC_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, _______,_______,\
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
_______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ _______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, MO(_YF), \ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, MO(_YF), \
_______,_______,_______, _______, _______, _______, MO(_FL), _______), _______,_______,_______, _______, _______, _______, MO(_FL), _______),
[_CL] = KEYMAP( [_CL] = LAYOUT_all(
BL_STEP,S_BSKTC,S_ODEJY,S_RCKBY,S_DOEDR,S_SCALE,S_ONEUP,S_COIN, S_SONIC,S_ZELDA,_______,_______,_______,_______,_______,\ BL_STEP,S_BSKTC,S_ODEJY,S_RCKBY,S_DOEDR,S_SCALE,S_ONEUP,S_COIN, S_SONIC,S_ZELDA,_______,_______,_______,_______,_______,\
_______, _______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, \ _______, _______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, \
_______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ _______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, MO(_YF), \ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, MO(_YF), \
_______, _______, _______, _______, _______, _______, MO(_FL), _______), _______, _______, _______, _______, _______, _______, MO(_FL), _______),
[_YF] = KEYMAP( [_YF] = LAYOUT_all(
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,\ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,\
_______,_______,KC_UP ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ _______,_______,KC_UP ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
_______,KC_LEFT,KC_DOWN,KC_RIGHT,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ _______,KC_LEFT,KC_DOWN,KC_RIGHT,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
-175
View File
@@ -1,175 +0,0 @@
#include <stdint.h>
#include <stdbool.h>
#include <string.h>
#include "hal.h"
#include "timer.h"
#include "wait.h"
#include "printf.h"
#include "backlight.h"
#include "matrix.h"
/* Clueboard 60%
*
* Column pins are input with internal pull-down.
* Row pins are output and strobe with high.
* Key is high or 1 when it turns on.
*
* col: { PA2, PA3, PA6, PB14, PB15, PA8, PA9, PA7, PB3, PB4, PC15, PC14, PC13, PB5, PB6 }
* row: { PB0, PB1, PB2, PA15, PA10 }
*/
/* matrix state(1:on, 0:off) */
static matrix_row_t matrix[MATRIX_ROWS];
static matrix_row_t matrix_debouncing[MATRIX_COLS];
static bool debouncing = false;
static uint16_t debouncing_time = 0;
__attribute__ ((weak))
void matrix_init_user(void) {}
__attribute__ ((weak))
void matrix_scan_user(void) {}
__attribute__ ((weak))
void matrix_init_kb(void) {
matrix_init_user();
}
__attribute__ ((weak))
void matrix_scan_kb(void) {
matrix_scan_user();
}
void matrix_init(void) {
printf("matrix init\n");
//debug_matrix = true;
/* Column(sense) */
palSetPadMode(GPIOA, 2, PAL_MODE_OUTPUT_PUSHPULL);
palSetPadMode(GPIOA, 3, PAL_MODE_OUTPUT_PUSHPULL);
palSetPadMode(GPIOA, 6, PAL_MODE_OUTPUT_PUSHPULL);
palSetPadMode(GPIOB, 14, PAL_MODE_OUTPUT_PUSHPULL);
palSetPadMode(GPIOB, 15, PAL_MODE_OUTPUT_PUSHPULL);
palSetPadMode(GPIOA, 8, PAL_MODE_OUTPUT_PUSHPULL);
palSetPadMode(GPIOA, 9, PAL_MODE_OUTPUT_PUSHPULL);
palSetPadMode(GPIOA, 7, PAL_MODE_OUTPUT_PUSHPULL);
palSetPadMode(GPIOB, 3, PAL_MODE_OUTPUT_PUSHPULL);
palSetPadMode(GPIOB, 4, PAL_MODE_OUTPUT_PUSHPULL);
palSetPadMode(GPIOC, 15, PAL_MODE_OUTPUT_PUSHPULL);
palSetPadMode(GPIOC, 14, PAL_MODE_OUTPUT_PUSHPULL);
palSetPadMode(GPIOC, 13, PAL_MODE_OUTPUT_PUSHPULL);
palSetPadMode(GPIOB, 5, PAL_MODE_OUTPUT_PUSHPULL);
palSetPadMode(GPIOB, 6, PAL_MODE_OUTPUT_PUSHPULL);
/* Row(strobe) */
palSetPadMode(GPIOB, 0, PAL_MODE_INPUT_PULLDOWN);
palSetPadMode(GPIOB, 1, PAL_MODE_INPUT_PULLDOWN);
palSetPadMode(GPIOB, 2, PAL_MODE_INPUT_PULLDOWN);
palSetPadMode(GPIOA, 15, PAL_MODE_INPUT_PULLDOWN);
palSetPadMode(GPIOA, 10, PAL_MODE_INPUT_PULLDOWN);
memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t));
memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_row_t));
palClearPad(GPIOB, 7); // Turn off capslock
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
for (int col = 0; col < MATRIX_COLS; col++) {
matrix_row_t data = 0;
// strobe col { PA2, PA3, PA6, PB14, PB15, PA8, PA9, PA7, PB3, PB4, PC14, PC15, PC13, PB5, PB6 }
switch (col) {
case 0: palSetPad(GPIOA, 2); break;
case 1: palSetPad(GPIOA, 3); break;
case 2: palSetPad(GPIOA, 6); break;
case 3: palSetPad(GPIOB, 14); break;
case 4: palSetPad(GPIOB, 15); break;
case 5: palSetPad(GPIOA, 8); break;
case 6: palSetPad(GPIOA, 9); break;
case 7: palSetPad(GPIOA, 7); break;
case 8: palSetPad(GPIOB, 3); break;
case 9: palSetPad(GPIOB, 4); break;
case 10: palSetPad(GPIOC, 15); break;
case 11: palSetPad(GPIOC, 14); break;
case 12: palSetPad(GPIOC, 13); break;
case 13: palSetPad(GPIOB, 5); break;
case 14: palSetPad(GPIOB, 6); break;
}
// need wait to settle pin state
wait_us(20);
// read row data { PB0, PB1, PB2, PA15, PA10 }
data = (
(palReadPad(GPIOB, 0) << 0 ) |
(palReadPad(GPIOB, 1) << 1 ) |
(palReadPad(GPIOB, 2) << 2 ) |
(palReadPad(GPIOA, 15) << 3 ) |
(palReadPad(GPIOA, 10) << 4 )
);
// unstrobe col { PA2, PA3, PA6, PB14, PB15, PA8, PA9, PA7, PB3, PB4, PC15, PC14, PC13, PB5, PB6 }
switch (col) {
case 0: palClearPad(GPIOA, 2); break;
case 1: palClearPad(GPIOA, 3); break;
case 2: palClearPad(GPIOA, 6); break;
case 3: palClearPad(GPIOB, 14); break;
case 4: palClearPad(GPIOB, 15); break;
case 5: palClearPad(GPIOA, 8); break;
case 6: palClearPad(GPIOA, 9); break;
case 7: palClearPad(GPIOA, 7); break;
case 8: palClearPad(GPIOB, 3); break;
case 9: palClearPad(GPIOB, 4); break;
case 10: palClearPad(GPIOC, 15); break;
case 11: palClearPad(GPIOC, 14); break;
case 12: palClearPad(GPIOC, 13); break;
case 13: palClearPad(GPIOB, 5); break;
case 14: palClearPad(GPIOB, 6); break;
}
if (matrix_debouncing[col] != data) {
matrix_debouncing[col] = data;
debouncing = true;
debouncing_time = timer_read();
}
}
if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) {
for (int row = 0; row < MATRIX_ROWS; row++) {
matrix[row] = 0;
for (int col = 0; col < MATRIX_COLS; col++) {
matrix[row] |= ((matrix_debouncing[col] & (1 << row) ? 1 : 0) << col);
}
}
debouncing = false;
}
matrix_scan_quantum();
return 1;
}
bool matrix_is_on(uint8_t row, uint8_t col) {
return (matrix[row] & (1<<col));
}
matrix_row_t matrix_get_row(uint8_t row) {
return matrix[row];
}
void matrix_print(void) {
printf("\nr/c 01234567\n");
for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
printf("%X0: ", row);
matrix_row_t data = matrix_get_row(row);
for (int col = 0; col < MATRIX_COLS; col++) {
if (data & (1<<col))
printf("1");
else
printf("0");
}
printf("\n");
}
}
+7 -14
View File
@@ -1,6 +1,5 @@
# project specific files # project specific files
SRC = matrix.c \ SRC = led.c
led.c
LAYOUTS += 60_ansi 60_ansi_split_bs_rshift 60_iso LAYOUTS += 60_ansi 60_ansi_split_bs_rshift 60_iso
## chip/board settings ## chip/board settings
@@ -32,8 +31,6 @@ USE_FPU = yes
# Vector table for application # Vector table for application
# 0x00000000-0x00001000 area is occupied by bootlaoder.*/ # 0x00000000-0x00001000 area is occupied by bootlaoder.*/
# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
# OPT_DEFS = -DCORTEX_VTOR_INIT=0x08005000
OPT_DEFS = OPT_DEFS =
# Options to pass to dfu-util when flashing # Options to pass to dfu-util when flashing
@@ -43,14 +40,10 @@ DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave
# comment out to disable the options. # comment out to disable the options.
# #
BACKLIGHT_ENABLE = no BACKLIGHT_ENABLE = no
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) MOUSEKEY_ENABLE = yes # Mouse keys
MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control
EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug
CONSOLE_ENABLE = yes # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration
COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # USB Nkey Rollover
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
CUSTOM_MATRIX = yes # Custom matrix file
AUDIO_ENABLE = yes AUDIO_ENABLE = yes
# SERIAL_LINK_ENABLE = yes
-1
View File
@@ -1 +0,0 @@
#include "66.h"
-16
View File
@@ -1,16 +0,0 @@
#ifndef CLUEBOARD_H
#define CLUEBOARD_H
#include "quantum.h"
#ifdef KEYBOARD_clueboard_66_rev1
#include "rev1.h"
#endif
#ifdef KEYBOARD_clueboard_66_rev2
#include "rev2.h"
#endif
#ifdef KEYBOARD_clueboard_66_rev3
#include "rev3.h"
#endif
#endif
-63
View File
@@ -1,63 +0,0 @@
/*
Copyright 2012 Jun Wako <[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/>.
*/
#ifndef CLUEBOARD_66_CONFIG_H
#define CLUEBOARD_66_CONFIG_H
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xC1ED
#define MANUFACTURER Clueboard
#define PRODUCT Clueboard
#define DESCRIPTION QMK keyboard firmware for Clueboard
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
#endif
+25 -3
View File
@@ -3,12 +3,34 @@
"width": 16.5, "width": 16.5,
"height": 5, "height": 5,
"layouts": { "layouts": {
"KEYMAP": { "LAYOUT_all": {
"layout": [{"x": 0, "y": 0, "w": 1, "label": "GRAVE"}, {"x": 1, "y": 0, "w": 1, "label": "1"}, {"x": 2, "y": 0, "w": 1, "label": "2"}, {"x": 3, "y": 0, "w": 1, "label": "3"}, {"x": 4, "y": 0, "w": 1, "label": "4"}, {"x": 5, "y": 0, "w": 1, "label": "5"}, {"x": 6, "y": 0, "w": 1, "label": "6"}, {"x": 7, "y": 0, "w": 1, "label": "7"}, {"x": 8, "y": 0, "w": 1, "label": "8"}, {"x": 9, "y": 0, "w": 1, "label": "9"}, {"x": 10, "y": 0, "w": 1, "label": "0"}, {"x": 11, "y": 0, "w": 1, "label": "DASH"}, {"x": 12, "y": 0, "w": 1, "label": "EQUALSIGN"}, {"x": 13, "y": 0, "w": 1, "label": "YEN"}, {"x": 14, "y": 0, "w": 1, "label": "BACKSPACE"}, {"x": 15.5, "y": 0, "w": 1, "label": "PAGEUP"}, {"x": 0, "y": 1, "w": 1.5, "label": "TAB"}, {"x": 1.5, "y": 1, "w": 1, "label": "Q"}, {"x": 2.5, "y": 1, "w": 1, "label": "W"}, {"x": 3.5, "y": 1, "w": 1, "label": "E"}, {"x": 4.5, "y": 1, "w": 1, "label": "R"}, {"x": 5.5, "y": 1, "w": 1, "label": "T"}, {"x": 6.5, "y": 1, "w": 1, "label": "Y"}, {"x": 7.5, "y": 1, "w": 1, "label": "U"}, {"x": 8.5, "y": 1, "w": 1, "label": "I"}, {"x": 9.5, "y": 1, "w": 1, "label": "O"}, {"x": 10.5, "y": 1, "w": 1, "label": "P"}, {"x": 11.5, "y": 1, "w": 1, "label": "LBRACKET"}, {"x": 12.5, "y": 1, "w": 1, "label": "RBRACKET"}, {"x": 13.5, "y": 1, "w": 1.5, "label": "BACKSLASH"}, {"x": 15.5, "y": 1, "w": 1, "label": "PAGEDOWN"}, {"x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK"}, {"x": 1.75, "y": 2, "w": 1, "label": "A"}, {"x": 2.75, "y": 2, "w": 1, "label": "S"}, {"x": 3.75, "y": 2, "w": 1, "label": "D"}, {"x": 4.75, "y": 2, "w": 1, "label": "F"}, {"x": 5.75, "y": 2, "w": 1, "label": "G"}, {"x": 6.75, "y": 2, "w": 1, "label": "H"}, {"x": 7.75, "y": 2, "w": 1, "label": "J"}, {"x": 8.75, "y": 2, "w": 1, "label": "K"}, {"x": 9.75, "y": 2, "w": 1, "label": "L"}, {"x": 10.75, "y": 2, "w": 1, "label": "SEMICOLON"}, {"x": 11.75, "y": 2, "w": 1, "label": "QUOTE"}, {"x": 12.75, "y": 2, "w": 1, "label": "ISOHASH"}, {"x": 13.75, "y": 2, "w": 1.25, "label": "ENTER"}, {"x": 0, "y": 3, "w": 1.25, "label": "LSHIFT"}, {"x": 1.25, "y": 3, "w": 1, "label": "ISOBACKSLASH"}, {"x": 2.25, "y": 3, "w": 1, "label": "Z"}, {"x": 3.25, "y": 3, "w": 1, "label": "X"}, {"x": 4.25, "y": 3, "w": 1, "label": "C"}, {"x": 5.25, "y": 3, "w": 1, "label": "V"}, {"x": 6.25, "y": 3, "w": 1, "label": "B"}, {"x": 7.25, "y": 3, "w": 1, "label": "N"}, {"x": 8.25, "y": 3, "w": 1, "label": "M"}, {"x": 9.25, "y": 3, "w": 1, "label": "COMMA"}, {"x": 10.25, "y": 3, "w": 1, "label": "PERIOD"}, {"x": 11.25, "y": 3, "w": 1, "label": "SLASH"}, {"x": 12.25, "y": 3, "w": 1, "label": "JPBACKSLASH"}, {"x": 13.25, "y": 3, "w": 1.25, "label": "RSHIFT"}, {"x": 14.5, "y": 3, "w": 1, "label": "UP"}, {"x": 0, "y": 4, "w": 1.25, "label": "LCTRL"}, {"x": 1.25, "y": 4, "w": 1, "label": "LALT"}, {"x": 2.25, "y": 4, "w": 1.25, "label": "LCMD"}, {"x": 3.5, "y": 4, "w": 1.25, "label": "MUHENKAN"}, {"x": 4.75, "y": 4, "w": 2, "label": "SPACE1"}, {"x": 6.75, "y": 4, "w": 2, "label": "SPACE2"}, {"x": 8.75, "y": 4, "w": 1.25, "label": "HENKAN"}, {"x": 10, "y": 4, "w": 1.25, "label": "RCMD"}, {"x": 11.25, "y": 4, "w": 1, "label": "RCTRL"}, {"x": 12.25, "y": 4, "w": 1.25, "label": "FN"}, {"x": 13.5, "y": 4, "w": 1, "label": "LEFT"}, {"x": 14.5, "y": 4, "w": 1, "label": "DOWN"}, {"x": 15.5, "y": 4, "w": 1, "label": "RIGHT"}] "layout": [
{"x": 0, "y": 0, "w": 1, "label": "GRAVE"}, {"x": 1, "y": 0, "w": 1, "label": "1"}, {"x": 2, "y": 0, "w": 1, "label": "2"}, {"x": 3, "y": 0, "w": 1, "label": "3"}, {"x": 4, "y": 0, "w": 1, "label": "4"}, {"x": 5, "y": 0, "w": 1, "label": "5"}, {"x": 6, "y": 0, "w": 1, "label": "6"}, {"x": 7, "y": 0, "w": 1, "label": "7"}, {"x": 8, "y": 0, "w": 1, "label": "8"}, {"x": 9, "y": 0, "w": 1, "label": "9"}, {"x": 10, "y": 0, "w": 1, "label": "0"}, {"x": 11, "y": 0, "w": 1, "label": "DASH"}, {"x": 12, "y": 0, "w": 1, "label": "EQUALSIGN"}, {"x": 13, "y": 0, "w": 1, "label": "YEN"}, {"x": 14, "y": 0, "w": 1, "label": "BACKSPACE"}, {"x": 15.5, "y": 0, "w": 1, "label": "PAGEUP"},
{"x": 0, "y": 1, "w": 1.5, "label": "TAB"}, {"x": 1.5, "y": 1, "w": 1, "label": "Q"}, {"x": 2.5, "y": 1, "w": 1, "label": "W"}, {"x": 3.5, "y": 1, "w": 1, "label": "E"}, {"x": 4.5, "y": 1, "w": 1, "label": "R"}, {"x": 5.5, "y": 1, "w": 1, "label": "T"}, {"x": 6.5, "y": 1, "w": 1, "label": "Y"}, {"x": 7.5, "y": 1, "w": 1, "label": "U"}, {"x": 8.5, "y": 1, "w": 1, "label": "I"}, {"x": 9.5, "y": 1, "w": 1, "label": "O"}, {"x": 10.5, "y": 1, "w": 1, "label": "P"}, {"x": 11.5, "y": 1, "w": 1, "label": "LBRACKET"}, {"x": 12.5, "y": 1, "w": 1, "label": "RBRACKET"}, {"x": 13.5, "y": 1, "w": 1.5, "label": "BACKSLASH"}, {"x": 15.5, "y": 1, "w": 1, "label": "PAGEDOWN"},
{"x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK"}, {"x": 1.75, "y": 2, "w": 1, "label": "A"}, {"x": 2.75, "y": 2, "w": 1, "label": "S"}, {"x": 3.75, "y": 2, "w": 1, "label": "D"}, {"x": 4.75, "y": 2, "w": 1, "label": "F"}, {"x": 5.75, "y": 2, "w": 1, "label": "G"}, {"x": 6.75, "y": 2, "w": 1, "label": "H"}, {"x": 7.75, "y": 2, "w": 1, "label": "J"}, {"x": 8.75, "y": 2, "w": 1, "label": "K"}, {"x": 9.75, "y": 2, "w": 1, "label": "L"}, {"x": 10.75, "y": 2, "w": 1, "label": "SEMICOLON"}, {"x": 11.75, "y": 2, "w": 1, "label": "QUOTE"}, {"x": 12.75, "y": 2, "w": 1, "label": "ISOHASH"}, {"x": 13.75, "y": 2, "w": 1.25, "label": "ENTER"},
{"x": 0, "y": 3, "w": 1.25, "label": "LSHIFT"}, {"x": 1.25, "y": 3, "w": 1, "label": "ISOBACKSLASH"}, {"x": 2.25, "y": 3, "w": 1, "label": "Z"}, {"x": 3.25, "y": 3, "w": 1, "label": "X"}, {"x": 4.25, "y": 3, "w": 1, "label": "C"}, {"x": 5.25, "y": 3, "w": 1, "label": "V"}, {"x": 6.25, "y": 3, "w": 1, "label": "B"}, {"x": 7.25, "y": 3, "w": 1, "label": "N"}, {"x": 8.25, "y": 3, "w": 1, "label": "M"}, {"x": 9.25, "y": 3, "w": 1, "label": "COMMA"}, {"x": 10.25, "y": 3, "w": 1, "label": "PERIOD"}, {"x": 11.25, "y": 3, "w": 1, "label": "SLASH"}, {"x": 12.25, "y": 3, "w": 1, "label": "JPBACKSLASH"}, {"x": 13.25, "y": 3, "w": 1.25, "label": "RSHIFT"}, {"x": 14.5, "y": 3, "w": 1, "label": "UP"},
{"x": 0, "y": 4, "w": 1.25, "label": "LCTRL"}, {"x": 1.25, "y": 4, "w": 1, "label": "LALT"}, {"x": 2.25, "y": 4, "w": 1.25, "label": "LCMD"}, {"x": 3.5, "y": 4, "w": 1.25, "label": "MUHENKAN"}, {"x": 4.75, "y": 4, "w": 2, "label": "SPACE1"}, {"x": 6.75, "y": 4, "w": 2, "label": "SPACE2"}, {"x": 8.75, "y": 4, "w": 1.25, "label": "HENKAN"}, {"x": 10, "y": 4, "w": 1.25, "label": "RCMD"}, {"x": 11.25, "y": 4, "w": 1, "label": "RCTRL"}, {"x": 12.25, "y": 4, "w": 1.25, "label": "FN"}, {"x": 13.5, "y": 4, "w": 1, "label": "LEFT"}, {"x": 14.5, "y": 4, "w": 1, "label": "DOWN"}, {"x": 15.5, "y": 4, "w": 1, "label": "RIGHT"}
]
}, },
"LAYOUT_66_ansi": { "LAYOUT_66_ansi": {
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.25}, {"x":14.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4}, {"label":"Menu", "x":12.25, "y":4, "w":1.25}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}] "layout": [
{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15.5, "y":0},
{"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15.5, "y":1},
{"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25},
{"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.25}, {"x":14.5, "y":3},
{"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"Win", "x":11, "y":4, "w":1.25}, {"label":"Menu", "x":12.25, "y":4, "w":1.25}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}
]
},
"LAYOUT_66_iso": {
"layout": [
{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Insert", "x":15.5, "y":0},
{"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Delete", "x":15.5, "y":1},
{"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2},
{"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"\\", "x":1.25, "y":3, "w":1}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.25}, {"label":"\u2191", "x":14.5, "y":3},
{"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"Ctrl", "x":11, "y":4, "w":1.25}, {"label":"Menu", "x":12.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13.5, "y":4}, {"label":"\u2193", "x":14.5, "y":4}, {"label":"\u2192", "x":15.5, "y":4}
]
} }
} }
} }
@@ -1,4 +1,4 @@
#include "66.h" #include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -1,6 +1,4 @@
![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png) # Basic Clueboard 66% Hotswap ANSI Layout
# Basic Clueboard 66% Hotswap Layout
This is the default layout that comes flashed on every Clueboard. For the most This is the default layout that comes flashed on every Clueboard. For the most
part it's a straightforward and easy to follow layout. The only unusual key is part it's a straightforward and easy to follow layout. The only unusual key is
@@ -1,4 +1,4 @@
#include "66.h" #include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -1,6 +1,4 @@
![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png) # Default Clueboard 66% ISO Layout
# Default Clueboard Layout
This is the default layout that comes flashed on every Clueboard. For the most This is the default layout that comes flashed on every Clueboard. For the most
part it's a straightforward and easy to follow layout. The only unusual key is part it's a straightforward and easy to follow layout. The only unusual key is
@@ -1,7 +1,3 @@
#ifndef CONFIG_USER_H #pragma once
#define CONFIG_USER_H
#include "../../config.h"
#define DISABLE_SPACE_CADET_ROLLOVER #define DISABLE_SPACE_CADET_ROLLOVER
#endif
@@ -1,4 +1,4 @@
#include "66.h" #include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -1,4 +1,4 @@
#include "66.h" #include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -1,5 +1,3 @@
![Clueboard Layout Image](http://i.imgur.com/kGADucy.png)
# Caps Fn Layout # Caps Fn Layout
This is the default layout except that Caps Lock acts like Caps Lock when This is the default layout except that Caps Lock acts like Caps Lock when
@@ -1,4 +1,4 @@
#include "66.h" #include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -1,4 +1,4 @@
#include "66.h" #include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -1,6 +1,4 @@
![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png) # Default Clueboard 66% Universal Layout
# Default Clueboard Layout
This is the default layout that comes flashed on every Clueboard. For the most This is the default layout that comes flashed on every Clueboard. For the most
part it's a straightforward and easy to follow layout. The only unusual key is part it's a straightforward and easy to follow layout. The only unusual key is
@@ -1,4 +1,4 @@
#include "66.h" #include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -1,4 +1,4 @@
#include "66.h" #include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -1,5 +1,3 @@
![Clueboard Layout Image](http://i.imgur.com/7oZCsHF.png)
# Default Clueboard Layout for Mac # Default Clueboard Layout for Mac
This is the default Clueboard layout with Alt and GUI switched to match Mac This is the default Clueboard layout with Alt and GUI switched to match Mac
@@ -1,7 +1,4 @@
#ifndef CONFIG_USER_H #pragma once
#define CONFIG_USER_H
#include "../../config.h"
/* /*
* MIDI options * MIDI options
@@ -36,5 +33,3 @@
#define LSPO_KEY KC_8 #define LSPO_KEY KC_8
#define RSPC_KEY KC_9 #define RSPC_KEY KC_9
#define PERMISSIVE_HOLD #define PERMISSIVE_HOLD
#endif
@@ -1,4 +1,4 @@
#include "66.h" #include QMK_KEYBOARD_H
// Helpful defines // Helpful defines
#define xxxxxxx KC_NO #define xxxxxxx KC_NO
@@ -1,6 +1,7 @@
MOUSEKEY_ENABLE = yes MOUSEKEY_ENABLE = yes
EXTRAKEY_ENABLE = yes EXTRAKEY_ENABLE = yes
RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality
MIDI_ENABLE = yes MIDI_ENABLE = yes
@@ -1,4 +1,4 @@
#include "66.h" #include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -1,4 +1,4 @@
#include "66.h" #include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -1,5 +1,3 @@
![Clueboard Layout Image](http://i.imgur.com/7oZCsHF.png)
# Maximised Clueboard Layout # Maximised Clueboard Layout
This layout is intended for a board with one or both shifts split. The outside key on the split shift is an Fn, while the inside is shift. The bottom row has all the mods on both sides, optimised for a Mac. This layout is intended for a board with one or both shifts split. The outside key on the split shift is an Fn, while the inside is shift. The bottom row has all the mods on both sides, optimised for a Mac.
@@ -1,4 +1,4 @@
#include "66.h" #include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -1,5 +1,3 @@
![Clueboard Layout Image](layout.png)
# MouseKeys Layout # MouseKeys Layout
This layout adds a mouse layer. When you hold down the spacebar the arrow keys This layout adds a mouse layer. When you hold down the spacebar the arrow keys
@@ -1,4 +1,4 @@
#include "66.h" #include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -1,4 +1,4 @@
#include "66.h" #include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -1,4 +1,4 @@
#include "66.h" #include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -1,4 +1,4 @@
# Shift Fn Clueboard Layout # Shift Fn Clueboard 66% Layout
This is an experimental layout. It makes the left shift key a dual roll key. This is an experimental layout. It makes the left shift key a dual roll key.
For most keys it acts as a shift key, but for some keys it activates an For most keys it acts as a shift key, but for some keys it activates an
+1 -1
View File
@@ -1,4 +1,4 @@
#include "66.h" #include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -1,4 +1,4 @@
#include "66.h" #include QMK_KEYBOARD_H
#include "tetris_text.h" #include "tetris_text.h"
// Helpful defines // Helpful defines
@@ -1,4 +1,4 @@
#include "66.h" #include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -1,6 +1,4 @@
![Clueboard Layout Image](http://i.imgur.com/BnWlOht.png) # Default Clueboard 66% Layout
# Default Clueboard Layout
This is the default layout except that Caps Lock has been changed to Control This is the default layout except that Caps Lock has been changed to Control
and Insert and Delete have been put into the Fn layer. and Insert and Delete have been put into the Fn layer.
@@ -1,4 +1,4 @@
#include "66.h" #include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -1,6 +1,4 @@
![Clueboard Layout Image](http://i.imgur.com/fsqOqZo.png) # Default Clueboard 66% Layout
# Default Clueboard Layout
This is the default layout that comes flashed on every Clueboard. For the most This is the default layout that comes flashed on every Clueboard. For the most
part it's a straightforward and easy to follow layout. The only unusual key is part it's a straightforward and easy to follow layout. The only unusual key is
@@ -1,3 +1,3 @@
#include "../config.h" #pragma once
#define TAPPING_TERM 600 // ms #define TAPPING_TERM 600 // ms
@@ -1,7 +1,7 @@
// Xyverz' keymap. // Xyverz' keymap.
// It's based on the default keymap, but Dvorak! // It's based on the default keymap, but Dvorak!
#include "66.h" #include QMK_KEYBOARD_H
#include "action_layer.h" #include "action_layer.h"
#include "eeconfig.h" #include "eeconfig.h"
+2 -2
View File
@@ -1,6 +1,6 @@
# Clueboard 66% # Clueboard 66%
![Clueboard](https://static1.squarespace.com/static/55c13bdee4b099be5dcb82eb/t/5867eeaad2b857fd0d196f4b/1494021396651/IMGP4201.jpg?format=1500w) ![Clueboard](https://i.imgur.com/hLePwJu.jpg)
A fully customizable 66% keyboard. A fully customizable 66% keyboard.
@@ -8,7 +8,7 @@ A fully customizable 66% keyboard.
* Hardware Supported: Clueboard 66% PCB * Hardware Supported: Clueboard 66% PCB
* rev1 (PCB Version 1.0) * rev1 (PCB Version 1.0)
* rev2 (PCB Versions 2.0, 2.0.1, 2.1, 2.5, 2.5.1, 2.6) * rev2 (PCB Versions 2.0, 2.0.1, 2.1, 2.5, 2.5.1, 2.6)
* rev3 (PCB Versions 2.7, 2.8) * rev3 (PCB Versions 2.7, 2.8, 2.9)
* Hardware Availability: [clueboard.co](https://clueboard.co/) * Hardware Availability: [clueboard.co](https://clueboard.co/)
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
+44 -15
View File
@@ -1,28 +1,60 @@
#ifndef CLUEBOARD_66_REV1_CONFIG_H #pragma once
#define CLUEBOARD_66_REV1_CONFIG_H
#include "config_common.h" #include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xC1ED
#define PRODUCT_ID 0x2301 #define PRODUCT_ID 0x2301
#define DEVICE_VER 0x0003 #define DEVICE_VER 0x0003
#define MANUFACTURER Clueboard
#define PRODUCT Clueboard
#define DESCRIPTION QMK keyboard firmware for Clueboard
/* key matrix size */ /* key matrix size
*/
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5
#define MATRIX_COLS 16 #define MATRIX_COLS 16
// ROWS: Top to bottom, COLS: Left to right /* ROWS: Top to bottom, COLS: Left to right
/* Column pin configuration */
* col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
* pin: B3 F1 F4 F5 F6 C7 C6 B6 B5 B4 D7 D6 D4 F7 B0 B1
*/
#define MATRIX_COL_PINS { B3, F1, F4, F5, F6, C7, C6, B6, B5, B4, D7, D6, D4, F7, B0, B1 } #define MATRIX_COL_PINS { B3, F1, F4, F5, F6, C7, C6, B6, B5, B4, D7, D6, D4, F7, B0, B1 }
/* Row pin configuration
* row: 0 1 2 3 4
* pin: D1 D0 D2 D5 D3
*/
#define MATRIX_ROW_PINS { D1, D0, D2, D5, D3 } #define MATRIX_ROW_PINS { D1, D0, D2, D5, D3 }
#define UNUSED_PINS #define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
/* Underlight configuration /* Underlight configuration
*/ */
#define RGB_DI_PIN B2 #define RGB_DI_PIN B2
@@ -31,6 +63,3 @@
#define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17 #define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17 #define RGBLIGHT_VAL_STEP 17
#endif
+5 -6
View File
@@ -1,7 +1,6 @@
#ifndef REV1_H #pragma once
#define REV1_H
#include "../66.h" #include "quantum.h"
/* Clueboard matrix layout /* Clueboard matrix layout
* ,-----------------------------------------------------------. ,---. * ,-----------------------------------------------------------. ,---.
@@ -30,7 +29,7 @@
// The first section contains all of the arguements // The first section contains all of the arguements
// The second converts the arguments into a two-dimensional array // The second converts the arguments into a two-dimensional array
#define LAYOUT( \ #define LAYOUT_all( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \ 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, k1F, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \
@@ -43,7 +42,6 @@
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
{ k40, k41, k42, k43, KC_NO, k45, k46, KC_NO, KC_NO, k49, k4A, k4B, k4C, k4D, k4E, k4F } \ { k40, k41, k42, k43, KC_NO, k45, k46, KC_NO, KC_NO, k49, k4A, k4B, k4C, k4D, k4E, k4F } \
} }
#define KEYMAP LAYOUT
#define LAYOUT_66_ansi( \ #define LAYOUT_66_ansi( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0E, k0F, \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0E, k0F, \
@@ -73,4 +71,5 @@
{ k40, k41, k42, KC_NO, KC_NO, KC_NO, k46, KC_NO, KC_NO, KC_NO, k4A, k4B, k4C, k4D, k4E, k4F } \ { k40, k41, k42, KC_NO, KC_NO, KC_NO, k46, KC_NO, KC_NO, KC_NO, k4A, k4B, k4C, k4D, k4E, k4F } \
} }
#endif #define KEYMAP LAYOUT_all
#define LAYOUT LAYOUT_all
+23 -1
View File
@@ -1 +1,23 @@
BACKLIGHT_ENABLE = no LAYOUTS = 66_ansi 66_iso
MCU = atmega32u4
F_CPU = 16000000
ARCH = AVR8
F_USB = $(F_CPU)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options
# comment out to disable the options.
#
BACKLIGHT_ENABLE = no
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
AUDIO_ENABLE = no
RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality
MIDI_ENABLE = no # MIDI controls
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+41 -12
View File
@@ -1,28 +1,59 @@
#ifndef CLUEBOARD_66_REV2_CONFIG_H #pragma once
#define CLUEBOARD_66_REV2_CONFIG_H
#include "config_common.h" #include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xC1ED
#define PRODUCT_ID 0x2320 #define PRODUCT_ID 0x2320
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER Clueboard
#define PRODUCT Clueboard
#define DESCRIPTION QMK keyboard firmware for Clueboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 10 #define MATRIX_ROWS 10
#define MATRIX_COLS 8 #define MATRIX_COLS 8
// ROWS: Top to bottom, COLS: Left to right /* ROWS: Top to bottom, COLS: Left to right
/* Row pin configuration
* row: 0 1 2 3 4 5 6 7 8 9
* pin: B2 C7 C6 B6 B5 B0 B3 D5 D3 D2
*/ */
#define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 } #define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 }
/* Column pin configuration
* col: 0 1 2 3 4 5 6 7
* pin: F0 F1 F4 F5 F6 F7 E6 B1
*/
#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 } #define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 }
#define UNUSED_PINS #define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
/* Backlight configuration /* Backlight configuration
*/ */
#define BACKLIGHT_LEVELS 1 #define BACKLIGHT_LEVELS 1
@@ -44,5 +75,3 @@
#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 1 // The led to start at #define RGBLIGHT_EFFECT_KNIGHT_OFFSET 1 // The led to start at
#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 5 // How many LEDs to travel #define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 5 // How many LEDs to travel
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 4 // How many LEDs wide to light up #define RGBLIGHT_EFFECT_SNAKE_LENGTH 4 // How many LEDs wide to light up
#endif
+5 -6
View File
@@ -1,7 +1,6 @@
#ifndef REV2_H #pragma once
#define REV2_H
#include "66.h" #include "quantum.h"
/* Clueboard matrix layout /* Clueboard matrix layout
* ,-----------------------------------------------------------. ,---. * ,-----------------------------------------------------------. ,---.
@@ -30,7 +29,7 @@
// The first section contains all of the arguments // The first section contains all of the arguments
// The second converts the arguments into a two-dimensional array // The second converts the arguments into a two-dimensional array
#define LAYOUT( \ #define LAYOUT_all( \
k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k55, k56, k57, \ k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k55, k56, k57, \
k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k67, \ k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k67, \
k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k74, k75, \ k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k74, k75, \
@@ -48,7 +47,6 @@
{ k80, k81, k82, k83, k84, k85, k86, KC_NO }, \ { k80, k81, k82, k83, k84, k85, k86, KC_NO }, \
{ k90, KC_NO, k92, k93, k94, k95, k96, k97 } \ { k90, KC_NO, k92, k93, k94, k95, k96, k97 } \
} }
#define KEYMAP LAYOUT
/* LAYOUT_66_ansi, standard 66 key ANSI layout /* LAYOUT_66_ansi, standard 66 key ANSI layout
*/ */
@@ -92,4 +90,5 @@
{ KC_NO, KC_NO, k92, k93, k94, k95, k96, k97 } \ { KC_NO, KC_NO, k92, k93, k94, k95, k96, k97 } \
} }
#endif #define KEYMAP LAYOUT_all
#define LAYOUT LAYOUT_all
+22 -1
View File
@@ -1 +1,22 @@
BACKLIGHT_ENABLE = yes LAYOUTS = 66_ansi 66_iso
MCU = atmega32u4
F_CPU = 16000000
ARCH = AVR8
F_USB = $(F_CPU)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options
BACKLIGHT_ENABLE = yes
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
AUDIO_ENABLE = no
RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality
MIDI_ENABLE = no # MIDI controls
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+41 -12
View File
@@ -1,28 +1,59 @@
#ifndef CLUEBOARD_66_REV3_CONFIG_H #pragma once
#define CLUEBOARD_66_REV3_CONFIG_H
#include "config_common.h" #include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xC1ED
#define PRODUCT_ID 0x2370 #define PRODUCT_ID 0x2370
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER Clueboard
#define PRODUCT Clueboard
#define DESCRIPTION QMK keyboard firmware for Clueboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 10 #define MATRIX_ROWS 10
#define MATRIX_COLS 8 #define MATRIX_COLS 8
// ROWS: Top to bottom, COLS: Left to right /* ROWS: Top to bottom, COLS: Left to right
/* Row pin configuration
* row: 0 1 2 3 4 5 6 7 8 9
* pin: B2 C7 C6 B6 B5 B0 B3 D5 D3 D2
*/ */
#define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 } #define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 }
/* Column pin configuration
* col: 0 1 2 3 4 5 6 7
* pin: F0 F1 F4 F5 F6 F7 E6 B1
*/
#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 } #define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 }
#define UNUSED_PINS #define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
/* Backlight configuration /* Backlight configuration
*/ */
#define BACKLIGHT_LEVELS 1 #define BACKLIGHT_LEVELS 1
@@ -44,5 +75,3 @@
#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 2 // The led to start at #define RGBLIGHT_EFFECT_KNIGHT_OFFSET 2 // The led to start at
#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 5 // How many LEDs to travel #define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 5 // How many LEDs to travel
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 4 // How many LEDs wide to light up #define RGBLIGHT_EFFECT_SNAKE_LENGTH 4 // How many LEDs wide to light up
#endif
-4
View File
@@ -8,10 +8,6 @@ void matrix_init_kb(void) {
// runs once when the firmware starts up // runs once when the firmware starts up
matrix_init_user(); matrix_init_user();
led_init_ports(); led_init_ports();
// JTAG disable for PORT F. write JTD bit twice within four cycles.
MCUCR |= (1<<JTD);
MCUCR |= (1<<JTD);
} }
+5 -6
View File
@@ -1,7 +1,6 @@
#ifndef REV3_H #pragma once
#define REV3_H
#include "66.h" #include "quantum.h"
/* Clueboard matrix layout /* Clueboard matrix layout
* ,-----------------------------------------------------------. ,---. * ,-----------------------------------------------------------. ,---.
@@ -30,7 +29,7 @@
// The first section contains all of the arguments // The first section contains all of the arguments
// The second converts the arguments into a two-dimensional array // The second converts the arguments into a two-dimensional array
#define LAYOUT( \ #define LAYOUT_all( \
k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k55, k56, k57, \ k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k55, k56, k57, \
k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k67, \ k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k67, \
k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k74, k75, \ k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k74, k75, \
@@ -48,7 +47,6 @@
{ k80, k81, k82, k83, k84, k85, k86, KC_NO }, \ { k80, k81, k82, k83, k84, k85, k86, KC_NO }, \
{ k90, KC_NO, k92, k93, k94, k95, k96, k97 } \ { k90, KC_NO, k92, k93, k94, k95, k96, k97 } \
} }
#define KEYMAP LAYOUT
/* LAYOUT_66_ansi, standard 66 key ANSI layout /* LAYOUT_66_ansi, standard 66 key ANSI layout
*/ */
@@ -92,4 +90,5 @@
{ KC_NO, KC_NO, k92, k93, k94, k95, k96, k97 } \ { KC_NO, KC_NO, k92, k93, k94, k95, k96, k97 } \
} }
#endif #define KEYMAP LAYOUT_all
#define LAYOUT LAYOUT_all
+23 -1
View File
@@ -1 +1,23 @@
BACKLIGHT_ENABLE = yes LAYOUTS = 66_ansi 66_iso
MCU = atmega32u4
F_CPU = 16000000
ARCH = AVR8
F_USB = $(F_CPU)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options
# comment out to disable the options.
#
BACKLIGHT_ENABLE = yes
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
AUDIO_ENABLE = no
RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality
MIDI_ENABLE = no # MIDI controls
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+520
View File
@@ -0,0 +1,520 @@
/*
ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/**
* @file templates/chconf.h
* @brief Configuration file template.
* @details A copy of this file must be placed in each project directory, it
* contains the application specific kernel settings.
*
* @addtogroup config
* @details Kernel related settings and hooks.
* @{
*/
#ifndef CHCONF_H
#define CHCONF_H
#define _CHIBIOS_RT_CONF_
/*===========================================================================*/
/**
* @name System timers settings
* @{
*/
/*===========================================================================*/
/**
* @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
#define CH_CFG_ST_RESOLUTION 32
/**
* @brief System tick frequency.
* @details Frequency of the system timer that drives the system ticks. This
* setting also defines the system tick time unit.
*/
#define CH_CFG_ST_FREQUENCY 100000
/**
* @brief Time delta constant for the tick-less mode.
* @note If this value is zero then the system uses the classic
* periodic tick. This value represents the minimum number
* of ticks that is safe to specify in a timeout directive.
* The value one is not valid, timeouts are rounded up to
* this value.
*/
#define CH_CFG_ST_TIMEDELTA 2
/** @} */
/*===========================================================================*/
/**
* @name Kernel parameters and options
* @{
*/
/*===========================================================================*/
/**
* @brief Round robin interval.
* @details This constant is the number of system ticks allowed for the
* threads before preemption occurs. Setting this value to zero
* disables the preemption for threads with equal priority and the
* round robin becomes cooperative. Note that higher priority
* threads can still preempt, the kernel is always preemptive.
* @note Disabling the round robin preemption makes the kernel more compact
* and generally faster.
* @note The round robin preemption is not supported in tickless mode and
* must be set to zero in that case.
*/
#define CH_CFG_TIME_QUANTUM 0
/**
* @brief Managed RAM size.
* @details Size of the RAM area to be managed by the OS. If set to zero
* then the whole available RAM is used. The core memory is made
* available to the heap allocator and/or can be used directly through
* the simplified core memory allocator.
*
* @note In order to let the OS manage the whole RAM the linker script must
* provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
#define CH_CFG_MEMCORE_SIZE 0
/**
* @brief Idle thread automatic spawn suppression.
* @details When this option is activated the function @p chSysInit()
* does not spawn the idle thread. The application @p main()
* function becomes the idle thread and must implement an
* infinite loop.
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
/** @} */
/*===========================================================================*/
/**
* @name Performance options
* @{
*/
/*===========================================================================*/
/**
* @brief OS optimization.
* @details If enabled then time efficient rather than space efficient code
* is used when two possible implementations exist.
*
* @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
#define CH_CFG_OPTIMIZE_SPEED TRUE
/** @} */
/*===========================================================================*/
/**
* @name Subsystem options
* @{
*/
/*===========================================================================*/
/**
* @brief Time Measurement APIs.
* @details If enabled then the time measurement APIs are included in
* the kernel.
*
* @note The default is @p TRUE.
*/
#define CH_CFG_USE_TM TRUE
/**
* @brief Threads registry APIs.
* @details If enabled then the registry APIs are included in the kernel.
*
* @note The default is @p TRUE.
*/
#define CH_CFG_USE_REGISTRY TRUE
/**
* @brief Threads synchronization APIs.
* @details If enabled then the @p chThdWait() function is included in
* the kernel.
*
* @note The default is @p TRUE.
*/
#define CH_CFG_USE_WAITEXIT TRUE
/**
* @brief Semaphores APIs.
* @details If enabled then the Semaphores APIs are included in the kernel.
*
* @note The default is @p TRUE.
*/
#define CH_CFG_USE_SEMAPHORES TRUE
/**
* @brief Semaphores queuing mode.
* @details If enabled then the threads are enqueued on semaphores by
* priority rather than in FIFO order.
*
* @note The default is @p FALSE. Enable this if you have special
* requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
/**
* @brief Mutexes APIs.
* @details If enabled then the mutexes APIs are included in the kernel.
*
* @note The default is @p TRUE.
*/
#define CH_CFG_USE_MUTEXES TRUE
/**
* @brief Enables recursive behavior on mutexes.
* @note Recursive mutexes are heavier and have an increased
* memory footprint.
*
* @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
/**
* @brief Conditional Variables APIs.
* @details If enabled then the conditional variables APIs are included
* in the kernel.
*
* @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
#define CH_CFG_USE_CONDVARS TRUE
/**
* @brief Conditional Variables APIs with timeout.
* @details If enabled then the conditional variables APIs with timeout
* specification are included in the kernel.
*
* @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
/**
* @brief Events Flags APIs.
* @details If enabled then the event flags APIs are included in the kernel.
*
* @note The default is @p TRUE.
*/
#define CH_CFG_USE_EVENTS TRUE
/**
* @brief Events Flags APIs with timeout.
* @details If enabled then the events APIs with timeout specification
* are included in the kernel.
*
* @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
/**
* @brief Synchronous Messages APIs.
* @details If enabled then the synchronous messages APIs are included
* in the kernel.
*
* @note The default is @p TRUE.
*/
#define CH_CFG_USE_MESSAGES TRUE
/**
* @brief Synchronous Messages queuing mode.
* @details If enabled then messages are served by priority rather than in
* FIFO order.
*
* @note The default is @p FALSE. Enable this if you have special
* requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
#define CH_CFG_USE_MESSAGES_PRIORITY TRUE
/**
* @brief Mailboxes APIs.
* @details If enabled then the asynchronous messages (mailboxes) APIs are
* included in the kernel.
*
* @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
#define CH_CFG_USE_MAILBOXES TRUE
/**
* @brief Core Memory Manager APIs.
* @details If enabled then the core memory manager APIs are included
* in the kernel.
*
* @note The default is @p TRUE.
*/
#define CH_CFG_USE_MEMCORE TRUE
/**
* @brief Heap Allocator APIs.
* @details If enabled then the memory heap allocator APIs are included
* in the kernel.
*
* @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or
* @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
#define CH_CFG_USE_HEAP TRUE
/**
* @brief Memory Pools Allocator APIs.
* @details If enabled then the memory pools allocator APIs are included
* in the kernel.
*
* @note The default is @p TRUE.
*/
#define CH_CFG_USE_MEMPOOLS TRUE
/**
* @brief Dynamic Threads APIs.
* @details If enabled then the dynamic threads creation APIs are included
* in the kernel.
*
* @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
#define CH_CFG_USE_DYNAMIC TRUE
/** @} */
/*===========================================================================*/
/**
* @name Debug options
* @{
*/
/*===========================================================================*/
/**
* @brief Debug option, kernel statistics.
*
* @note The default is @p FALSE.
*/
#define CH_DBG_STATISTICS FALSE
/**
* @brief Debug option, system state check.
* @details If enabled the correct call protocol for system APIs is checked
* at runtime.
*
* @note The default is @p FALSE.
*/
#define CH_DBG_SYSTEM_STATE_CHECK FALSE
/**
* @brief Debug option, parameters checks.
* @details If enabled then the checks on the API functions input
* parameters are activated.
*
* @note The default is @p FALSE.
*/
#define CH_DBG_ENABLE_CHECKS FALSE
/**
* @brief Debug option, consistency checks.
* @details If enabled then all the assertions in the kernel code are
* activated. This includes consistency checks inside the kernel,
* runtime anomalies and port-defined checks.
*
* @note The default is @p FALSE.
*/
#define CH_DBG_ENABLE_ASSERTS FALSE
/**
* @brief Debug option, trace buffer.
* @details If enabled then the trace buffer is activated.
*
* @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
/**
* @brief Trace buffer entries.
* @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
* different from @p CH_DBG_TRACE_MASK_DISABLED.
*/
#define CH_DBG_TRACE_BUFFER_SIZE 128
/**
* @brief Debug option, stack checks.
* @details If enabled then a runtime stack check is performed.
*
* @note The default is @p FALSE.
* @note The stack check is performed in a architecture/port dependent way.
* It may not be implemented or some ports.
* @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
#define CH_DBG_ENABLE_STACK_CHECK TRUE
/**
* @brief Debug option, stacks initialization.
* @details If enabled then the threads working area is filled with a byte
* value when a thread is created. This can be useful for the
* runtime measurement of the used stack.
*
* @note The default is @p FALSE.
*/
#define CH_DBG_FILL_THREADS FALSE
/**
* @brief Debug option, threads profiling.
* @details If enabled then a field is added to the @p thread_t structure that
* counts the system ticks occurred while executing the thread.
*
* @note The default is @p FALSE.
* @note This debug option is not currently compatible with the
* tickless mode.
*/
#define CH_DBG_THREADS_PROFILING FALSE
/** @} */
/*===========================================================================*/
/**
* @name Kernel hooks
* @{
*/
/*===========================================================================*/
/**
* @brief Threads descriptor structure extension.
* @details User fields added to the end of the @p thread_t structure.
*/
#define CH_CFG_THREAD_EXTRA_FIELDS \
/* Add threads custom fields here.*/
/**
* @brief Threads initialization hook.
* @details User initialization code added to the @p chThdInit() API.
*
* @note It is invoked from within @p chThdInit() and implicitly from all
* the threads creation APIs.
*/
#define CH_CFG_THREAD_INIT_HOOK(tp) { \
/* Add threads initialization code here.*/ \
}
/**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
}
/**
* @brief Context switch hook.
* @details This hook is invoked just before switching between threads.
*/
#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
/* Context switch code here.*/ \
}
/**
* @brief ISR enter hook.
*/
#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
/* IRQ prologue code here.*/ \
}
/**
* @brief ISR exit hook.
*/
#define CH_CFG_IRQ_EPILOGUE_HOOK() { \
/* IRQ epilogue code here.*/ \
}
/**
* @brief Idle thread enter hook.
* @note This hook is invoked within a critical zone, no OS functions
* should be invoked from here.
* @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
/* Idle-enter code here.*/ \
}
/**
* @brief Idle thread leave hook.
* @note This hook is invoked within a critical zone, no OS functions
* should be invoked from here.
* @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
/* Idle-leave code here.*/ \
}
/**
* @brief Idle Loop hook.
* @details This hook is continuously invoked by the idle thread loop.
*/
#define CH_CFG_IDLE_LOOP_HOOK() { \
/* Idle loop code here.*/ \
}
/**
* @brief System tick event hook.
* @details This hook is invoked in the system tick handler immediately
* after processing the virtual timers queue.
*/
#define CH_CFG_SYSTEM_TICK_HOOK() { \
/* System tick event code here.*/ \
}
/**
* @brief System halt hook.
* @details This hook is invoked in case to a system halting error before
* the system is halted.
*/
#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
/* System halt code here.*/ \
}
/**
* @brief Trace hook.
* @details This hook is invoked each time a new record is written in the
* trace buffer.
*/
#define CH_CFG_TRACE_HOOK(tep) { \
/* Trace code here.*/ \
}
/** @} */
/*===========================================================================*/
/* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
#endif /* CHCONF_H */
/** @} */
+83
View File
@@ -0,0 +1,83 @@
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xC1ED
#define PRODUCT_ID 0x2390
#define DEVICE_VER 0x0001
#define MANUFACTURER Clueboard
#define PRODUCT Clueboard 66% rev4
#define DESCRIPTION QMK keyboard firmware for Clueboard
/* Address for jumping to bootloader on STM32 chips. */
/* It is chip dependent, the correct number can be looked up here:
* http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
*/
#define STM32_BOOTLOADER_ADDRESS 0x1FFFD800
/* key matrix size */
#define MATRIX_ROWS 10
#define MATRIX_COLS 8
/* ROWS: Top to bottom, COLS: Left to right
*/
#define MATRIX_ROW_PINS { B11, A6, A3, A2, A1, B7, B6, C15, C14, C13 }
#define MATRIX_COL_PINS { B10, B2, B1, B0, A7, B4, B3, B5 }
#define UNUSED_PINS { B15, B14, B13, B12, B9, B8, A15, A10, A9, A8 }
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
/* Backlight configuration
*/
#define BACKLIGHT_LEVELS 1
/* Underlight configuration
*/
#define RGB_DI_PIN D7
#define RGBLED_NUM 18 // Number of LEDs
#define RGBLIGHT_HUE_STEP 32
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1
#define RGBLIGHT_EFFECT_BREATHE_MAX 200
#define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 666*2
#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3 // How many LEDs wide to light up
#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 2 // The led to start at
#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 5 // How many LEDs to travel
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 4 // How many LEDs wide to light up
+388
View File
@@ -0,0 +1,388 @@
/*
ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/**
* @file templates/halconf.h
* @brief HAL configuration header.
* @details HAL configuration file, this file allows to enable or disable the
* various device drivers from your application. You may also use
* this file in order to override the device drivers default settings.
*
* @addtogroup HAL_CONF
* @{
*/
#ifndef HALCONF_H
#define HALCONF_H
#include "mcuconf.h"
/**
* @brief Enables the PAL subsystem.
*/
#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__)
#define HAL_USE_PAL TRUE
#endif
/**
* @brief Enables the ADC subsystem.
*/
#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__)
#define HAL_USE_ADC FALSE
#endif
/**
* @brief Enables the CAN subsystem.
*/
#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__)
#define HAL_USE_CAN FALSE
#endif
/**
* @brief Enables the DAC subsystem.
*/
#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
#define HAL_USE_DAC TRUE
#endif
/**
* @brief Enables the EXT subsystem.
*/
#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__)
#define HAL_USE_EXT FALSE
#endif
/**
* @brief Enables the GPT subsystem.
*/
#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__)
#define HAL_USE_GPT TRUE
#endif
/**
* @brief Enables the I2C subsystem.
*/
#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__)
#define HAL_USE_I2C FALSE
#endif
/**
* @brief Enables the I2S subsystem.
*/
#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__)
#define HAL_USE_I2S FALSE
#endif
/**
* @brief Enables the ICU subsystem.
*/
#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__)
#define HAL_USE_ICU FALSE
#endif
/**
* @brief Enables the MAC subsystem.
*/
#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__)
#define HAL_USE_MAC FALSE
#endif
/**
* @brief Enables the MMC_SPI subsystem.
*/
#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
#define HAL_USE_MMC_SPI FALSE
#endif
/**
* @brief Enables the PWM subsystem.
*/
#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__)
#define HAL_USE_PWM FALSE
#endif
/**
* @brief Enables the QSPI subsystem.
*/
#if !defined(HAL_USE_QSPI) || defined(__DOXYGEN__)
#define HAL_USE_QSPI FALSE
#endif
/**
* @brief Enables the RTC subsystem.
*/
#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__)
#define HAL_USE_RTC FALSE
#endif
/**
* @brief Enables the SDC subsystem.
*/
#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__)
#define HAL_USE_SDC FALSE
#endif
/**
* @brief Enables the SERIAL subsystem.
*/
#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
#define HAL_USE_SERIAL FALSE
#endif
/**
* @brief Enables the SERIAL over USB subsystem.
*/
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
#define HAL_USE_SERIAL_USB FALSE
#endif
/**
* @brief Enables the SPI subsystem.
*/
#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__)
#define HAL_USE_SPI FALSE
#endif
/**
* @brief Enables the UART subsystem.
*/
#if !defined(HAL_USE_UART) || defined(__DOXYGEN__)
#define HAL_USE_UART FALSE
#endif
/**
* @brief Enables the USB subsystem.
*/
#if !defined(HAL_USE_USB) || defined(__DOXYGEN__)
#define HAL_USE_USB TRUE
#endif
/**
* @brief Enables the WDG subsystem.
*/
#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__)
#define HAL_USE_WDG FALSE
#endif
/*===========================================================================*/
/* ADC driver related settings. */
/*===========================================================================*/
/**
* @brief Enables synchronous APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__)
#define ADC_USE_WAIT TRUE
#endif
/**
* @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
#define ADC_USE_MUTUAL_EXCLUSION TRUE
#endif
/*===========================================================================*/
/* CAN driver related settings. */
/*===========================================================================*/
/**
* @brief Sleep mode related APIs inclusion switch.
*/
#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__)
#define CAN_USE_SLEEP_MODE TRUE
#endif
/*===========================================================================*/
/* I2C driver related settings. */
/*===========================================================================*/
/**
* @brief Enables the mutual exclusion APIs on the I2C bus.
*/
#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
#define I2C_USE_MUTUAL_EXCLUSION TRUE
#endif
/*===========================================================================*/
/* MAC driver related settings. */
/*===========================================================================*/
/**
* @brief Enables an event sources for incoming packets.
*/
#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__)
#define MAC_USE_ZERO_COPY FALSE
#endif
/**
* @brief Enables an event sources for incoming packets.
*/
#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__)
#define MAC_USE_EVENTS TRUE
#endif
/*===========================================================================*/
/* MMC_SPI driver related settings. */
/*===========================================================================*/
/**
* @brief Delays insertions.
* @details If enabled this options inserts delays into the MMC waiting
* routines releasing some extra CPU time for the threads with
* lower priority, this may slow down the driver a bit however.
* This option is recommended also if the SPI driver does not
* use a DMA channel and heavily loads the CPU.
*/
#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__)
#define MMC_NICE_WAITING TRUE
#endif
/*===========================================================================*/
/* SDC driver related settings. */
/*===========================================================================*/
/**
* @brief Number of initialization attempts before rejecting the card.
* @note Attempts are performed at 10mS intervals.
*/
#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__)
#define SDC_INIT_RETRY 100
#endif
/**
* @brief Include support for MMC cards.
* @note MMC support is not yet implemented so this option must be kept
* at @p FALSE.
*/
#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__)
#define SDC_MMC_SUPPORT FALSE
#endif
/**
* @brief Delays insertions.
* @details If enabled this options inserts delays into the MMC waiting
* routines releasing some extra CPU time for the threads with
* lower priority, this may slow down the driver a bit however.
*/
#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__)
#define SDC_NICE_WAITING TRUE
#endif
/*===========================================================================*/
/* SERIAL driver related settings. */
/*===========================================================================*/
/**
* @brief Default bit rate.
* @details Configuration parameter, this is the baud rate selected for the
* default configuration.
*/
#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__)
#define SERIAL_DEFAULT_BITRATE 38400
#endif
/**
* @brief Serial buffers size.
* @details Configuration parameter, you can change the depth of the queue
* buffers depending on the requirements of your application.
* @note The default is 16 bytes for both the transmission and receive
* buffers.
*/
#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
#define SERIAL_BUFFERS_SIZE 16
#endif
/*===========================================================================*/
/* SERIAL_USB driver related setting. */
/*===========================================================================*/
/**
* @brief Serial over USB buffers size.
* @details Configuration parameter, the buffer size must be a multiple of
* the USB data endpoint maximum packet size.
* @note The default is 256 bytes for both the transmission and receive
* buffers.
*/
#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
#define SERIAL_USB_BUFFERS_SIZE 1
#endif
/**
* @brief Serial over USB number of buffers.
* @note The default is 2 buffers.
*/
#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__)
#define SERIAL_USB_BUFFERS_NUMBER 2
#endif
/*===========================================================================*/
/* SPI driver related settings. */
/*===========================================================================*/
/**
* @brief Enables synchronous APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__)
#define SPI_USE_WAIT TRUE
#endif
/**
* @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
#define SPI_USE_MUTUAL_EXCLUSION TRUE
#endif
/*===========================================================================*/
/* UART driver related settings. */
/*===========================================================================*/
/**
* @brief Enables synchronous APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__)
#define UART_USE_WAIT FALSE
#endif
/**
* @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
#define UART_USE_MUTUAL_EXCLUSION FALSE
#endif
/*===========================================================================*/
/* USB driver related settings. */
/*===========================================================================*/
/**
* @brief Enables synchronous APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
#define USB_USE_WAIT TRUE
#endif
#endif /* HALCONF_H */
/** @} */
Loaded 100 of 224 files, more files were not shown because too many files have changed in this diff. Show more