* Fixed some comments in the defines file.
* Replaced the Git command layer with a Windows Terminal shortcut layer.
* Added numbered tab switching to the Windows Terminal layer.
* Added 'new tab' and 'command pane' commands to the Windows Terminal layer.
* Shortened the USB polling interval for the Iris to 1 millisecond.
* Disabled old style macros and functions for the Iris.
* add feature_unicode.md translation
* consolidate sentence end
* update based on comment
* update based on comment
* update based on comment
* update based on comment
* [Keyboard] YMDK YMD40 v2
* fork default keymap into default and factory
- factory keymap is as assigned by the extracted JSON provided by the vendor
- default keymap is based on the Planck
* add AUDIO_SUPPORTED rule per drashna
* modify factory keymap's readme
Recommend users copy the default keymap instead.
* LED Matrix: add led_matrix_types.h and implement g_led_config
* Set correct flags for non-"modifier" LEDs
* Clean up docs a little
* Add license headers for [led,rgb]_matrix_types.h
* Add default ISO Windows layout for Durgod/K320
* Duplicate default_iso to default_iso_mac
Swap the L{GUI,ALT} keys to match the mac layout, and remove the
windows key lock functionality.
* Remove windows-key lock in default_iso
* Fixup wonky macro layout inherited from ansi keymap
* Add Z70Ultra which is a Hotsawp RGB 65% keyboard
* Update keyboards/melgeek/z70ultra/z70ultra.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/rev1/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update readme.md
* Update info.json
update the name of layout to consistent the keyboard.
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/info.json
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add Z70Ultra
* Support Z70Ultra
[Modified] info.json to support two different layouts
[Add] rules.mk to support default folder
* Update keyboards/melgeek/z70ultra/rev1/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* remove excessive arguments from LAYOUT_split_space
* Update keyboards/melgeek/z70ultra/info.json
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/info.json
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/z70ultra.h
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/z70ultra.h
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/rev1/rules.mk
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Use macro replace with the literal for CS & SW
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* [Keyboard] Support MJ61 which is a 60% ANSI STD Hotswap RGB keyboard
* Update keyboards/melgeek/mj61/mj61.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update keyboards/melgeek/mj61/mj61.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* [Keyboard] MJ61 Add license header for files and the link for readme
* Update keyboards/melgeek/mj61/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/mj61/rev1/config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/mj61/rev1/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/mj61/mj61.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/mj61/mj61.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add GPL for files
* Update keymaps/default/keymap.c
* Update keymaps/via/keymap.c
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* [Keyboard] Update MOJO75 to support multi version and Update the LED's
ID of RGB Matrix
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* added default as a starting point
* added readme per guidelines
* made necessary changed to keymap to follow guidelines
* changed debounce mode for more smooth usage at the cost of mem
* increased polling interval
* Revert "made necessary changed to keymap to follow guidelines"
yikes! I modified the WRONG directory. reverted.
This reverts commit 8ba3d97af538796d765c47b48537dbcf55c3dbc1.
* reverted commit that modified file in incorrect directory. modified intended file.
* added license tp config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* enable LTO for smaller firmware size
* delete since this was added to userspace rules.mk
* readme updates and new images
* Add -j to compile and flash commands in userpsace
* Enable NKRO
* Enable NKRO, VIA, LTO by default
* Stanrc85-ansi readme update
* Stanrc85-alice readme
* quick RGB layer indicator fix in keymap
* Simplify encoder code and clean up keymaps.
-Removed overly complex VIA encoder code. It wasn't adding any value and was confusing users who were trying to customize encoder functionality on VIA keymaps.
-Replaced KC_TILDE with KC_HOME in all keymaps, as KC_TILDE sends a left shift, which was confusing some folks as they tested their build.
-Move layer names to enum
* Change encoder_update_kb to encoder_update_user per PR feedback
* ws2812: Fix number of nops for AVR at 8 MHz
When trying to calculate the number of nops for AVR running at 8 MHz,
the value of `w3` is expected to be negative; however, because `F_CPU`
is defined in tmk_core/avr.mk with the `UL` suffix, the preprocessor
performs its calculations using `unsigned long`, getting a very large
positive number instead of the expected negative number; this then
results in generating code with a huge number of nops. Fix the broken
calculations by performing a comparison before subtraction, so that the
unsigned number wraparound does not occur.
The keyboard which triggers the problem is `handwired/promethium`; the
buggy code silently compiles, but the resulting timings would be
completely wrong.
* ws2812: Clean up the code after the 8 MHz fix
Remove old code which was unsuccessfully trying to clamp negative w1, w2
and w3 values to 0, and set w1_nops, w2_nops and w3_nops directly.
* update lck75 json
* Create info.json
* wrong json file extension
* updated layout height and width in json
* Update info.json
* reverted changes from last update to json
an error was made
* Update info.json
found an extra key in the kle raw data
* Changed product ID
* Update keyboards/lck75/info.json
understood
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Joel Challis <git@zvecr.com>
* Add Z70Ultra which is a Hotsawp RGB 65% keyboard
* Update keyboards/melgeek/z70ultra/z70ultra.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/rev1/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update readme.md
* Update info.json
update the name of layout to consistent the keyboard.
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/info.json
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add Z70Ultra
* Support Z70Ultra
[Modified] info.json to support two different layouts
[Add] rules.mk to support default folder
* Update keyboards/melgeek/z70ultra/rev1/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* remove excessive arguments from LAYOUT_split_space
* Update keyboards/melgeek/z70ultra/info.json
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/info.json
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/z70ultra.h
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/z70ultra.h
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/rev1/rules.mk
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Use macro replace with the literal for CS & SW
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* [Keyboard] Support MJ61 which is a 60% ANSI STD Hotswap RGB keyboard
* Update keyboards/melgeek/mj61/mj61.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update keyboards/melgeek/mj61/mj61.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* [Keyboard] MJ61 Add license header for files and the link for readme
* Update keyboards/melgeek/mj61/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/mj61/rev1/config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/mj61/rev1/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/mj61/mj61.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/mj61/mj61.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add GPL for files
* Update keymaps/default/keymap.c
* Update keymaps/via/keymap.c
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Fix the LED's ID of ISSI for MJ64 REV2
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Add support VIA support to v60 Type R
* Update keyboards/v60_type_r/config.h
Revert combining product and manufacturer
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/v60_type_r/keymaps/via/keymap.c
Remove empty `led_set_user` function
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/v60_type_r/rules.mk
Don't enable bootmagic lite
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add missing empty layers for VIA
* Update keyboards/v60_type_r/rules.mk
Fix comment formatting
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update the VENDOR_ID
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add files via upload
* Add files via upload
* Update rules.mk
* Update rules.mk
* Update info.json
* Update wings.h
* Update info.json
* Update info.json
* Update info.json
* Update info.json
* Update keyboards/ymdk/wings/info.json
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/ymdk/wings/keymaps/via/keymap.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update keyboards/ymdk/wings/keymaps/via/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/ymdk/wings/keymaps/via/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/ymdk/wings/keymaps/via/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/ymdk/wings/keymaps/via/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/ymdk/wings/keymaps/default/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/ymdk/wings/info.json
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/ymdk/wings/wings.h
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/ymdk/wings/readme.md
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/ymdk/wings/readme.md
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/ymdk/wings/info.json
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/ymdk/wings/keymaps/default/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* added Pursuit40 PCB for Panc40
Pursuit40 is another PCB option for the Panc40 that was sold on Panc.co/store
* added via support
* Apply suggestions from code review
* Apply suggestions from code review
* deleted extra row in VIA keymap
sorry about that - extra row was a holdover from a copy-paste
* deleted commented extra row
extra row was a holdover from a copy-paste
* updated VIA keymap
empty layer added
* fixed bug
* Apply suggestions from code review
committed
* Improve Pointing Device report sending
* Hide old report behind preprocessors too
* put host_mouse_send() in curly brackets
* Remove POINTING_DEVICE_ALWAYS_SEND_REPORT functionality
* Fix typo
* fix function ref in docs
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Add lck75 keyboard
A 75% THT keyboard with an OLED and rotary encoder
* added info.json
* fixed rules.mk
* changed vendor id
* Update keyboards/lck75/config.h
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update keyboards/lck75/config.h
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update keyboards/lck75/keymaps/default/keymap.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update keyboards/lck75/keymaps/default/keymap.c
moved code to the rules.mk folder
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update rules.mk
moved oled driver enable to rules.mk code
* Update keyboards/lck75/config.h
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update oled.c
id like to keep the copyright there as it's my friend that helped me with the OLED specifically. also updated the old_task_user
* Update keyboards/lck75/oled.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/lck75/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/lck75/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/lck75/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update rules.mk
* merged oled.c code into keymap.c file
tested and works correctly on my board
* merged code from this file into the keymap.c file
this file is no longer needed
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Fix DEBUG_MATRIX_SCAN_RATE on chibiOS when console is enabled
* update type in dprintf
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add SCRAMBLE
* Make requested changes to PR
* Add all layers to VIA keymap
Implement drashna's PR feedback in order to avoid random data within the layers in VIA.
* Make requested changes to PR
Implement fauxpark's PR feedback to clean up readme.md and rules.mk.
* Make changes based on PR feedback
-Changed VIA layers to enum
-Added info on how to enter the bootloader to readme
* Initial attempt at allowing keyboards to indicate what features they do not support
* try to use a for loop instead
* Update disable_features.mk
Co-authored-by: Drashna Jaelre <drashna@live.com>
* add a few more features
* remove my test fixture
* disable things that make all:all suggested"
Co-authored-by: Zach White <skullydazed@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* First version of keymap
* cleaned up code, made some tweaks, added readme
* extended oled timeout
* resolved final issues, all features functional
* added some leader-key combos
* added missing RGB keys to layout diagram
* removed lines for older elite-c v3
* make filename lowercase
* add old update interval
* fix spacing
* Initial support for Durgod K320 with BootMagic Lite
- Adding missing files
- Add Unicode Map Support & new user keymap
- Remove personalized features from Default keymap
- Added Unicode Map to both Default and kuenhlee keymap.c
- Updated readme.md
- Added additional Fn Shortcut keys
* Additional support for Durgod K320
- Simplifying default keymap
- Renaming durgod_k320 => durgod/k320
- Removing copy of ST_NUCLEO64_F070RB from K320. Replacing with local board.h
- Adding Mac keyboard layout for K320 as alternative via Fn+F12
- Implementing Windows Key lock on K320
- Cleaning up duplicated core functionality
- Adding default_toggle_mac_windows keymap with:
- Ability to toggle between Windows and MacOS layout
- Mac Media Lock functionality.
* Updating K320 keymap readme
Co-authored-by: kuenhlee <eos.camera.lee@gmail.com>
* Knobgoblin keyboard initial commit
New macropad initial commit. Keyboard and keymap
* corrected bracket and layout name
* attempting info file fix again
* info file line 33 hanging comma fix
* Update keyboards/knobgoblin/config.h
per fauxpark review
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/knobgoblin/readme.md
per fauxpark review
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/knobgoblin/readme.md
per fauxpark review
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
The LED anodes of the pockettype are connected to the bus voltage when a
pro micro is used, but other controllers like the Elite-C (v4) connect this
pin to GPIO B0. This means that LEDs do not work by default for those
controllers.
This commit implements a fix for that by setting the B0 pin high.
* Add RGB Matrix support for Mark 65 keyboard
* Update drive LED count
* Removed unnecessary define line
* Corrected typo
Co-authored-by: filterpaper <filterpaper@localhost>
* initial commit Dawn keyboard
* fixing some matrix
* final tweaks to keymaps and info.json layout
* fix info.json missing delimiter
* missing elements in info.json layout, resolved through lint
* fixed missing link image in readme
* Update keyboards/mechstudio/dawn/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: David <david@tarpit.be>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Fix minor typo in "General FAQ"
"want to do brand it with QMK" -> "want to brand it with QMK"
* Reword some of "Debugging FAQ" & "Miscellaneous FAQ".
Mostly grammatical wording of some parts and missing capitalization
* Initial commit on new clean branch. Testing out functionality of oled and encoder for default features.
* Cleaned up the initial push and removed the fancy keymap until the extra features and functionality can be tested and made more user friendly.
* Cleaned up the readme some more, compiled and tested both default and via keymaps, and did another round of checks to prepare for starting the PR.
* Cleaning up the keymap to meet expected formatting in a couple places and also adding in the TAP_CODE_DELAY after newly encoutnered encoder issues and inconsistencies.
* Initial commit of branch specifically for implementing the more complicated fancy keymap as I expect the main PR to be approved first.
* testing bongo cat out
* Progress with intended OLED behavior. Needs to be cleaned up still.
* Cleaned up bongocat and added WPM display on it.
* Almost there. Need to rethink the layer checking in encoder.
* Fixing all the merge issues I didn't check before doing the last commit. Learn from my mistakes, check your commits.
* Fixed and updated fancy firmware and bongocat firmware.
* Updating license year since I will be doing a PR anyway.
* Update keyboards/mechwild/mercutio/keymaps/fancy/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* split config.h for each variant
* split rules.mk for each variant
* split source and header files for each variant
* move keymaps to the appropriate variant
* update keyboard readme
* update keymap readmes
* differentiate Staggered and Ortho USB Device Strings
* clean up formatting in info.json
* split info.json files for each variant
* break up the info.json for readability
* correct key positioning and board dimensions
* correct key object sequences
* add weak encoder function to keyboard level
Allows Configurator-compiled firmware to have encoder functionality.
* add variant-specific readme files and bootloader instructions
* QMK Configurator layout support for Pinky
3-row and 4-row versions
* refactor default keymaps
- use an enum for layer names
- remove redundant definitions
- qmk cformat pass
- modify pinky/4 via keymap to mirror pinky/4 default functionality
* remove LAYOUT_kc macros
This usage is not endorsed by QMK as it has been found to be confusing to novice users.
* add VIA support to pinky/3
* update config.h files
Removes unnecessary definitions for Backlight, RGB Underglow, Magic config and MIDI.
* update main rules.mk file
Updates the rules.mk file to match the formatting of the current QMK-provided template. Removes sample bootloader comments, feature rules that are no longer included in the template, and updates the in-line comments.
* update and split keyboard readme
Updates the main readme file's formatting, adds instructions to access bootloader mode, and adds more specific readmes for each version.
* add line breaks between rows in the info.json files
* rename layout macros for Community Layout forward compatibility
The layouts of the Pinky3 and Pinky4 aren't currently Community Layouts, but support for them could be added with a rules.mk edit should the layouts be added to QMK.
* Update other keyboards for rgb matrix changes
* Remove customized bootmagic code
* Fix corne layout compilation error
* Fix compiler errors with all keymaps
* Add Simple Visualizer for ergodox infinity
* Fix compile issue with Corne
* Fix keymap stuff
* Add alias for mouse layer
* Add Halmak Keyboard layout
* Updates for Kyria
* Add support for oled interval
* Change RGB stuff
[CHANGE] Fix coexistence issues
* Fix rgb_stuff
* Add custom ploopyco mouse keymap
* Decrease default dwell time
* Updates based on last breaking changes update
* Disable command on dactyl
* Update ergodox to use proper commands for rgb matrix indicators
* Update all rgb matrix indicator functions
* Update rules for dactyl-manuform
* Reduce wait time for mouse layer off event
* Add more info to logger
* Add wrappers for get_tapping term
* Move version.h include into only file that actually needs it
* Update rgb sleep stuff
* Update key print function
* Change DM keymap settings
* Change pin for DM Manuform
* Add Proton C stuff for Corne keymap
* more arm corne tinkering
* Even more arm stuff for corne
* Cleanup corne stuff
* redirect default keymap to drashna
because I am a very bad man
* change corne rgb priority
* Update tractyl manuform to not conflict
* Add more secret stuff
* more dactyl tweaks
* Add more options to split transport
* Changes of oled support
* Change split settings
* Improve keylogger formatting more
* tweak oled stuff
* Oled and such tweaks
* Reduce brightness due to leds
* Decrease brightness more
* Only run layer code if master
* info.json: human-friendly formatting
* info.json: update key object labels
Some of the characters in the original file don't play nicely with `qmk info -l` on Windows.
* info.json: correct key object order
* exclude 'helix/rev3_4rows' from CI
Since helix/rev3_4rows is almost the same as helix/rev3_5rows, there is no point in checking with travis-ci.
* include 'helix/pico/back' to CI
helix pico and helix rev2 are still available. I would like to check both by travis-ci, but here I will add a check only for helix pico.
* first pass
* firmware firmware?
* Split out debug + testing docs
* tidy up duplicate css
* Add extra info to debug example
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* add support for bigknob
Add support for bigknob macropad
* corrected files
* Apply suggestions from code review
Co-authored-by: Joel Challis <git@zvecr.com>
* corrected tap dance
* Update config.h
* correct image link
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
* added GPL headers
* Update readme.md
* update rules to disable tap dance
* remove tap dance
* Update rules.mk
trying to get to pass travis test
* Update rules.mk
remove tap dance
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
QMK (*Quantum Mechanical Keyboard*) is an open source community centered around developing computer input devices. The community encompasses all sorts of input devices, such as keyboards, mice, and MIDI devices. A core group of collaborators maintains [QMK Firmware](https://github.com/qmk/qmk_firmware), [QMK Configurator](https://config.qmk.fm), [QMK Toolbox](https://github.com/qmk/qmk_toolbox), [qmk.fm](https://qmk.fm), and this documentation with the help of community members like you.
## Get Started
Totally new to QMK? There are two ways to get started:
<divclass="flex-container">
*Basic: [QMK Configurator](https://config.qmk.fm)
* Just select your keyboard from the dropdown and program your keyboard.
* We have an [introductory video](https://www.youtube.com/watch?v=-imgglzDMdY) you can watch.
* There is also an overview [document you can read](newbs_building_firmware_configurator.md).
@ -28,7 +28,7 @@ As you can see the payload describes all aspects of a keyboard necessary to crea
To compile your keymap into a firmware simply POST your JSON to the `/v1/compile` endpoint. In the following example we've placed the JSON payload into a file named `json_data`.
The QMK API provides an asynchronous API that Web and GUI tools can use to compile arbitrary keymaps for any keyboard supported by [QMK](http://qmk.fm/). The stock keymap template supports all QMK keycodes that do not require supporting C code. Keyboard maintainers can supply their own custom templates to enable more functionality.
The QMK API provides an asynchronous API that Web and GUI tools can use to compile arbitrary keymaps for any keyboard supported by [QMK](https://qmk.fm/). The stock keymap template supports all QMK keycodes that do not require supporting C code. Keyboard maintainers can supply their own custom templates to enable more functionality.
[Clang-format](https://clang.llvm.org/docs/ClangFormat.html) is part of LLVM and can automatically format your code for you, because ain't nobody got time to do it manually. We supply a configuration file for it that applies most of the coding conventions listed above. It will only change whitespace and newlines, so you will still have to remember to include optional braces yourself.
Use the [full LLVM installer](http://llvm.org/builds/) to get clang-format on Windows, or use `sudo apt install clang-format` on Ubuntu.
Use the [full LLVM installer](https://llvm.org/builds/) to get clang-format on Windows, or use `sudo apt install clang-format` on Ubuntu.
If you run it from the command-line, pass `-style=file` as an option and it will automatically find the .clang-format configuration file in the QMK root directory.
@ -23,7 +23,7 @@ Please keep these things in mind:
# Project Overview
QMK is largely written in C, with specific features and parts written in C++. It targets embedded processors found in keyboards, particularly AVR ([LUFA](http://www.fourwalledcubicle.com/LUFA.php)) and ARM ([ChibiOS](http://www.chibios.com)). If you are already well versed in Arduino programming you'll find a lot of the concepts and limitations familiar. Prior experience with Arduino is not required to successfully contribute to QMK.
QMK is largely written in C, with specific features and parts written in C++. It targets embedded processors found in keyboards, particularly AVR ([LUFA](https://www.fourwalledcubicle.com/LUFA.php)) and ARM ([ChibiOS](https://www.chibios.org)). If you are already well versed in Arduino programming you'll find a lot of the concepts and limitations familiar. Prior experience with Arduino is not required to successfully contribute to QMK.
<!-- FIXME: We should include a list of resources for learning C here. -->
QMK (*Quantum Mechanical Keyboard*) ist eine Open-Source-Community, welche die QMK-Firmware, die QMK-Toolbox, [qmk.fm](https://qmk.fm) und diese Dokumententation betreut. QMK-Firmware ist eine Weiterentwicklung der [tmk\_keyboard](http://github.com/tmk/tmk_keyboard)-Tastatur-Firmware mit vielen nützlichen Zusatzfunktionen für Atmel AVR-Prozessoren. Ursprünglich wurde sie für Produkte von [OLKB](http://olkb.com), das [ErgoDox EZ](http://www.ergodox-ez.com) und das [Clueboard](http://clueboard.co/) entwickelt. Im Laufe der Zeit wurde sie mit Hilfe von [ChibiOS](http://chibios.org) auch für die ARM-Architektur angepasst. Außerdem ist es inzwischen möglich, auch handverdrahtete Tastaturen und selbst geätzte PCBs mit QMK zu verwenden.
QMK (*Quantum Mechanical Keyboard*) ist eine Open-Source-Community, welche die QMK-Firmware, die QMK-Toolbox, [qmk.fm](https://qmk.fm) und diese Dokumententation betreut. QMK-Firmware ist eine Weiterentwicklung der [tmk\_keyboard](https://github.com/tmk/tmk_keyboard)-Tastatur-Firmware mit vielen nützlichen Zusatzfunktionen für Atmel AVR-Prozessoren. Ursprünglich wurde sie für Produkte von [OLKB](https://olkb.com), das [ErgoDox EZ](https://www.ergodox-ez.com) und das [Clueboard](https://clueboard.co/) entwickelt. Im Laufe der Zeit wurde sie mit Hilfe von [ChibiOS](https://chibios.org) auch für die ARM-Architektur angepasst. Außerdem ist es inzwischen möglich, auch handverdrahtete Tastaturen und selbst geätzte PCBs mit QMK zu verwenden.
@ -18,7 +18,7 @@ Wenn Du es vorziehst mit einer grafischen Oberfläche zu entwickeln kannst Du au
Du wirst ein Programm benötigen, mit dem Du **plain text** (= reiner Text) Dateien bearbeiten und speichern kannst. Wenn Du Windows benutzt, reicht dafür schon das normale `Notepad` und für Linux z.B. `gedit` oder `leafpad`. Beide sind sehr rudimentäre Editoren deren Funktionsumfang aber vollkommen ausreicht. Für macOS' standard `TextEdit` muss man ein bisschen vorsichtig sein und darauf achten, beim Speichern explizit unter _Format_ die Option _Reiner Text_ auszuwählen.
Ansonsten ist es empfehlenswert, einen Editor herunterzuladen der für die Programmierung und das Bearbeiten von Code ausgelegt ist wie z.b [Notepad++](http://notepad-plus-plus.org/), [Sublime Text](https://www.sublimetext.com/) oder [VS Code](https://code.visualstudio.com/).
Ansonsten ist es empfehlenswert, einen Editor herunterzuladen der für die Programmierung und das Bearbeiten von Code ausgelegt ist wie z.b [Notepad++](https://notepad-plus-plus.org/), [Sublime Text](https://www.sublimetext.com/) oder [VS Code](https://code.visualstudio.com/).
?> Immer noch unsicher, welcher Text Editor der Richtige für Dich ist? Laurence Bradford hat eine hervorragende [Einleitung](https://learntocodewith.me/programming/basics/text-editors/) zu dem Thema geschrieben (auf Englisch).
@ -44,7 +44,7 @@ Wir haben versucht, die Installation der Entwicklungsumgebung für QMK so einfac
Du wirst MSYS2 (o.Ä.) und Git benötigen.
* Befolge die Installationsanleitung auf der [MSYS2 Homepage](http://www.msys2.org)
* Befolge die Installationsanleitung auf der [MSYS2 Homepage](https://www.msys2.org)
* Schließe alle offenen MSYS2 Fenster und öffne ein neues MSYS2 MinGW 64-bit Terminal
* Installiere Git mit dem Kommando: `pacman -S git`
Most keymaps have an image depicting the layout. You can use [Keyboard Layout Editor](http://keyboard-layout-editor.com) to create an image. Upload it to [Imgur](http://imgur.com) or another hosting service, please do not include images in your Pull Request.
Most keymaps have an image depicting the layout. You can use [Keyboard Layout Editor](https://keyboard-layout-editor.com) to create an image. Upload it to [Imgur](https://imgur.com) or another hosting service, please do not include images in your Pull Request.
Below the image you should write a short description to help people understand your keymap.
QMK (*Quantum Mechanical Keyboard*) es una comunidad open source que mantiene el firmware QMK, QMK Toolbox, qmk.fm, y estos documentos. El firmware QMK es un firmware para teclados basado en [tmk\_keyboard](http://github.com/tmk/tmk_keyboard) con algunas características útiles para controladores Atmel AVR, y más específicamente, la [línea de productos OLKB](http://olkb.com), el teclado [ErgoDox EZ](http://www.ergodox-ez.com), y la [línea de productos Clueboard](http://clueboard.co/). También ha sido portado a chips ARM chips usando ChibiOS. Lo puedes utilizar para manejar tu propio teclado ya sea cableado a mano o basado en una PCB personalizada.
QMK (*Quantum Mechanical Keyboard*) es una comunidad open source que mantiene el firmware QMK, QMK Toolbox, qmk.fm, y estos documentos. El firmware QMK es un firmware para teclados basado en [tmk\_keyboard](https://github.com/tmk/tmk_keyboard) con algunas características útiles para controladores Atmel AVR, y más específicamente, la [línea de productos OLKB](https://olkb.com), el teclado [ErgoDox EZ](https://www.ergodox-ez.com), y la [línea de productos Clueboard](https://clueboard.co/). También ha sido portado a chips ARM chips usando ChibiOS. Lo puedes utilizar para manejar tu propio teclado ya sea cableado a mano o basado en una PCB personalizada.
## Cómo conseguirlo
@ -29,4 +29,4 @@ Este ejemplo compilaría la revisión `rev4` del teclado `planck` con el keymap
## Cómo personalizar
QMK tiene montones de [características](es/features.md) para explorar, y una buena cantidad de [documentación de referencia](http://docs.qmk.fm) en la que sumergirse. Se pueden sacar provecho de la mayoría de las características modificando tu [keymap](es/keymap.md), y cambiando los [keycodes](es/keycodes.md).
QMK tiene montones de [características](es/features.md) para explorar, y una buena cantidad de [documentación de referencia](https://docs.qmk.fm) en la que sumergirse. Se pueden sacar provecho de la mayoría de las características modificando tu [keymap](es/keymap.md), y cambiando los [keycodes](es/keycodes.md).
QMK es compatible con una variedad de hardware. Si tu procesador puede ser dirigido por [LUFA](http://www.fourwalledcubicle.com/LUFA.php) o [ChibiOS](http://www.chibios.com), probablemente puedes hacer que QMK se ejecute en él. Esta sección explora cómo hacer que QMK se ejecute y se comunique con hardware de todo tipo.
QMK es compatible con una variedad de hardware. Si tu procesador puede ser dirigido por [LUFA](https://www.fourwalledcubicle.com/LUFA.php) o [ChibiOS](https://www.chibios.org), probablemente puedes hacer que QMK se ejecute en él. Esta sección explora cómo hacer que QMK se ejecute y se comunique con hardware de todo tipo.
* [Pautas de teclados](hardware_keyboard_guidelines.md)
@ -32,7 +32,7 @@ Esto creará todos los archivos necesarios para tu nuevo teclado, y rellenará l
## `readme.md`
Aquí es donde describirás tu teclado. Por favor sigue la [Plantilla del readme de teclados](documentation_templates.md#keyboard-readmemd-template) al escribir tu `readme.md`. Te animamos a colocar una imagen en la parte superior de tu `readme.md`. Por favor, utiliza un servicio externo como [Imgur](http://imgur.com) para alojar las imágenes.
Aquí es donde describirás tu teclado. Por favor sigue la [Plantilla del readme de teclados](documentation_templates.md#keyboard-readmemd-template) al escribir tu `readme.md`. Te animamos a colocar una imagen en la parte superior de tu `readme.md`. Por favor, utiliza un servicio externo como [Imgur](https://imgur.com) para alojar las imágenes.
@ -98,7 +98,7 @@ Por ejemplo, si tienes un PCB de 60% que soporta ANSI e ISO podría definir los
En un esfuerzo por mantener el tamaño de repo abajo ya no estamos aceptando archivos binarios de cualquier formato, con pocas excepciones. Alojarlos en otro lugar (por ejemplo <https://imgur.com>) y enlazarlos en el `readme.md` es preferible.
Para archivos de hardware (tales como placas, casos, pcb) puedes contribuir a [qmk.fm repo](https://github.com/qmk/qmk.fm) y estarán disponibles en [qmk.fm](http://qmk.fm). Archivos descargables se almacenan en `/<teclado>/` (nombre sigue el mismo formato que el anterior), se sirven en `http://qmk.fm/<teclado>/`, y se generan páginas de `/_pages/<teclado>/` que se sirven en la misma ubicación (Los archivos .md se generan en archivos .html mediante Jekyll). Echa un vistazo a la carpeta `lets_split` para ver un ejemplo.
Para archivos de hardware (tales como placas, casos, pcb) puedes contribuir a [qmk.fm repo](https://github.com/qmk/qmk.fm) y estarán disponibles en [qmk.fm](https://qmk.fm). Archivos descargables se almacenan en `/<teclado>/` (nombre sigue el mismo formato que el anterior), se sirven en `https://qmk.fm/<teclado>/`, y se generan páginas de `/_pages/<teclado>/` que se sirven en la misma ubicación (Los archivos .md se generan en archivos .html mediante Jekyll). Echa un vistazo a la carpeta `lets_split` para ver un ejemplo.
## Predeterminados de teclado
@ -140,7 +140,7 @@ El año debe ser el primer año en que se crea el archivo. Si el trabajo se hizo
## Licencia
El núcleo de QMC está licenciado bajo la [GNU General Public License](https://www.gnu.org/licenses/licenses.en.html). Si estás enviando binarios para los procesadores AVR puedes elegir cualquiera [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) o [GPLv3](https://www.gnu.org/licenses/gpl.html). Si estás enviando binarios para ARM procesadores debes elegir [GPL Versión 3](https://www.gnu.org/licenses/gpl.html) para cumplir con los [ChibiOS](http://www.chibios.org) licencia GPLv3.
El núcleo de QMC está licenciado bajo la [GNU General Public License](https://www.gnu.org/licenses/licenses.en.html). Si estás enviando binarios para los procesadores AVR puedes elegir cualquiera [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) o [GPLv3](https://www.gnu.org/licenses/gpl.html). Si estás enviando binarios para ARM procesadores debes elegir [GPL Versión 3](https://www.gnu.org/licenses/gpl.html) para cumplir con los [ChibiOS](https://www.chibios.org) licencia GPLv3.
Si tu teclado hace uso de la [uGFX](https://gfx.io) características dentro de QMK debes cumplir con la [Licencia de uGFX](https://ugfx.io/license.html), que requiere una licencia comercial separada antes de vender un dispositivo que contiene uGFX.
QMK es un poderoso firmware Open Source para tu teclado mecánico. Puedes utilizar QMK para personalizar tu teclado en maneras a la vez simples y potentes. Gente de todos los niveles de habilidad, desde completos novatos hasta expertos programadores, han utilizado con éxito QMK para personalizar sus teclados. Esta guía te ayudará a hacer lo mismo, sin importar tu nivel de habilidad.
¿No estás seguro de si tu teclado puede ejecutar QMK? Si es un teclado mecánico construido por ti mismo probablemente puedas. Damos soporte a [gran número de placas de hobbistas](http://qmk.fm/keyboards/), e incluso si tu teclado actual no pudiera ejecutar QMK no deberías tener problemas encontrando uno que cumpliera tus necesidades.
¿No estás seguro de si tu teclado puede ejecutar QMK? Si es un teclado mecánico construido por ti mismo probablemente puedas. Damos soporte a [gran número de placas de hobbistas](https://qmk.fm/keyboards/), e incluso si tu teclado actual no pudiera ejecutar QMK no deberías tener problemas encontrando uno que cumpliera tus necesidades.
Note that running `make` with `sudo` is generally ***not*** a good idea, and you should use one of the former methods, if possible.
### Linux `udev` Rules
### Linux `udev` Rules :id=linux-udev-rules
On Linux, you'll need proper privileges to communicate with the bootloader device. You can either use `sudo` when flashing firmware (not recommended), or place [this file](https://github.com/qmk/qmk_firmware/tree/master/util/udev/50-qmk.rules) into `/etc/udev/rules.d/`.
This page details various common questions people have about troubleshooting their keyboards.
# Debug Console
## Debugging :id=debugging
Your keyboard will output debug information if you have `CONSOLE_ENABLE = yes` in your `rules.mk`. By default the output is very limited, but you can turn on debug mode to increase the amount of debug output. Use the `DEBUG` keycode in your keymap, use the [Command](feature_command.md) feature to enable debug mode, or add the following code to your keymap.
```c
voidkeyboard_post_init_user(void){
// Customise these values to desired behaviour
debug_enable=true;
debug_matrix=true;
//debug_keyboard=true;
//debug_mouse=true;
}
```
## Debugging Tools
There are two different tools you can use to debug your keyboard.
### Debugging With QMK Toolbox
For compatible platforms, [QMK Toolbox](https://github.com/qmk/qmk_toolbox) can be used to display debug messages from your keyboard.
### Debugging With hid_listen
Prefer a terminal based solution? [hid_listen](https://www.pjrc.com/teensy/hid_listen.html), provided by PJRC, can also be used to display debug messages. Prebuilt binaries for Windows,Linux,and MacOS are available.
## Sending Your Own Debug Messages
Sometimes it's useful to print debug messages from within your [custom code](custom_quantum_functions.md). Doing so is pretty simple. Start by including `print.h` at the top of your file:
```c
#include"print.h"
```
After that you can use a few different print functions:
*`print("string")`: Print a simple string.
*`uprintf("%s string", var)`: Print a formatted string
*`dprint("string")` Print a simple string, but only when debug mode is enabled
*`dprintf("%s string", var)`: Print a formatted string, but only when debug mode is enabled
## Debug Examples
Below is a collection of real world debugging examples. For additional information, refer to [Debugging/Troubleshooting QMK](faq_debug.md).
### Which matrix position is this keypress?
When porting, or when attempting to diagnose pcb issues, it can be useful to know if a keypress is scanned correctly. To enable logging for this scenario, add the following code to your keymaps `keymap.c`
When testing performance issues, it can be useful to know the frequency at which the switch matrix is being scanned. To enable logging for this scenario, add the following code to your keymaps `config.h`
```c
#define DEBUG_MATRIX_SCAN_RATE
```
Example output
```text
> matrix scan frequency: 315
> matrix scan frequency: 313
> matrix scan frequency: 316
> matrix scan frequency: 316
> matrix scan frequency: 316
> matrix scan frequency: 316
```
## `hid_listen` Can't Recognize Device
When debug console of your device is not ready you will see like this:
@ -11,7 +98,7 @@ When debug console of your device is not ready you will see like this:
Waiting for device:.........
```
once the device is plugged in then *hid_listen* finds it you will get this message:
Once the device is plugged in then *hid_listen* finds it you will get this message:
```
Waiting for new device:.........................
@ -20,129 +107,12 @@ Listening:
If you can't get this 'Listening:' message try building with `CONSOLE_ENABLE=yes` in [Makefile]
You may need privilege to access the device on OS like Linux.
- try `sudo hid_listen`
You may need privileges to access the device an OS like Linux. Try `sudo hid_listen`.
## Can't Get Message on Console
Check:
- *hid_listen* finds your device. See above.
- Enable debug with pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands).
-set `debug_enable=true`. See [Testing and Debugging](newbs_testing_debugging.md#debugging)
-try using 'print' function instead of debug print. See **common/print.h**.
-disconnect other devices with console function. See [Issue #97](https://github.com/tmk/tmk_keyboard/issues/97).
***
# Miscellaneous
## Safety Considerations
You probably don't want to "brick" your keyboard, making it impossible
to rewrite firmware onto it. Here are some of the parameters to show
what things are (and likely aren't) too risky.
- If your keyboard map does not include RESET, then, to get into DFU
mode, you will need to press the reset button on the PCB, which
requires unscrewing the bottom.
- Messing with tmk_core / common files might make the keyboard
inoperable
- Too large a .hex file is trouble; `make dfu` will erase the block,
test the size (oops, wrong order!), which errors out, failing to
flash the keyboard, leaving it in DFU mode.
- To this end, note that the maximum .hex file size on Planck is
7000h (28672 decimal)
```
Linking: .build/planck_rev4_cbbrowne.elf [OK]
Creating load file for Flash: .build/planck_rev4_cbbrowne.hex [OK]
Size after:
text data bss dec hex filename
0 22396 0 22396 577c planck_rev4_cbbrowne.hex
```
- The above file is of size 22396/577ch, which is less than
28672/7000h
- As long as you have a suitable alternative .hex file around, you
can retry, loading that one
- Some of the options you might specify in your keyboard's Makefile
consume extra memory; watch out for BOOTMAGIC_ENABLE,
- DFU tools do /not/ allow you to write into the bootloader (unless
you throw in extra fruit salad of options), so there is little risk
there.
- EEPROM has around a 100000 write cycle. You shouldn't rewrite the
firmware repeatedly and continually; that'll burn the EEPROM
eventually.
## NKRO Doesn't work
First you have to compile firmware with this build option `NKRO_ENABLE` in **Makefile**.
Try `Magic`**N** command(`LShift+RShift+N` by default) when **NKRO** still doesn't work. You can use this command to toggle between **NKRO** and **6KRO** mode temporarily. In some situations **NKRO** doesn't work you need to switch to **6KRO** mode, in particular when you are in BIOS.
If your firmware built with `BOOTMAGIC_ENABLE` you need to turn its switch on by `BootMagic`**N** command(`Space+N` by default). This setting is stored in EEPROM and kept over power cycles.
Use `1UL<<16` instead of `1<<16` in `read_cols()` in [matrix.h] when your columns goes beyond 16.
In C `1` means one of [int] type which is [16 bit] in case of AVR so you can't shift left more than 15. You will get unexpected zero when you say `1<<16`. You have to use [unsigned long] type with `1UL`.
## Special Extra Key Doesn't Work (System, Audio Control Keys)
You need to define `EXTRAKEY_ENABLE` in `rules.mk` to use them in QMK.
```
EXTRAKEY_ENABLE = yes # Audio control and System control
```
## Wakeup from Sleep Doesn't Work
In Windows check `Allow this device to wake the computer` setting in Power **Management property** tab of **Device Manager**. Also check BIOS setting.
Pressing any key during sleep should wake host.
## Using Arduino?
**Note that Arduino pin naming is different from actual chip.** For example, Arduino pin `D0` is not `PD0`. Check circuit with its schematics yourself.
Arduino Leonardo and micro have **ATMega32U4** and can be used for TMK, though Arduino bootloader may be a problem.
## Enabling JTAG
By default, the JTAG debugging interface is disabled as soon as the keyboard starts up. JTAG-capable MCUs come from the factory with the `JTAGEN` fuse set, and it takes over certain pins of the MCU that the board may be using for the switch matrix, LEDs, etc.
If you would like to keep JTAG enabled, just add the following to your `config.h`:
```c
#define NO_JTAG_DISABLE
```
## USB 3 Compatibility
I heard some people have a problem with USB 3 port, try USB 2 port.
## Problem on BIOS (UEFI)/Resume (Sleep & Wake)/Power Cycles
Some people reported their keyboard stops working on BIOS and/or after resume(power cycles).
As of now root of its cause is not clear but some build options seem to be related. In Makefile try to disable those options like `CONSOLE_ENABLE`, `NKRO_ENABLE`, `SLEEP_LED_ENABLE` and/or others.
@ -11,7 +11,7 @@ Keycodes are actually defined in [common/keycode.h](https://github.com/qmk/qmk_f
There are 3 standard keyboard layouts in use around the world- ANSI, ISO, and JIS. North America primarily uses ANSI, Europe and Africa primarily use ISO, and Japan uses JIS. Regions not mentioned typically use either ANSI or ISO. The keycodes corresponding to these layouts are shown here:
<!-- Source for this image: http://www.keyboard-layout-editor.com/#/gists/bf431647d1001cff5eff20ae55621e9a -->
<!-- Source for this image: https://www.keyboard-layout-editor.com/#/gists/bf431647d1001cff5eff20ae55621e9a -->
## How Can I Make Custom Names For Complex Keycodes?
@ -42,8 +42,8 @@ The key found on most modern keyboards that is located between `KC_RGUI` and `KC
Use keycode for Print Screen(`KC_PSCREEN` or `KC_PSCR`) instead of `KC_SYSREQ`. Key combination of 'Alt + Print Screen' is recognized as 'System request'.
See [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) and
* http://en.wikipedia.org/wiki/Magic_SysRq_key
* http://en.wikipedia.org/wiki/System_request
* https://en.wikipedia.org/wiki/Magic_SysRq_key
* https://en.wikipedia.org/wiki/System_request
## Power Keys Aren't Working
@ -60,13 +60,13 @@ Modifier keys or layers can be stuck unless layer switching is configured proper
For Modifier keys and layer actions you have to place `KC_TRANS` on same position of destination layer to unregister the modifier key or return to previous layer on release event.
This feature is for *mechanical lock switch* like [this Alps one](http://deskthority.net/wiki/Alps_SKCL_Lock). You can enable it by adding this to your `config.h`:
This feature is for *mechanical lock switch* like [this Alps one](https://deskthority.net/wiki/Alps_SKCL_Lock). You can enable it by adding this to your `config.h`:
Testing your keyboard is usually pretty straightforward. Press every single key and make sure it sends the keys you expect. You can use [QMK Configurator](https://config.qmk.fm/#/test/)'s test mode to check your keyboard, even if it doesn't run QMK.
## Safety Considerations
You probably don't want to "brick" your keyboard, making it impossible
to rewrite firmware onto it. Here are some of the parameters to show
what things are (and likely aren't) too risky.
- If your keyboard map does not include RESET, then, to get into DFU
mode, you will need to press the reset button on the PCB, which
requires unscrewing the bottom.
- Messing with tmk_core / common files might make the keyboard
inoperable
- Too large a .hex file is trouble; `make dfu` will erase the block,
test the size (oops, wrong order!), which errors out, failing to
flash the keyboard, leaving it in DFU mode.
- To this end, note that the maximum .hex file size on e.g. Planck
is 7000h (28672 decimal)
```
Linking: .build/planck_rev4_cbbrowne.elf [OK]
Creating load file for Flash: .build/planck_rev4_cbbrowne.hex [OK]
Size after:
text data bss dec hex filename
0 22396 0 22396 577c planck_rev4_cbbrowne.hex
```
- The above file is of size 22396/577ch, which is less than
28672/7000h
- As long as you have a suitable alternative .hex file around, you
can retry, loading that one
- Some of the options you might specify in your keyboard's Makefile
consume extra memory; watch out for BOOTMAGIC_ENABLE,
- DFU tools do /not/ allow you to write into the bootloader (unless
you throw in an extra fruit salad of options), so there is little risk
there.
- EEPROM has around a 100000 (100k) write cycle. You shouldn't rewrite
the firmware repeatedly and continually; that'll burn the EEPROM
eventually.
## NKRO Doesn't work
First you have to compile firmware with the build option `NKRO_ENABLE` in **Makefile**.
Try `Magic`**N** command(`LShift+RShift+N` by default) when **NKRO** still doesn't work. You can use this command to toggle between **NKRO** and **6KRO** mode temporarily. In some situations **NKRO** doesn't work and you will need to switch to **6KRO** mode, in particular when you are in BIOS.
If your firmware was built with `BOOTMAGIC_ENABLE` you need to turn its switch on by `BootMagic`**N** command(`Space+N` by default). This setting is stored in EEPROM and kept over power cycles.
Use `1UL<<16` instead of `1<<16` in `read_cols()` in [matrix.h] when your columns goes beyond 16.
In C `1` means one of [int] type which is [16 bit] in case of AVR, so you can't shift left more than 15. Thus, calculating `1<<16` will unexpectedly equal zero. To work around this, you have to use [unsigned long] type with `1UL`.
## Special Extra Key Doesn't Work (System, Audio Control Keys)
You need to define `EXTRAKEY_ENABLE` in `rules.mk` to use them in QMK.
```
EXTRAKEY_ENABLE = yes # Audio control and System control
```
## Wake from Sleep Doesn't Work
In Windows check `Allow this device to wake the computer` setting in **Power Management** property tab of **Device Manager**. Also check your BIOS settings. Pressing any key during sleep should wake host.
## Using Arduino?
**Note that Arduino pin naming is different from actual chip.** For example, Arduino pin `D0` is not `PD0`. Check circuit with its schematics yourself.
Arduino Leonardo and micro have **ATMega32U4** and can be used for TMK, though Arduino bootloader may be a problem.
## Enabling JTAG
By default, the JTAG debugging interface is disabled as soon as the keyboard starts up. JTAG-capable MCUs come from the factory with the `JTAGEN` fuse set, and it takes over certain pins of the MCU that the board may be using for the switch matrix, LEDs, etc.
If you would like to keep JTAG enabled, just add the following to your `config.h`:
```c
#define NO_JTAG_DISABLE
```
## USB 3 Compatibility
Some problems can be fixed by switching from a USB 3.x port to a USB 2.0 port.
## Mac Compatibility
### OS X 10.11 and Hub
See here: https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034
## Problem in BIOS (UEFI) Setup/Resume (Sleep & Wake)/Power Cycles
Some people reported their keyboard stops working in BIOS and/or after resume(power cycles).
As of now the root cause is not clear, but some build options seem to be related. In Makefile, try to disable options like `CONSOLE_ENABLE`, `NKRO_ENABLE`, `SLEEP_LED_ENABLE` and/or others.
@ -39,7 +39,7 @@ Not all keycodes below will work depending on which haptic mechanism you have ch
First you will need a build a circuit to drive the solenoid through a mosfet as most MCU will not be able to provide the current needed to drive the coil in the solenoid.
[Wiring diagram provided by Adafruit](https://playground.arduino.cc/uploads/Learning/solenoid_driver.pdf)
[Wiring diagram provided by Adafruit](https://cdn-shop.adafruit.com/product-files/412/solenoid_driver.pdf)
@ -10,9 +10,11 @@ If you want to use RGB LED's you should use the [RGB Matrix Subsystem](feature_r
There is basic support for addressable LED matrix lighting with the I2C IS31FL3731 RGB controller. To enable it, add this to your `rules.mk`:
LED_MATRIX_ENABLE = yes
LED_MATRIX_DRIVER = IS31FL3731
```make
LED_MATRIX_ENABLE= yes
LED_MATRIX_DRIVER= IS31FL3731
```
You can use between 1 and 4 IS31FL3731 IC's. Do not specify `LED_DRIVER_ADDR_<N>` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`:
| Variable | Description | Default |
@ -20,7 +22,7 @@ You can use between 1 and 4 IS31FL3731 IC's. Do not specify `LED_DRIVER_ADDR_<N>
| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages | 100 |
| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
| `LED_DRIVER_COUNT` | (Required) How many LED driver IC's are present | |
| `LED_DRIVER_LED_COUNT` | (Required) How many LED lights are present across all drivers | |
| `DRIVER_LED_TOTAL` | (Required) How many LED lights are present across all drivers | |
| `LED_DRIVER_ADDR_1` | (Required) Address for the first LED driver | |
| `LED_DRIVER_ADDR_2` | (Optional) Address for the second LED driver | |
| `LED_DRIVER_ADDR_3` | (Optional) Address for the third LED driver | |
@ -28,35 +30,40 @@ You can use between 1 and 4 IS31FL3731 IC's. Do not specify `LED_DRIVER_ADDR_<N>
Here is an example using 2 drivers.
// This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol)
// The address will vary depending on your wiring:
// 0b1110100 AD <-> GND
// 0b1110111 AD <-> VCC
// 0b1110101 AD <-> SCL
// 0b1110110 AD <-> SDA
#define LED_DRIVER_ADDR_1 0b1110100
#define LED_DRIVER_ADDR_2 0b1110110
```c
// This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol)
// The address will vary depending on your wiring:
Currently only 2 drivers are supported, but it would be trivial to support all 4 combinations.
Define these arrays listing all the LEDs in your `<keyboard>.c`:
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
/* Refer to IS31 manual for these locations
* driver
*|LED address
* | | */
{0, C3_3},
....
}
```c
constis31_ledg_is31_leds[DRIVER_LED_TOTAL]={
/* Refer to IS31 manual for these locations
* driver
* | LED address
* | | */
{0,C1_1},
{0,C1_15},
// ...
}
```
Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](http://www.issi.com/WW/pdf/31FL3731.pdf) and the header file `drivers/issi/is31fl3731-simple.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` ).
Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3731.pdf) and the header file `drivers/issi/is31fl3731-simple.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` ).
## Keycodes
@ -66,26 +73,28 @@ All LED matrix keycodes are currently shared with the [backlight system](feature
Currently no LED matrix effects have been created.
## Custom layer effects
## Custom Layer Effects
Custom layer effects can be done by defining this in your `<keyboard>.c`:
void led_matrix_indicators_kb(void) {
led_matrix_set_index_value(index, value);
}
```c
voidled_matrix_indicators_kb(void){
led_matrix_set_index_value(index,value);
}
```
A similar function works in the keymap as `led_matrix_indicators_user`.
## Suspended state
## Suspended State
To use the suspend feature, add this to your `<keyboard>.c`:
void suspend_power_down_kb(void)
{
led_matrix_set_suspend_state(true);
}
```c
voidsuspend_power_down_kb(void){
led_matrix_set_suspend_state(true);
}
voidsuspend_wakeup_init_kb(void)
{
led_matrix_set_suspend_state(false);
}
void suspend_wakeup_init_kb(void){
led_matrix_set_suspend_state(false);
}
```
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.