Compare commits

...

290 Commits

Author SHA1 Message Date
Joel Challis
b2d0e8a491 Manually run formatting job (#11797) 2021-02-05 13:27:24 +00:00
Sam Hudson
18babeae49 [Keyboard] add shk9 macropad (#11505)
* added shk9 macropad

* updated readme

* removed json file

* updated config

* removed commented config

* fixed website address

* added bootloader mode info to readme

* remove midi enable rule

* fixed comment

* fixed default keymap

* changed layout to ortho

* fixed typo

* fixed broken layout

* pr changes

* added keymap spacing
2021-02-05 03:31:15 -08:00
Joel Challis
59bf018e9f Fix build errors on kikoslab/kl90 default keymap (#11796) 2021-02-04 23:30:43 -08:00
MelGeek
445ea64699 [Keyboard] Fix the LED's ID of ISSI for MJ64 REV2 (#11760)
* 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>
2021-02-04 22:19:30 -08:00
Joshua Borton
237dd23491 [Keyboard] Add VIA support to v60 Type R (#11758)
* 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>
2021-02-04 22:18:20 -08:00
18438880
58f8c7f9c3 [Keyboard] add latin17rgb (#11680)
* Create readme.md

* Add files via upload

* Create keymap.c

* Create keymap.c

* Create rules.mk

* Update config.h

* Update rules.mk

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

* Update keyboards/latin17rgb/keymaps/via/keymap.c

* Update keyboards/latin17rgb/latin17rgb.h

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

* Update keyboards/latin17rgb/keymaps/via/keymap.c

* Update keyboards/latin17rgb/rules.mk

* Update keyboards/latin17rgb/info.json

* Delete latin17RGB.json

* Update info.json

* Update keymap.c

* Update keymap.c

* Update info.json

* Update latin17rgb.h

* Update latin17rgb.h

* Update keymap.c

* Update keymap.c

* Update latin17rgb.h

* Update keyboards/latin17rgb/readme.md

* Update keyboards/latin17rgb/readme.md

* Update keyboards/latin17rgb/rules.mk

* Update keyboards/latin17rgb/rules.mk

* Update keyboards/latin17rgb/info.json

* Update keyboards/latin17rgb/rules.mk

* Update keyboards/latin17rgb/latin17rgb.h

* Update keyboards/latin17rgb/rules.mk

* Update keyboards/latin17rgb/readme.md

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

* Update keyboards/latin17rgb/keymaps/via/keymap.c

* Update latin17rgb.c

* Update latin17rgb.c

* Update keyboards/latin17rgb/latin17rgb.c
2021-02-04 21:06:50 -08:00
alittlepeace
1d49076b81 [Keyboard] Adding YMDK Wings Keyboard (#11693)
* 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>
2021-02-04 19:01:59 -08:00
npspears
f69b652127 [Keyboard] add Pursuit40 PCB for Panc40 (#11683)
* 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
2021-02-04 16:24:09 -08:00
Brandon Claveria
fe686570ca [Keyboard] add The Galleon by swiftrax (#11700)
* initial addition

* fix keymap / keyboard.h

* add animation

* change pid

* fix layout macro

* Apply suggestions from code review

* Update keyboards/handwired/swiftrax/the_galleon/info.json

* move wpm enable
2021-02-04 16:21:51 -08:00
yfuku
0bf0644aa2 Add VIA support for claw44 (#11677)
* add via keymaps for claw44

* Update keyboards/claw44/keymaps/via/config.h

* Update keyboards/claw44/keymaps/via-oled/config.h

* Update keyboards/claw44/keymaps/via-oled/keymap.c

* Update keyboards/claw44/keymaps/via/keymap.c

* Update keyboards/claw44/keymaps/via-oled/keymap.c

* Update keyboards/claw44/keymaps/via/keymap.c

* Applied the review to other keymaps.

* Update keyboards/claw44/keymaps/oled/keymap.c

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

* Update keyboards/claw44/keymaps/via-oled/keymap.c

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

* Update keyboards/claw44/keymaps/via-oled/keymap.c

* Update keyboards/claw44/keymaps/via-oled/keymap.c

* Update keyboards/claw44/keymaps/via/keymap.c

* Update keyboards/claw44/keymaps/via/keymap.c

* Update keyboards/claw44/keymaps/via/keymap.c

* Update keyboards/claw44/keymaps/via/keymap.c

* remove via-oled

* change vendor ID for yfuku

* add readme.md for rev1

* Update keyboards/claw44/rev1/readme.md

* Update keyboards/claw44/rev1/readme.md

* Update keyboards/claw44/rev1/readme.md
2021-02-04 16:19:37 -08:00
Gerardo L Hidalgo-Cuellar
2c94f98995 [Keymap] add ghidalgo93 for kyria (#11663)
* adding kyria/rev1 keymap

* adding both hand config

* Apply suggestions from code review

* Apply suggestions from code review
2021-02-04 16:14:11 -08:00
moyi4681
69315cb643 [Keyboard] KBDfans Bella RGB ANSI and Bella RGB ISO (#11438)
* add bella rgb keyboards

* Update rgb_iso.c

* fix error

* Update rgb_iso.h

* Update keyboards/kbdfans/bella/rgb/rules.mk

* Update keyboards/kbdfans/bella/rgb_iso/rules.mk

* Update keymap.c

* Update keyboards/kbdfans/bella/rgb/info.json

* Update keyboards/kbdfans/bella/rgb_iso/info.json

* Update keyboards/kbdfans/bella/rgb_iso/config.h

* Update keyboards/kbdfans/bella/rgb/config.h

* Update keyboards/kbdfans/bella/rgb_iso/rules.mk

* Update keyboards/kbdfans/bella/rgb_iso/rules.mk

* Update keyboards/kbdfans/bella/rgb_iso/rules.mk

* Update keyboards/kbdfans/bella/rgb/rules.mk

* Update keyboards/kbdfans/bella/rgb/rules.mk

* Update keyboards/kbdfans/bella/rgb/rules.mk

* Update rgb_iso.c

* Update rgb.c

* Update rgb_iso.c

* Update rgb_iso.h

* Update keyboards/kbdfans/bella/rgb/config.h

* Update keyboards/kbdfans/bella/rgb/rgb.h

* Update keyboards/kbdfans/bella/rgb/info.json

* Update keyboards/kbdfans/bella/rgb/info.json

* Update keyboards/kbdfans/bella/rgb/keymaps/default/keymap.c

* Update keyboards/kbdfans/bella/rgb_iso/keymaps/via/keymap.c

* Update keyboards/kbdfans/bella/rgb_iso/keymaps/via/keymap.c

* Update keyboards/kbdfans/bella/rgb_iso/readme.md

* Update keyboards/kbdfans/bella/rgb_iso/readme.md

* Update keyboards/kbdfans/bella/rgb_iso/readme.md

* Apply suggestions from code review

kbdfans/bella/rgb: Change remaining instances of LAYOUT_all to LAYOUT

* Apply suggestions from code review

kbdfans/bella/rgb: update readme

- update keyboard name
- include flashing and bootloader instructions

* Apply suggestions from code review

kbdfans/bella/rgb_iso: update keyboard name

Changes remaining instances of "BELLA_RGB_ISO" to "BELLA RGB ISO".

* Apply suggestions from code review

kbdfans/bella/rgb_iso: Change LAYOUT_all to LAYOUT

* Apply suggestions from code review

kbdfans/bella/rgb_iso: Move ISO Enter's keycode to home row per QMK standard
2021-02-04 13:58:02 -08:00
Brandon Claveria
09f9bdd3d1 [Keyboard] Add KL-90 (#11494)
* add kikoslab kl90

* fix info.json

* Update keyboards/kikoslab/kl90/rules.mk

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

* Update keyboards/kikoslab/kl90/info.json

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

* update info.json

* fix layout macro

* add support for hotswap space

Co-authored-by: Swiftrax <swiftrax@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2021-02-04 09:45:47 -08:00
moyi4681
908b20313c [Keyboard] add primus75 keyboard (#11440)
* add primus75 keyboard

* Update keyboards/iLumkb/primus75/info.json

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

* Update keyboards/iLumkb/primus75/keymaps/default/keymap.c

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

* Update keyboards/iLumkb/primus75/keymaps/via/keymap.c

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

* Update keyboards/iLumkb/primus75/keymaps/default/keymap.c

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

* Update keyboards/iLumkb/primus75/keymaps/via/keymap.c

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

* Update keyboards/iLumkb/primus75/primus75.h

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

* Update keymap.c

* Update keyboards/iLumkb/primus75/rules.mk

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

* Update keyboards/iLumkb/primus75/rules.mk

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

* Update keyboards/iLumkb/primus75/readme.md

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

* Update keyboards/iLumkb/primus75/config.h

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

* Update keymap.c

* Update keymap.c

* Update keyboards/iLumkb/primus75/keymaps/default/keymap.c

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

* Update keyboards/iLumkb/primus75/readme.md

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

* Rename keyboards/iLumkb/primus75/config.h to keyboards/ilumkbprimus75config.h

* Rename keyboards/ilumkbprimus75config.h to keyboards/ilumkbprimus75/config.h

* Rename keyboards/ilumkbprimus75/config.h to keyboards/ilumkb/primus75/config.h

* Rename keyboards/iLumkb/primus75/info.json to keyboards/ilumkb/primus75/info.json

* Rename keyboards/iLumkb/primus75/primus75.c to keyboards/ilumkb/primus75/primus75.c

* Rename keyboards/iLumkb/primus75/primus75.h to keyboards/ilumkb/primus75/primus75.h

* Rename keyboards/iLumkb/primus75/readme.md to keyboards/ilumkb/primus75/readme.md

* Rename keyboards/iLumkb/primus75/rules.mk to keyboards/ilumkb/primus75/rules.mk

* Rename keyboards/iLumkb/primus75/keymaps/default/keymap.c to keyboards/ilumkb/primus75/keymaps/default/keymap.c

* Rename keyboards/iLumkb/primus75/keymaps/via/rules.mk to keyboards/ilumkb/primus75/keymaps/via/rules.mk

* Rename keyboards/iLumkb/primus75/keymaps/via/keymap.c to keyboards/ilumkb/primus75/keymaps/via/keymap.c

* Update keyboards/ilumkb/primus75/keymaps/default/keymap.c

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

* Update keyboards/ilumkb/primus75/info.json

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

* Update keyboards/ilumkb/primus75/keymaps/via/keymap.c

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

* Update keyboards/ilumkb/primus75/info.json

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2021-02-04 09:30:21 -08:00
Xyverz
59d499edd3 Xyverz bastyl (#11662)
Co-authored-by: Ian Sterling <503326@MC02YT9K9LVCF.tld>
2021-02-04 19:36:41 +11:00
Drashna Jaelre
758891aa44 Fix line endings for LCK75 kb files (#11784) 2021-02-03 18:12:57 -08:00
Drashna Jaelre
780ca5565d Improve Pointing Device report sending (#11064)
* 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>
2021-02-03 17:25:05 -08:00
im a can what do you think lmao?
420f6c4b2e [Keyboard] Add LCK75 keyboard (#11493)
* 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>
2021-02-03 17:23:33 -08:00
Andre DeMarre
63f4345f4c Use num lock instead of caps lock for KBDPAD MKII LED (#11781) 2021-02-04 10:24:05 +11:00
Matrix Zou
c5e29b25c4 Update iNETT Studio Square.X RGB Light (#11723)
* Add Caps Lock indicators support
* Fix 'a' flag error for RGB Light Mode
2021-02-03 13:18:36 -08:00
Brandon Claveria
faa6c93648 [Keyboard] add koalafications (#11628)
* add koalafications

* fix keymap

* add oled

* oled stuff

* fix oled stuff

* add animation

* more oled stuff

* update rules.mk

* oled annimation

* change PID

* Update keyboards/handwired/swiftrax/koalafications/info.json

* Update keyboards/handwired/swiftrax/koalafications/readme.md
2021-02-03 11:54:30 -08:00
Eithan Shavit
4779e2d56c Fixing layer order for Breeze default keymap (#11779) 2021-02-03 04:42:20 -08:00
Drashna Jaelre
c0de49e393 Fix DEBUG_MATRIX_SCAN_RATE on chibiOS when console is enabled (#11776)
* 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>
2021-02-03 12:30:33 +11:00
Drashna Jaelre
3bb66d1585 Clean up KBD8X keyboard (#11565)
* Clean up KBD8X keyboard

* remove unneeded rules
2021-02-02 12:49:02 -08:00
mrT1ddl3s
8fa2d43b38 Knobgoblin info file fix (#11697)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-02-02 20:03:47 +01:00
erikbakker-dev
80a9649c4f add orthodeluxe keymap for Planck keyboard (#11077)
* add orthodeluxe keymap for Planck keyboard

* add licence header to config.h

* fix indentation

* add bootmagic lite and simplify code
2021-02-02 16:52:00 +11:00
Erovia
7db826dce8 CLI: Fix json flashing (#11765) 2021-02-01 20:55:35 +01:00
Carlos
d712670922 Fix Ergosaurus default RGB_DI_PIN (#11634)
* Update RGB_DI_PIN to match breakout on pcb

* Wrap in safer define check
2021-02-01 10:58:18 -08:00
Jay Greco
588fd8c2d0 [Keyboard] Add nullbitsco SCRAMBLE (#11078)
* 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
2021-02-01 03:05:10 -08:00
cole smith
3f91b2b8f8 added limit to RGB brightness (#11759) 2021-02-01 20:17:49 +11:00
umi
72f9c4c0d3 [Docs] Japanese translation of internals_*.md (#10316)
* add git checkout internals_related.md translation

* update based on comment

* unify the end of sentence
2021-02-01 12:51:46 +09:00
Ryan
6bec7fb3fe quantum.c send char cleanups (#11743) 2021-02-01 08:18:10 +11:00
Drashna Jaelre
c1361005fa [Keyboard] SplitKB's Zima (#11577)
Co-authored-by: Thomas Baart <thomas@splitkb.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2021-01-31 11:41:18 +01:00
Rys Sommefeldt
6ce6a94216 Fix missing F2 in top row in AoS TKL maps (#11735) 2021-01-31 18:09:00 +11:00
Zach White
d02c4c5241 Add a <FEATURE>_SUPPORTED flag (#9058)
* 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>
2021-01-30 13:08:58 -08:00
Ryan
92a787ca4c [Docs] Use HTTPS for images and links where possible (#11695) 2021-01-30 22:00:56 +11:00
CMMS-Freather
4c4b4b6e0d [Keyboard] add sam's sg81m keyboard (#11624)
* new repo: create cmm.studio folder, add saka qmk firmware

new folder for cmm.studio line up keyboard
added saka68 keyboard qmk and via firmware support

* Update keyboards/cmm.studio/saka68/config.h

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

* Update keyboards/cmm.studio/saka68/rules.mk

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

* Update keyboards/cmm.studio/saka68/keymaps/via/rules.mk

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

* Update keyboards/cmm.studio/saka68/config.h

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

* fix on keymap, readme

fix on keymap, readme

* Update keyboards/cmm.studio/saka68/readme.md

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

* Update keyboards/cmm.studio/saka68/keymaps/default/keymap.c

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

* update vendor name with _ instead of .

update vendor name with _ instead of .

* Update readme.md

change the make format

* Update keyboards/cmm_studio/saka68/keymaps/default/keymap.c

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

* deleted some files from cmm.studio, changes to cmm_studio

deleted some files from cmm.studio, changes to cmm_studio

* Update readme.md

make command changed

* Update keyboards/cmm_studio/saka68/readme.md

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

* Update readme.md

added pic for pcb

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update keyboards/cmm_studio/saka68/config.h

tested and does work now. deleting these lines

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

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update keyboards/cmm_studio/saka68/readme.md

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

* Update readme.md

added use physical reset button instruction

* change to the cmm saka folder

making the changes to cmm saka firmware

seperated solder version firmware and hotswap version firmware

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* change to the cmm saka hotswap folder

* add sam's sg81m keyboard

add sam's sg81m keyboard firmware

* Update keymap.c

* Update keymap.c

* update keymap

update default keymap and via keymap

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keyboards/sam/sg81m/sg81m.c

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

* Update config.h

* Update config.h

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2021-01-29 20:09:11 -08:00
Eithan Shavit
42045f5b17 [Keyboard] Adding Gust Macro Board (#11610)
* Adding Gust Macro Board

* Removing some rules

* Changing some rules

Co-authored-by: Eithan Shavit <eithan@fb.com>
2021-01-29 19:38:40 -08:00
Eithan Shavit
64da7413a0 [Keyboard] Adding Rev1 to afternoonlabs/breeze (#11611)
* Breeze Rev1

* Better bootmagic and reset

* typo

Co-authored-by: Eithan Shavit <eithan@fb.com>
2021-01-29 19:38:18 -08:00
james sa
53b35052ee [Keyboard] A symmetric stagger keyboard: Angel (#11501)
* New symmetric stagger keyboard: Angel

* mac layout

* layout simplify

* Update keyboards/angel/info.json

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

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

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

* Update keyboards/angel/config.h

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

* Update keyboards/angel/readme.md

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

* Update keyboards/angel/rules.mk

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

* tab lang switch

* move to handwired and fix build instructions.

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-29 19:24:42 -08:00
shela
5691f1341d Update feature_debounce_type.md of Japanese document. (#10596)
* Update Japanese document.

* fix table format.

* fix heading

* Update translation

* Apply suggestions from code review

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* Update docs/ja/feature_debounce_type.md

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* Bump up comment tag

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
2021-01-30 06:05:40 +09:00
Joshua Diamond
bad9592a18 Add rgblight_reload_from_eeprom() (#11411)
* Add rgblight_reset_from_eeprom()

* reset->reload
2021-01-28 04:42:03 +11:00
glanchow
162842f16e [Docs] add qmk setup home parameter (#11451) 2021-01-28 04:39:58 +11:00
Takeshi ISHII
c27f16158d add get_matrix_scan_rate() to tmk_core/common/keyboard.c (#11489) 2021-01-28 04:34:50 +11:00
Ryan
6937f1d70e Remove MIDI_ENABLE_STRICT from keyboards' config.h (#11679) 2021-01-27 17:26:26 +11:00
Brandon Claveria
a0d9221dcc pull retropad out of handwired and update readme.md (#11545)
Co-authored-by: Swiftrax <swiftrax@gmail.com>
2021-01-27 00:52:17 +00:00
Matt Gilbert
7e8d97f8f0 [Keymap] Add 'mattir' keymap for the Kyria keyboard (#11428)
* 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
2021-01-25 20:59:21 -08:00
Tushar Khan
0e7e52c820 [Keymap] tk planck keymap (#11400)
* tushark54 base layers

* init summer keymap

* drafted new keymap layers

* added new keymap

* v2.0 mvp

* added bracket modes

* added oneshot left modifiers

* added HYPER layer

* added audio

* added audio and more

* changed layer order

* swapped SUPER and LCTL keys

* added more tunes

* added more audio

* added tunes

* major layer modifications

* major changes to keymaps

* minor changes

* added venv macro

* merge conflict

* v3 mvp

* moved DEL to hyper layer and PANIC+ALT

* fn keys on hyper, macros on lower ii

* dynamic macros and audio options

* minor audio improvements

* osl timeouts

* manually added .vscode directory

* fixed upstream file

* fixed upstream file

* base and hyper layer changes

* modified tapping term

* added more macros

* added GPL2+ compatible license headers

* removed songs

* updated licenses

* added chmod macro
2021-01-25 20:23:23 -08:00
Donald Kjer
88ca4ec2cb Add support for the DURGOD Taurus K320 keyboard (#11399)
* 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>
2021-01-26 04:30:17 +11:00
Danny
2a34e07ff9 [Keyboard] Add Quefrency Rev. 3 (#11578)
* Update default VIA layout option

* Add Quefrency Rev. 3

* Update readme

* Add GPL2 headers

* Update keyboards/keebio/quefrency/rev3/config.h

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-24 22:39:00 -08:00
mrT1ddl3s
bd5d3c879e [Keyboard] Knobgoblin keyboard initial commit (#11664)
* 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>
2021-01-24 22:25:50 -08:00
Niek Blankers
c1e1166991 [Keyboard] Fix for LEDs on PocketType (#11671)
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.
2021-01-24 22:16:42 -08:00
melonbred
50690b2d5c [Keymap] Update Program Yoink Ortho Split Layout (#11675) 2021-01-24 22:06:17 -08:00
Albert Y
ffb85b1f5d [Keyboard] Add RGB Matrix support for The Mark:65 (#11676)
* Add RGB Matrix support for Mark 65 keyboard

* Update drive LED count

* Removed unnecessary define line

* Corrected typo

Co-authored-by: filterpaper <filterpaper@localhost>
2021-01-24 22:05:16 -08:00
Ryan
c65aecc53a Remove redundant I2C config defines from keyboards (#11661) 2021-01-25 16:37:53 +11:00
Brian Romanko
66836effda [Keyboard] Add layout to torn keyboard (#11684) 2021-01-24 19:42:37 -08:00
Monksoffunk
711f861d83 Change VID/PID for Zinc (#11681) 2021-01-25 14:13:10 +11:00
Loïc Wisniewski
bf7e19e997 Fix midi for CRKBD (#11644)
Co-authored-by: BuildTools <unconfigured@null.spigotmc.org>
2021-01-25 14:12:28 +11:00
Takeshi Nishio
deea6a9826 Add jones v.0.3 and v.0.3.1 keyboard (#11130)
* Update LEDの物理的接続とQMKのソフト的接続を調整し、左→アンダーグロー→右と繋がるようにした。

* Update レイヤーインジケータ関連変数を、#ifdefブロック内へ移動。

* Update コード整形

* Revert "Update コード整形"

This reverts commit c98483d9a0.

* Update 未使用のキーコード、S_SLSHに関連するコードを削除。

* Update コード整形

* Update キーごとのTappingTerm設定を使用しなくなったため、削除。

* Update 未使用コード削除。

* Update コメント追加

* Update レイヤーとIMEのON/OFFを同じキーに割り当てるのをやめたため、関連コードを削除。

* Update コメント追加

* Update コメント

* Update 誤読を避けるため、ifブロックの表記を括弧を使用したものへ変更。動作に変化なし。

* Update 未使用のため削除。

* Update LED関連でデフォルトレイヤーを格納して使用しないため、削除。

* Update コメント

* Update レイヤーによってロータリーエンコーダの動作を変える機能を追加。

* Update comment

* Update 実態に合わせて修正。

* Update JP用キーコードへの書き換え忘れを修正。

* New v.0.3.1 JP style

* Update v.0.3のJPスタイルではオーディオサポートなし。

* Update to latest information

* New

* New keyboard "stmeishi"

* Update layout name

* Update move common settings from keymap's "rules.mk" to keyboard's "rules.mk".

* Update: Move common settings from keymap's "rules.mk" to keyboard's "rules.mk".

* Update: Add "LAYOUT_all" for multiple layout.

* Update target to latest "v.0.3.1".

* Remove unused item.

* Update comments.

* Update Rotary Encoder pins to actual used count.

* Update increase value to maximum.

* Update comments.

* Change default Effects.

* Remove unused items.

* Update comment.

* Change: Use define and function insted of real value for wait.

* Update copyrght.

* Update Update: Add "LAYOUT_all" for multiple layout.

* New: Place info.json copied from v.0.3.1.

* Remove unused items.

* Update: Add comma at last element.

* Update comments.

* Update: change if block style.

* Update: Change Japanese comments to English.

* Update: Change layout name.

* Update: Change layout name.

* Update: Fix miss numbering for ANSI layout.

* Update: Move "Tap Dance" rule to keymap's rule.

* New: Add default keymap.

* Delete: Moving files to branch.

* Initial: Add files from local.

* Remove local only unused keymaps.

* Update: Remove unused, comment outed codes.

* Add default keymap for v.0.3.

* Update: Add custom keycodes.

* Update: Change layer handling from process_record_user to layer_state_set_user.

* Update comment.

* Update: Remove unused function.

* Add my ErgoDash settings.

* Add my NumAtreus_Plus8 settings.

* Add my test_k15r2 settings.

* New Colice片手分動作確認済み

* Update スプリットキーボード対応

* Update 反応が悪くずっと二度押ししているので、ESCキーをレイヤーキーとの共用から、単独機能に変更。

* Update 右手スイッチ配置変更。インジケータLED対応。

* Change インジケータLEDが眩しいので、明るさを下げた。

* Change 右手親指のキーマップ変更。

* Change NumLockの誤爆防止のため、二度押しでレイヤートグルするようにした。

* Change 左手側、Bの右側のキーを誤爆することが多く日本語入力が途切れるため、レイヤーキーの機能左右で入れ替え。

* Update 右手側、画像ソフトなどで使うため、矢印キーの左をレイヤーキーからCTRLへ変更。

* New add new keyboard

* Update Duplex-Matrixが動作した初版

* New Duplex-Matrixのサンプルコード by e3w2q を最新のQMKファームウェアで動作するよう一部修正したもの。

* update Comment-out debug print code.

* Update Colice V0.2 キープレートで矢印キー付近の物理配列が変わったことへ対応

* Update キーレイアウト

* New Initial commit

* Update Fix migrate errors from test_duplex_dp to test_col2col

* Remove unnecessary files

* Testing

* Update IKeJIさんの方法(とりあえずCOL2COLと呼ぶ)の動作テストOK

* New 2乗マトリクス配線のキーボードを追加

* Update キーレイアウト調整

* New colice_rr 初回コミット。基本動作確認OK。LED不調。

* Update Eable LED, Reduce firmwre size

* Update colice_rr キーマップ調整。

* Update colice_rr ロータリーエンコーダ機能追加。

* Move colice_rr を colice_rr_split へ移動。

* Update colice_rr_splitフォルダへ移動したことに対応。

* New colice_rr_splitの初回コミット。

* Update キーマップ調整

* Update キーマップ調整

* New initial comit

* Update 意図せずカッコを入力することがるため、LSPO、RSPCの使用を中止。

* Change Fnキー押下時の日本語入力ONを、長押し時にキャンセルするように変更。

* Change LED点灯方法変更。

* Change 基板バージョンごとにサブフォルダを作成するようにした。

* Update Windows用レイヤーを追加

* Update LED設定を調整

* New Jones v.0.2を新規追加

* Update Numレイヤー追加。キーマップ調整。レイヤーインジケータLED調整。

* Update 左手Yをやめる

* Update ESCによるNumレイヤートグルを、ESC連打でトグルするのを防止するため、ダブルタップからトリプルタップへ変更。

* Update readme

* Update QMKの標準に従うよう各ファイルの内容を変更。

* Update 長音(ー)を入力しやすくするため、レイヤー上でホームポジションに近い位置に配置。

* Update タップダンスの状態判別を、Single,Double,Triple,Holdの4つのステータスにまとめた。

* Update キーボードの電源が切れてもデフォルトレイヤーの状態を保存しておくため、MACとWINレイヤーへの変更はEEPROMへ書き込むようにした。

* Update 不要箇所削除

* Update キーマップをNarrowとWideで書き換えるのが不便なので、分割した。

* Update 最新のPCBに合わせ、デフォルトをv.0.2に変更。

* New v.0.3を新規追加

* Update キーマトリクスに後からJPを追加するため、ANSI用に表記変更。

* Update ANSI用のキーマップであることを明記。

* New JP用キーマップを新規追加。

* Update スイッチの物理的存在、Enter右側はキー1個、に合わせて、ANSIレイアウトを修正。

* New FA (Full Armor)用レイアウトを新規追加

* Update 物理的ロック付きのCAPSは使用しないため、無効化。

* Update ハードウェアのサポート対象にキープレートを追加。

* Update FAで使用するAudio、RotaryEncoderの機能追加。機能削減でファームウェアサイズ縮小。

* Update オーディオ機能にキークリックを追加。

* update FA用設定

* Update 右シフトにキー追加

* Update 変換キー調整

* New オーディを有効化。マウスキーはサイズ削減のため無効化。

* Update スイッチ配置ミス修正。

* Update ピン定義を、ロータリーエンコーダの回転方向に合わせた

* Update 2音同時発音用にピン定義を追加。

* Update ファームサイズに空きがあるので、クリッキー音をデフォルトで利用できるようにした。

* Update LED設定変更

* New 物理配列がJPで、中身はUS配列のキーマップを追加。

* Update 行と列が入り乱れたレイアウトのため、音階が正しくなるように、Music-Mode用のキーマップを定義。

* Change マイナーバージョンの表記に対応できるよう、DEVICE_VERの桁を1つ上げた。

* Update オルソ+ロースタガであることがわかるように、キーボードの簡単な説明を変更。

* New v.0.3.1の初期コミット

* Update 左右で回転方向の判定が逆になるので、右手側を左手に合わせた。

* Update キーマップ調整

* Update LEDインジケータを、v.0.3系と同じ点灯方法(2個をベースレイヤ、1個をRAISEなど)に変更。

* Update RGBLIGHT明るさ調整、エフェクト追加。

* Update 未使用キー設定を削除。

* Update Shiftと組み合わせた/?キーの反応を良くするため、キーごとにTAPPING_TERMを指定できるようにした。

* Update LEDエフェクト追加

* Update keymap

* Update 未使用のものを削除

* Update LEDの物理的接続とQMKのソフト的接続を調整し、左→アンダーグロー→右と繋がるようにした。

* Update レイヤーインジケータ関連変数を、#ifdefブロック内へ移動。

* Update コード整形

* Revert "Update コード整形"

This reverts commit c98483d9a0.

* Update 未使用のキーコード、S_SLSHに関連するコードを削除。

* Update コード整形

* Update キーごとのTappingTerm設定を使用しなくなったため、削除。

* Update 未使用コード削除。

* Update コメント追加

* Update レイヤーとIMEのON/OFFを同じキーに割り当てるのをやめたため、関連コードを削除。

* Update コメント追加

* Update コメント

* Update 誤読を避けるため、ifブロックの表記を括弧を使用したものへ変更。動作に変化なし。

* Update 未使用のため削除。

* Update LED関連でデフォルトレイヤーを格納して使用しないため、削除。

* Update コメント

* Update レイヤーによってロータリーエンコーダの動作を変える機能を追加。

* Update comment

* Update 実態に合わせて修正。

* Update JP用キーコードへの書き換え忘れを修正。

* New v.0.3.1 JP style

* Update v.0.3のJPスタイルではオーディオサポートなし。

* Update to latest information

* New

* New keyboard "stmeishi"

* Update layout name

* Update move common settings from keymap's "rules.mk" to keyboard's "rules.mk".

* Update: Move common settings from keymap's "rules.mk" to keyboard's "rules.mk".

* Update: Add "LAYOUT_all" for multiple layout.

* Update target to latest "v.0.3.1".

* Remove unused item.

* Update comments.

* Update Rotary Encoder pins to actual used count.

* Update increase value to maximum.

* Update comments.

* Change default Effects.

* Remove unused items.

* Update comment.

* Change: Use define and function insted of real value for wait.

* Update copyrght.

* Update Update: Add "LAYOUT_all" for multiple layout.

* New: Place info.json copied from v.0.3.1.

* Remove unused items.

* Update: Add comma at last element.

* Update comments.

* Update: change if block style.

* Update: Change Japanese comments to English.

* Update: Change layout name.

* Update: Change layout name.

* Update: Fix miss numbering for ANSI layout.

* Update: Move "Tap Dance" rule to keymap's rule.

* New: Add default keymap.

* Delete: Moving files to branch.

* Initial: Add files from local.

* Remove local only unused keymaps.

* Update: Remove unused, comment outed codes.

* Add default keymap for v.0.3.

* Update: Add custom keycodes.

* Update: Change layer handling from process_record_user to layer_state_set_user.

* Update comment.

* Update: Remove unused function.

* Revert "Remove: Non related files."

This reverts commit 82306568fad408427c757de832025dee91ca5a7f.

* Update: To resolve "submodule path not found" message.

* RemoRemove: Non related files.

* Revert file before miss comit.

* Update: Remove unused keycode.

* Update: レイアウト設定内のNUMレイヤへのトグルを、カスタムキーコード表記に変更。

* Update: Comment

* Update: Remove unused items.

* Update layout settings.

* Update: For simplicity, change toggle ADJUST layer method from process_record_user() to layer_state_set_user().

* Update: comment and styling.

* Update: Remove unused custom keycodes.

* Update: For simplicity, change toggle layer method from process_record_user() to layer_state_set_user().

* Update: Remove unused items.

* Update: comment and styling.

* Update: Correct comment.

* Update description and flashing example.

* Update: Remove comment-outed bootloaders.

* Update comments.

* Update: Correct LED count, without under-glow.

* Update: Chenged to common values with v.0.3.1.

* Update: Changed to common values with v.0.3.

* Updarte: Remove unused layout.

* Update: Change default layout to "ALL".

* Update comment.

* Update comment.

* Add missing file.

* Update: Change build option definition style.

* Update: Change build option definition style.

* Update: Change CUSTOM_MATRIX to "lite" and convert "matrix.c" to "lite" version.

* Update: Move "music_map" to keyboard's c file.

To provide common definition for other keymap creator.

* Update: Change keyboard name "v.0.3.1" ---> "v03_1".

For human readability, version name "v.0.3.1" remains at title on "readme.md".

* Update: Change keyboard name "v.0.3" ---> "v03".

For human readability, version name "v.0.3" remains at title on "readme.md".

* Update: Correct matrix definition at "k92".

* Apply suggestions from code review

Remove unnecessary comment block.

* Apply suggestions from code review

Remove "Optional" deprecated items.

* Apply suggestions from code review

Change "make" target keymap to standard default.

* Apply suggestions from code review

Remove rules for MIDI_ENABLE, FAUXCLICKY_ENABLE and HD44780_ENABLE.
These features are not enabled.

* Apply suggestions from code review

Convert tabs to spaces.

* Update: Change #define ROW_SHIFTER to keyboard specific.
2021-01-24 13:54:29 -08:00
Mohammad Juma
eda8c94c60 [Keymap] addition for mjuma in keyboards/planck/keymaps (#10885)
* Add planck layout

* switch gaming toggle to TG

* rename readme
2021-01-24 07:46:37 -08:00
Vinam Arora
829075ffef Increased dynamic keymap layers in via keymap (#11575) 2021-01-24 15:03:34 +00:00
Damien
8ab6efdc80 Fix preonic layout documentation (#11655)
* [Apple M5120] First iteration

* Cleaned apple_m5120 files

* Changes requested by PR

* Update keyboards/apple_m5120/iso/rules.mk

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

* Update keyboards/apple_m5120/iso/keymaps/default/keymap.c

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

* Updated Preonic default layout doc

* Removed non related files

Co-authored-by: dbroqua <dbroqua@mousur.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-24 14:57:22 +00:00
Anand
5d0cc13fcf Add VIA support for dm9records/tartan (#11666) 2021-01-24 14:52:11 +00:00
David H. Bronke
92543a7cb5 fix(feature_ps2_mouse): fix Scroll Button example (#11669)
Corrected macro in Scroll Button example so it compiles.
2021-01-24 14:51:25 +00:00
Takeshi ISHII
944cf6476e Update docs/getting_started_make_guide.md (#11373)
* update docs/getting_started_make_guide.md

Added description of some targets, including those added with #11338.

* Added description of options added by #11324.

* update docs/getting_started_make_guide.md

* Added description of  target.

* Update docs/getting_started_make_guide.md

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

* Update docs/getting_started_make_guide.md

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

* Update docs/getting_started_make_guide.md

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

* add ':id=linux-udev-rules' to docs/faq_build.md

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-24 15:15:11 +09:00
Alabahuy
29c9c6bf56 Fix number RGB RART4x4 dan matrix pin RART45 (#11582)
* Update config.h

* Update config.h
2021-01-23 16:16:24 -08:00
David Dejaeghere
78693dfa31 [Keyboard] adding support for new keyboard Dawn (#11564)
* 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>
2021-01-23 15:59:15 -08:00
smiley
d6701b3ac7 Fix typos and reword some sentences in FAQs (#11546)
* 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
2021-01-23 13:41:29 -08:00
Kyle McCreery
05a4583ce8 [Keymap] Adding Fancy and Bongocat Keymap to Mercutio Keyboard (#11520)
* 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>
2021-01-23 09:32:10 -08:00
Ryan
7d774fa1dc Infinity60 refactor (#11650) 2021-01-23 14:23:38 +11:00
James Young
3a7573436a Program Yoink! refactor (#11636)
* 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
2021-01-22 18:02:40 -08:00
James Young
7e77c2361f Move Backslash/ISO Hash key to home row for Uni660 rev2 ISO (#11657)
* Move Backslash/ISO Hash key to home row for Uni660 rev2 ISO

* update readme formatting
2021-01-22 09:10:52 -08:00
Ryan
188c0bacb0 Woodpad refactor (#11651) 2021-01-23 03:48:27 +11:00
James Young
a7d79f4c00 [Keyboard] Pinky refactor (#11643)
* 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.
2021-01-22 08:37:36 -08:00
Eithan Shavit
3b663ee495 [Keymap] Breeze keymap eithanshavit (#11640)
Co-authored-by: Eithan Shavit <eithan@fb.com>
2021-01-22 08:31:53 -08:00
Drashna Jaelre
7a08b9d374 [Keymap] Cleanup and updating of drashna keymap code (#11516)
* 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
2021-01-22 08:23:03 -08:00
James Young
c16a3dcb54 Isometria 75: Configurator/CLI fixes (#11612)
* 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
2021-01-21 18:27:05 -08:00
Danny
71d8e72b80 Add 3rd encoder to VIA keymap (#11580) 2021-01-21 17:23:27 -05:00
jakobkg
c03ad0f802 Remove rules.mk in leafcutterlabs/bigknob:default (#11652) 2021-01-21 21:05:19 +00:00
mtei
b79ee92a12 update CI list about helix keyboards
* 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.
2021-01-21 07:34:00 -08:00
Zach White
111eb8990d Fix QMK_BUILDDATE (#11641) 2021-01-20 20:38:18 +00:00
Joel Challis
4e8166750b Small tweaks to docs to make them more user friendly (#11518)
* 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>
2021-01-20 18:46:01 +00:00
datafx
1328ab7c7d Correct LED physical mapping on monstargear xo87 rgb pcb (#11629)
* corrected LED physical mapping

* Corrected issue that made VIA display layer 1 incorrectly

Co-authored-by: datafx <digitalfx@phreak.tech>
2021-01-19 23:32:39 -08:00
James Young
9a070475ef Handwired ASkeyboard Sono1: Configurator fixes (#11625)
* info.json: human-friendly formatting

* info.json: correct key order
2021-01-19 23:27:04 -08:00
LSChyi
eacb596d8b [Keyboard] Add indicator LED support to playkbtw/helen80 (#11560)
* add indicator led support

* use LED config instead
2021-01-19 21:06:35 -08:00
X-Bows Tech
1bb9f155a6 [Keyboard] Update X-Bows Nature Keyboard (#11538)
* Update config.h

* Update nature.c

* Update rules.mk

* Update keymap.c
2021-01-19 19:14:39 -08:00
Raphael Megzari
6db22011a5 [Keymap] add happysalada (#11535)
* add keymap: happysalada

* use enum instead of define

* remove uneeded config file
2021-01-19 19:14:16 -08:00
Aaron Ireland
45bec2d281 [Keymap] Mac-friendly KBD 75% layouts (#11507)
* Add Aaron's KBD75 v2 for Macbook

* Add Colemak & Dvorak layers

* Update keymap to adhere to style guide and add license

* Rename README.md to readme.md
2021-01-19 19:05:23 -08:00
Ryan
eba512596a Add stm32-dfu and apm32-dfu to bootloader.mk (#11019)
* Add stm32-dfu and apm32-dfu to bootloader.mk

* Update flashing docs

* Update comment

* Further wordsmithing
2021-01-20 14:04:21 +11:00
Craig Gardner
d28d474dc0 [Keyboard] Leafcutterlabs (#11464)
* 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>
2021-01-19 18:51:33 -08:00
Joshua Diamond
c0728bd189 Improve the Lighting Layers example in RGB Lighting docs (#11454)
* Improve the keymap layer state -> lighting layers example

* A few more improvements
2021-01-19 18:49:02 -08:00
Takeshi Nishio
71f067a60e Fix wrong key when "Music Map" is used with MAJOR_MODE. (#11234)
With MAJOR_MODE (= major scale), keys in one octave is not 12 but 7.
To solve this problem, change divisor number from 12 to 7 at %(Modulo) and /(Division).

NOTE:
The last 12 represents half step keys in one octave for pitch calculation.
2021-01-19 18:08:06 -08:00
MesaKeyboards
974d3f1ffd [Keyboard] Add Mesa TKL (#11294)
* Add keyboard: Mesa TKL

* Fix image link in readme

* Update keyboards/mesa/mesa_tkl/mesa_tkl.c

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

* Update keyboards/mesa/mesa_tkl/rules.mk

White space changes

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

* Replace tabs with spaces per C coding conventions.

* Update keyboards/mesa/mesa_tkl/readme.md

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-19 18:05:08 -08:00
melonbred
e6a90c8b04 Update info.json - Program Yoink (#11558)
* Update info.json

Fix ortho_split
2021-01-19 17:47:02 -08:00
Ryan
2cdc3699e1 Remove DESCRIPTION, W-Z (#11633) 2021-01-20 12:41:34 +11:00
Ryan
e0ed2c950d Remove DESCRIPTION, R-V (#11632) 2021-01-20 12:40:35 +11:00
Ryan
4ed67d666e Remove DESCRIPTION, N-Q (#11631) 2021-01-20 11:57:45 +11:00
Ryan
1e1b469fa2 Remove DESCRIPTION, K-M (#11619) 2021-01-20 09:56:41 +11:00
Nick Brassel
49dcc824db Fixup declaration for _kill, add other missing syscalls, populate errno. (#11608) 2021-01-19 14:23:03 +00:00
Ryan
62f304a225 Remove DESCRIPTION, H-J (#11616) 2021-01-20 00:38:12 +11:00
Glen D'souza
d24fe4f1ca GCC 10 compatibility for Ploopy optical encoder (#11586) 2021-01-19 13:23:54 +11:00
CMMS-Freather
677789df77 change to cmm.studio saka68 folder. split to solder and hotswap, add hotswap fimware (#11443)
* new repo: create cmm.studio folder, add saka qmk firmware

new folder for cmm.studio line up keyboard
added saka68 keyboard qmk and via firmware support

* Update keyboards/cmm.studio/saka68/config.h

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

* Update keyboards/cmm.studio/saka68/rules.mk

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

* Update keyboards/cmm.studio/saka68/keymaps/via/rules.mk

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

* Update keyboards/cmm.studio/saka68/config.h

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

* fix on keymap, readme

fix on keymap, readme

* Update keyboards/cmm.studio/saka68/readme.md

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

* Update keyboards/cmm.studio/saka68/keymaps/default/keymap.c

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

* update vendor name with _ instead of .

update vendor name with _ instead of .

* Update readme.md

change the make format

* Update keyboards/cmm_studio/saka68/keymaps/default/keymap.c

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

* deleted some files from cmm.studio, changes to cmm_studio

deleted some files from cmm.studio, changes to cmm_studio

* Update readme.md

make command changed

* Update keyboards/cmm_studio/saka68/readme.md

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

* Update readme.md

added pic for pcb

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update keyboards/cmm_studio/saka68/config.h

tested and does work now. deleting these lines

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

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update keyboards/cmm_studio/saka68/readme.md

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

* Update readme.md

added use physical reset button instruction

* change to the cmm saka folder

making the changes to cmm saka firmware

seperated solder version firmware and hotswap version firmware

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* change to the cmm saka hotswap folder

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-19 13:23:13 +11:00
Benjamin Garcia
1dc466d22b New keymaps with KC_LGUI on another key and scroll with encoder (#11479)
* feat(kyria): new keymaps with KC_LGUI on another key

add also possibility to scroll with encoder and finally play with olded
screen to replace default kyria logo by Magic the Gathering mana color
icon.

* Update keyboards/kyria/keymaps/benji/keymap.c

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

* add magic logo

* add mouse button

Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-01-19 13:11:45 +11:00
Paul James
993982a985 [Keymap] Add peej userspace and keymaps (#11332) 2021-01-19 13:10:28 +11:00
James Young
01bc8e3b52 Cannonkeys Onyx: Configurator/QMK CLI improvements (#11603)
* info.json: human-friendly formatting

* info.json: correct key object order

* info.json: replace Unicode characters

They don't play nice with `qmk info -l`.

* info.json: correct keyboard dimensions
2021-01-19 13:08:57 +11:00
James Young
dfb8a29718 Caps Unlocked CU65 layout macro fixes (#11606) 2021-01-19 12:22:26 +11:00
datafx
3bb1897bdc [Keyboard] Monstargear XO87 RGB Hot-Swap PCB (#11555)
* Support for Monstargear XO87 Hot-Swap PCB

* Remove manufacturer from product line

* Removed alternate bootloaders

* Updated info.json

* Missed RGB_DISABLE_WHEN_USB_SUSPENDED in config.h

* Delete kb.h

* Update rgb.h

* Update rules.mk

* Add files via upload

* Delete kb.h

* Update keymap.c

* Update config.h

* Update rgb.c

* Add via RGB support

* Update info.json

* Update readme.md

* Update readme.md

* Update config.h

* Update rgb.h

* Update config.h

* Mirror factory layout

* Mirror factory layout

* Update rgb.h

* Update keyboards/xo87/rgb/rgb.c

* Update rgb.c

* Update keyboards/xo87/rgb/config.h

* Update keyboards/xo87/rgb/rules.mk

* Update keyboards/xo87/rgb/rules.mk

* Update keyboards/xo87/rgb/keymaps/via/keymap.c

* Update keyboards/xo87/rgb/rules.mk

* Update keyboards/xo87/rgb/rules.mk

* Update keyboards/xo87/rgb/keymaps/via/keymap.c

* Update config.h

* Update keyboards/xo87/rgb/readme.md

* Update keyboards/xo87/rgb/readme.md

* Update keyboards/xo87/rgb/readme.md

* Update keyboards/xo87/rgb/rules.mk

* Update keyboards/xo87/rgb/rules.mk

* Update keyboards/xo87/rgb/rules.mk

* Update keyboards/xo87/rgb/rules.mk

* Update keyboards/xo87/rgb/rules.mk

* remove deprecated action_get_macro()

* rearrange layout per request

* rearrange layout per request

* Update keyboards/xo87/rgb/rgb.h

* Update keyboards/xo87/rgb/keymaps/default/readme.md

* Update keyboards/xo87/rgb/readme.md

* Bugfix for RGB Matrix

* Bugfix for RGB Matrix

* Moved to new subdirectory and updated build commands to reflect changes

* Remove old files
2021-01-18 10:58:09 -08:00
James Young
03bacec87d Naked64 Configurator update and rework (#11568) 2021-01-18 23:45:56 +11:00
Ryan
cc3f2e2865 Remove DESCRIPTION, E-G (#11574) 2021-01-18 12:49:25 +11:00
Nick Brassel
e524e0a397 Add syscall fallbacks to ChibiOS builds (#11573)
* Add fallback syscalls to ChibiOS builds that are present but able to be overridden as appropriate.

* Modified location to be ChibiOS-specific.
2021-01-18 04:45:21 +11:00
Zach White
da40242dbc Generate version.h when compiling json files (#11581)
* generate version.h when compiling json files

* make flake8 happy

* fix formatting and verbose

* quiet up the compile output
2021-01-17 17:33:29 +00:00
nibiria
f0f6174136 [Keyboard] add Stream15 keyboard (#11515)
* add keyboard Stream15

* committted changes as suggested by drashna

* committed further changes as suggested

* Update info.json

removed excessive comma

* Update keyboards/nibiria/stream15/rules.mk

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

* Update keyboards/nibiria/stream15/keymaps/via/rules.mk

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

* Update keyboards/nibiria/stream15/readme.md

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

* resolved 2 more issues

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-17 09:03:53 -08:00
Zach White
d9785ec313 Improve the compile and flash subcommands (#11334)
* add support for --clean to compile and flash

* compile standalone JSON keymaps without polluting the tree

* Add support for passing environment vars to make

* make flake8 happy

* document changes to qmk compile and flash

* add -e support to json export compiling

* Fix python 3.6

* honor $MAKE

* add support for parallel builds
2021-01-16 15:13:04 -08:00
ridingqwerty
c628408688 New Keyboard: walletburner/cajal (#10458)
* adding alpha variants

* adding cajal layouts

* adding V2 PCB support

adding additional layouts for new PCB version, and correecting incorrect image in info file

* Cleanup master -- remove alpha9

* Cleanup master -- remove g4m3ralpha

* Cleanup master -- remove cajal & sl40

* Master cleanup -- re-add sl40

* Master cleanup -- correct SL40 image

* New Keyboard: walletburner/cajal

* Added license attribution to *.{c,h} files

* Update keyboards/walletburner/cajal/config.h

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

* Update keyboards/walletburner/cajal/keymaps/ortho/keymap.c

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

* Rename 'ortho' keymap to 'default_ortho'

* Update keyboards/walletburner/cajal/cajal.c

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

* Update readme.md

Adding bootloader instructions.

Co-authored-by: worldspawn00 <mcmancuso@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-01-15 16:49:49 -05:00
kb-elmo
3d70766327 Add BGR byte order for WS2812 drivers (#11562)
* add byte order bgr for ws2812

* update docs for driver change

* Update ws2812_driver.md

* Update docs/ws2812_driver.md

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-16 08:42:30 +11:00
Reibl János Dániel
0bf0977c02 Modify my keymap (#11407) 2021-01-15 15:56:21 -05:00
Peter Peterson
fe14907039 Adds VIA support for the KPRepublic's BM60 Poker (#11267)
* WIP working on new keymap

* tweaking keymap

* updated keymap

* cleaned up a little bit

* New preonic keymap

* my preonic keymap

* added mac layout

* preonic map update

* cleaning up old repo

* cleaning up to match upstream

* more cleanup

* removing old keymaps

* cleaned up commit history for bm60poker via support

* cleaned up via keymap

* fixed copywrite

Co-authored-by: Peter Peterson <ppeterson@noao.edu>
2021-01-15 15:40:26 -05:00
James Young
d72f5435fb Afternoon Labs Breeze Rev0: Configurator key sequence fix (#11550)
* human-friendly formatting

* correct key order
2021-01-15 00:25:50 -08:00
James Young
8cf5f72aad Cutie Club Borsdorf: Configurator key sequence fix (#11549)
* human-friendly formatting

* correct key order (ISO Enter)
2021-01-14 23:26:30 -08:00
Ohashi
6009a91514 [Keyboard] Add cool836A 1_2 (#11467)
* 1st trial on 1_2

* remove keymaps/default/km_default.c

* fix cool836A.h

* fix keymap.c into 3x12

* rename to cool836a (not 'A')

* remove cool836A (not a)

* remove backslashes at keymap.c

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

* update keymap.c (add licence)

* Update keyboards/cool836a/keymaps/default/readme.md

removed "<br>" in line 2

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

* Update keyboards/cool836a/keymaps/default/readme.md

remove "<br>" in line 4

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

* Update keyboards/cool836a/keymaps/default/readme.md

remove "<br>" in line 8

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

* Update keyboards/cool836a/cool836a.h

remove cool836a.h line 30:36

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-14 22:27:21 -08:00
Ryan
84e2f1ec17 Adafruit BLE cleanups (#11556) 2021-01-15 14:32:00 +11:00
Ryan
f519a9908e arm_atsam: temporarily lower raw HID endpoint/report size (#11554) 2021-01-15 14:11:04 +11:00
Andy
f1b06d0ae7 [Keymap] Adds ymdk/ymd09 andys8 layout (#11320)
Custom layout for macropad. It shows the usage of macros with unicode,
and other layouts (ISO-DE) with unicode, emojis, and git commands.
2021-01-14 11:29:22 -08:00
André Silva
345a041cf5 allow customizing decrease delay of rgb heatmap (#11322)
* allow customizing decrease delay of rgb heatmap

* rename rgb typing heatmap decrease delay variable

* address review comments

* nix-shell: add clang-tools required for formatting the C code

* heatmap: use real timer to track decrement rate

* heatmap: fix ifndef var name typo

* heatmap: add docs

* Update docs/feature_rgb_matrix.md

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-01-14 11:29:00 -08:00
Domantas
e9f73e5454 [Keymap] Add domnantas lily58 keymap (#10910)
* Initialize domnantas layout

* Update oled status display

* Layout and oled changes

* Updates to keymap

* Add F keys and page moves

* Add media keys, rearrange home and end

* Add instructions

* Swap backspace and enter

* Remove unnecesary Enter keymap

* - Change display timeout
- Update minus sign to work on both English and Lithuanian layouts

* Add copyright header

* Replace static strings with PSTR

* Update keyboards/lily58/keymaps/domnantas/keymap.c

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

* Update keyboards/lily58/keymaps/domnantas/keymap.c

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

* Update keyboards/lily58/keymaps/domnantas/keymap.c

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

* Update keyboards/lily58/keymaps/domnantas/keymap.c

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

* Update keyboards/lily58/keymaps/domnantas/rules.mk

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-14 11:04:30 -08:00
Ryan
f325bd6eb2 Remove DESCRIPTION, B-D (#11513) 2021-01-15 05:00:04 +11:00
Nick Blyumberg
3525a61baf Updated documentation for new BDN9 board revisions (#11380)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Danny <nooges@users.noreply.github.com>
2021-01-14 11:57:30 -05:00
Joshua Diamond
c46619d8fb [Keyboard] eliminate nested layout warnings in kbd75 (#11540) 2021-01-13 23:07:47 -08:00
melonbred
b323ab89e0 [Keyboard] Added Ortho support to Program Yoink kb (#11534)
* Added Ortho support

* Updated JSON
2021-01-13 23:03:12 -08:00
J.Flanagan
1f633c027b [Keyboard] Add VIA support for CA66 (#11522)
* Add VIA support

made changes to add VIA support for the CA66

- added VIA keymap.c, readme.md, rules.mk
- changes made to main rules.mk to keep firmware size down (mousekey_enable = no; backlight_enable = no)
- changed VENDOR_ID in config.h from 0xFEED to 0x504B (PK)

* Minor changes to CA66 for VIA support

edited keymap info
enabled backlight

* Update vendorID

Change to vendorID to remove conflict with previously chosen vendorID already in use

* Update keyboards/playkbtw/ca66/rules.mk

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

* Update keyboards/playkbtw/ca66/keymaps/via/readme.md

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

* Update keyboards/playkbtw/ca66/keymaps/via/keymap.c

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

Co-authored-by: Joel Challis <git@zvecr.com>
2021-01-13 23:01:14 -08:00
duoshock
1f38221ec5 [Keyboard] Add ISO Macro keyboard (#11517)
* -

* -

* -

* -

* -

Co-authored-by: online <33636898+online@users.noreply.github.com>
2021-01-13 22:57:55 -08:00
Eithan Shavit
68c3773c8e [Keyboard] Add new afternoonlabs/breeze/rev0 split keyboard (#11510)
* Adding new breeze keyboard under afternoonlabs

* Compiling only Rev0, moving readme there

* Apply suggestions from code review

Addressing review comments, removing legacy description config. Removing copy paste leftovers

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

* Addressing review, remove empty rules.mk

* typos

* Apply suggestions from code review

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

Co-authored-by: Eithan Shavit <eithan@fb.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-13 22:51:24 -08:00
Josh Johnson
5dfb6459df [Keyboard] Add Hub20 keyboard (#11497)
* add Hub20 support

* Keymap formatting cleanup

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

* Delete bootloader_defs.h as no longer required

* Correct make / flashing example

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

* Update rules.mk

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-13 22:46:07 -08:00
koshinoya
d97d4794e0 [Keyboard] Add Rect44 keyboard (#11484)
* Add Rect44 keyboard

* Update keyboards/rect44/readme.md

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

* Delete config.h files in keymaps

* Update keyboards/rect44/rules.mk

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

* Update keyboards/rect44/readme.md

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

* Update keyboards/rect44/config.h

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-01-13 22:40:10 -08:00
Adam Gwilliam
b48a5b573f [Keymp] add gwillad's keymap for prime_e (#11477)
* new keymap

* Update keyboards/primekb/prime_e/keymaps/gwillad/keymap.c

use a more concise pin setting method

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

Co-authored-by: Adam Gwilliam <agwilliam@yaharasoftware.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-01-13 22:39:15 -08:00
qpockets
eb0ce0abc7 [Keyboard] Add space space keyboard (#11425)
* add space_space keyboard

* update space_space readme

* fix space_space formatting issue

* add layout readme, vid & pid

* experiment

* readme fix

* readme fix

* readme fix

* readme formatting

* readme formatting

* readme formatting

* Update keymap.c

change I+O combo to O+P because of accidental activation

* Update keymap.c

change I+O combo to O+P because of accidental activation

* Update readme.md

change keymap readme to reflect keymap changes

* Apply suggestions from code review

remove deprecated  "key count" from .json

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

* Apply suggestions from code review

-move combo and modtap defines to the keymap level
-formatting issues

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

* move combo defines to keymap level and update config.h

* Apply suggestions from code review

add lower resolution readme picture and sleep LED note

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-13 22:01:58 -08:00
David Dejaeghere
501f3ed419 [Keyboard] Adding new keyboard UD_40 ortho version (#11401)
* Adding keyboard UD_40 Ortho

* Update keyboards/mechstudio/ud_40_ortho/info.json

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

* Update keyboards/mechstudio/ud_40_ortho/keymaps/default/keymap.c

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

* Update keyboards/mechstudio/ud_40_ortho/keymaps/default/keymap.c

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

* Update keyboards/mechstudio/ud_40_ortho/keymaps/default/keymap.c

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

* Update keyboards/mechstudio/ud_40_ortho/keymaps/via/keymap.c

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

* Update keyboards/mechstudio/ud_40_ortho/keymaps/via/keymap.c

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

* Update keyboards/mechstudio/ud_40_ortho/ud_40_ortho.h

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

* Update keyboards/mechstudio/ud_40_ortho/keymaps/via/keymap.c

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

* Update keyboards/mechstudio/ud_40_ortho/ud_40_ortho.h

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

* Update keyboards/mechstudio/ud_40_ortho/rules.mk

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

* fixing syntax after merging suggestions

* Update keyboards/mechstudio/ud_40_ortho/config.h

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

* Update keyboards/mechstudio/ud_40_ortho/keymaps/default/keymap.c

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

* Update keyboards/mechstudio/ud_40_ortho/keymaps/via/keymap.c

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

* Update keyboards/mechstudio/ud_40_ortho/rules.mk

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

* Update keyboards/mechstudio/ud_40_ortho/ud_40_ortho.h

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

* Update keyboards/mechstudio/ud_40_ortho/rules.mk

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

* Update keyboards/mechstudio/ud_40_ortho/config.h

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

Co-authored-by: David <david@tarpit.be>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-13 21:58:16 -08:00
Christian Eiden
8ea28429e9 [Keymap] own Lily58 keymap (#11395)
* [Keymap] own Lily58 keymap

Signed-off-by: Christian Eiden <christian@eiden.ch>

* adjustments of personal keymap

Signed-off-by: Christian Eiden <christian@eiden.ch>
2021-01-13 21:56:22 -08:00
James
214528b1e7 [Keymap] urbanvanilla keymap for drop/alt (#11365)
* added urbanvanilla keymap

Urbanvanilla's keymap for massdrop/alt keyboard
adds in an idle timer to turn off RGB after set amount of time.
poor unsuccessful attempt at replicating a velocikey like functionality.
Grave escape is enabled on ESC.

* Update readme.md

* updating documentation

* Create readme.md

* restoring default documentation

* update with review changes implemented

removed unnecessary lines and files.
increased wait_us() parameter to 40 as was still getting chatter at 20.
removed some code for the terrible rudimentary attempt at velocikey for rgb matrix

* Update matrix.c

* Revert "Merge pull request #3 from urbanvanilla/dev_branch"

This reverts commit deb55d797a4629965c990ab507251489c578573d, reversing
changes made to ba8817356f6c0881cf7f3214f7f1ebd31febceb5.

* Update keymap.c

* added urbanvanilla keymap

Urbanvanilla's keymap for massdrop/alt keyboard
adds in an idle timer to turn off RGB after set amount of time.
poor unsuccessful attempt at replicating a velocikey like functionality.
Grave escape is enabled on ESC.

* Update readme.md

* updating documentation

* Create readme.md

* restoring default documentation

* update with review changes implemented

removed unnecessary lines and files.
increased wait_us() parameter to 40 as was still getting chatter at 20.
removed some code for the terrible rudimentary attempt at velocikey for rgb matrix

* Update matrix.c

* Revert "Merge pull request #3 from urbanvanilla/dev_branch"

This reverts commit deb55d797a4629965c990ab507251489c578573d, reversing
changes made to ba8817356f6c0881cf7f3214f7f1ebd31febceb5.

* Delete matrix.c

* Update keyboards/massdrop/alt/keymaps/urbanvanilla/config.h

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

* Update keymap.c

* Update keymap.c

* Update keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-13 21:52:11 -08:00
Richard Titmuss
523c8315a2 [Keyboard] Improvements for the Torn keyboard (#11268)
* Add bongo cat animation

* Map all keys on base layer

... to make it easier to test newly built keyboards. The encoders
are optional and can be placed in different locations.

* Fix Torn in QMK configurator

This removes additional variables defined in the keymap.c file, so
that the default firmware can be compiled by the configurator.

Co-authored-by: Richard Titmuss <richardt@spotify.com>
2021-01-13 21:50:18 -08:00
Ananya Kirti
73235e7ca0 [Keyboard] Add support for hp69 (#11339)
* init

init

* Update keyboards/hp69/config.h

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

* Update keyboards/hp69/keymaps/via/rules.mk

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

* Update keyboards/hp69/rules.mk

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

* re-added audio support

re-added audio support

* Update keyboards/hp69/readme.md

reduced the size of the default image

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

* Update keyboards/hp69/readme.md

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

* Update keyboards/hp69/info.json

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-13 20:36:00 -08:00
Ryan
72ca319bee Uni660 refactor (#11526) 2021-01-14 11:17:47 +11:00
Erovia
b5c2e5e8fd Fix documentation so UCIS example compiles. (#11541) 2021-01-14 11:11:59 +11:00
Joel Challis
6e931cc90b Fix leafcutterlabs/bigknob compiles in configurator (#11531)
* Fix leafcutterlabs/bigknob compiles in configurator

* Revert change
2021-01-13 17:04:18 +00:00
Zach White
6368a5697d Exclude more keyboards from CI (#11436)
* exclude all of handwired

* exclude more keyboards from CI
2021-01-13 08:12:28 -08:00
Ryan
09835033da keymap_fr_ch: undef CH_H (#11537) 2021-01-13 15:53:00 +11:00
Rob Hilgefort
b297f1ce8d [Keymap] rjhilgefort's Ergodox Infinity (#11345)
* initial commit- copy of default

* beginnings of ergodox layout conversion

* from scratch 2020 RJH ergodox layout!

* remove extra line in keymap

* only shift to layers, led work

* Fleshed out readme

* tweak alt placement

* updated readme

* PR feedback, updated default layer

* Update keyboards/ergodox_infinity/keymaps/rjhilgefort/keymap.c

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-12 17:56:18 -08:00
Dan Hertz
c81e07fef5 [Keymap] Add dhertz' kanu layout (#11346)
* Add dhertz' kanu layout

* Fix delete button

* Add weak user layer change
2021-01-12 17:53:15 -08:00
Joel Challis
1eaad6dd65 Fix inverted indicator leds on kbdfans/kbd19x (#11532) 2021-01-12 23:58:01 +00:00
Sascha Grunert
5e46f72f75 [Keymap] keymap/sascha: disable autoshift (#11525)
Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2021-01-12 12:59:18 -08:00
Drashna Jaelre
16d43af493 [Keyboard] Fix printf calls in Moonlander matrix (#11511) 2021-01-12 12:33:55 +00:00
James Young
68f321f24b Acheron Lasgewloth: layout macro rework (#11523)
* Acheron Lasgewloth: layout macro rework

Arrange the layout macro to match the assembled board.

* rename layout macro

The layout supported is equivalent to 60% ANSI with split Backspace and split Right Shift, and supports every extant switch position.

Adds community layout support.

* add LAYOUT_60_ansi support

* add Configurator data

* convert tabs to spaces in lasgweloth.h
2021-01-12 12:21:13 +00:00
Ryan
8729afece5 Telophase: add info.json (#11524) 2021-01-12 12:14:32 +00:00
Vlad K
5127ef1f02 [Keymap] vladkvit keymap for keebio/bfo9000 (#10825)
* layouts for bfo9000

* cleaning up layout

* moved to a better layout name

* Added readme

* Removed zip, updated license

* Removed layers.json

* Update keyboards/keebio/bfo9000/keymaps/vladkvit/keymap.c

removing trailing backslashes

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

* Update keyboards/keebio/bfo9000/keymaps/vladkvit/keymap.c

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

Co-authored-by: Vlad Kvitnevskiy <vladkvit@outlook.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2021-01-11 11:02:00 -08:00
Sergey Shulepov
e941f04891 Fix macOS build 2021-01-11 08:05:28 -08:00
Nick Brassel
11bd51441b Fixup line endings. 2021-01-11 20:26:28 +11:00
wangyifu
76e88e228b [Keyboard] latin64ble Keyboard (#10884)
* Update rules.mk

* Update config.h

* Update keyboards/latinpad/config.h

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

* Create rules.mk

* Create config.h

* Create latin64ble.h

* Create latin64ble.c

* Create keymap.c

* Create keymap.c

* Create rules.mk

* Create readme.md

* Update rules.mk

* Update rules.mk

* Update keymap.c

* Update keymap.c

* Update rules.mk

* Update readme.md

* Update keyboards/latin64ble/config.h

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

* Update keyboards/latin64ble/config.h

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

* Update keyboards/latin64ble/rules.mk

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

* Update config.h

* Update rules.mk

* Update config.h

* Update keymap.c

* Update rules.mk

* Update keymap.c

* Update keymap.c

* Update latin64ble.h

* Update rules.mk

* Update rules.mk

* Update keymap.c

* Update keymap.c

* Update keyboards/latin64ble/rules.mk

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

* Update keyboards/latin64ble/rules.mk

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

* Update keyboards/latin64ble/rules.mk

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

* Update readme.md

* Update readme.md

* Update keyboards/latin64ble/readme.md

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-11 01:22:43 -08:00
yonatanzunger
554b937d21 [Keymap] Redo the accent implementation in melody96:zunger. (#11000)
The previous implementation generated accents in NFKD -- e.g., i
followed by fn+e would generate í, which is actually an ordinary i
followed by U+0301 COMBINING ACUTE ACCENT. Unfortunately, it turns
out that a bunch of websites and apps (especially European ones
written in languages that use these a lot) were very poorly written,
and will misparse and/or crash if presented with Unicode NFKD. They
require and expect NFKC, with characters like í (U+00ED LATIN SMALL
I WITH ACUTE) that look visually identical -- and are in fact
normalization-equivalent -- but have to be encoded differently.

The new accent implementation handles this in a very flexible way.

Many new comments added as well, as it's also clear that this is going
to need a bit more expansion before it becomes a true polyglot keymap.

Co-authored-by: Yonatan  Zunger <zunger@desiderata.lan>
2021-01-11 01:21:44 -08:00
Vinam Arora
b113888ec5 [Keyboard] Add 0-Sixty (#11303)
* New keyboard: 0-Sixty

* Apply suggestions from code review

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-11 01:21:19 -08:00
ridingqwerty
f8cbad20ab [Keyboard] Correct edc40.h and config.h (#11508) 2021-01-11 01:05:07 -08:00
James Young
6b2f9e3015 [Keyboard] Basketweave: Configurator fix (#11506)
* rework layout macro

Rework the layout macro so it's arranged the way the hardware is.

* info.json: use debug linting

* info.json: rebuild to correct key sequence

* white-space formatting

Makes the keymap and layout macro a bit more representative of where everything is.
2021-01-11 00:55:06 -08:00
Ryan
d8b9825a8b Remove DESCRIPTION, 0-A (#11369) 2021-01-11 19:47:02 +11:00
Ryan
aa0e33eca0 Add support for shared EP on V-USB boards (#11103) 2021-01-11 19:46:30 +11:00
James Young
407e5be34d [Keyboard] whale/sk/v3: Configurator fix (#11490)
* whale/sk/v3: info.json debug linting

* LAYOUT_all key sequence fix

* remove `key_count` key

* LAYOUT_right_half_only dead-space removal

Removes the dead space from the QMK Configurator rendering.
2021-01-11 00:29:44 -08:00
Joshua Diamond
4d96b85b6f Lighting Layers should be disabled when suspended (#11442)
* Lighting Layers should be disabled when suspended

* bugfixes
2021-01-11 00:07:09 -08:00
Callum Hart
d877f40b70 [Keyboard] Add Borsdorf keyboard (#11474)
* Add Borsdorf

* Delete config.h

* Add basic VIA keymap

* Update default keymap

* Default now uses layout_all
* Default now has layer with reset key

* Fix missing comma in borsdorf keymap

* Update rules.mk to be less specific

* Update chibiOS files

* Update keymaps to swap GUI and Alt keys

* Delete unnecessary readme

* Update VIA keymap to match default

* Remove boilerplate from readme

* Udate Copyright message

* Remove unused key from LAYOUT_rshift

* Update borsdorf.c

Remove unnecessary boiler plate

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

* Add copyright message to VIA keymap

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

* Fix missing directory in readme

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

* Fix incorrect rules.mk

* Update BOOTMAGIC_ENABLE to the preferred lite

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

* Remove redundant description from config

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

* Update keyboards/cutie_club/borsdorf/keymaps/default/keymap.c

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

* Update keyboards/cutie_club/borsdorf/keymaps/via/keymap.c

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-11 00:04:28 -08:00
Ben
ebfe668fff [Keyboard] Add Kimiko keyboard (#11458)
* add keycapsss/kimiko split keyboard

* add kimiko rgb matrix keymap (only master working)

* move rgb_matrix_driver definiton to rev1 folder

* add comments to rgb matrix code

* add power draw limitation for ios

* add SPLIT_TRANSPORT_MIRROR to kimiko

* Add oled code and font for kimiko

* Edit default keymap and add copyright entries

* Improve typo style

* Add info.json for Kimiko

* Add readme

* Remove split matrix code

* Add image and more feature informations

* Fix indention

* Add make command example

* Update keyboards/keycapsss/kimiko/readme.md

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

* Update keyboards/keycapsss/kimiko/rules.mk

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

* Update keyboards/keycapsss/kimiko/rules.mk

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

* Update keyboards/keycapsss/kimiko/rules.mk

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

* Update keyboards/keycapsss/kimiko/readme.md

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-10 23:55:42 -08:00
Álvaro A. Volpato
e71f7a1c9f [Keyboard] CK60i support (#11432)
* Initial CK60i support

* Update README, add HAL_PWM and remove AUDIO and BLUETOOTH from rules.mk

* VIA support

* Fix VIA_ENABLE to 'yes'

* Remove CONSOLE_ENABLE from rules.mk

* attribute weak for encoder callback

* Remove KC_NO definition from default keymap

Co-authored-by: Gondolindrim <alvaro.augusto.volpato@gmail.com>
2021-01-10 23:40:26 -08:00
Christian Eiden
2e0f4d7e2a [Keymap] own Redox keymap (#11394)
Signed-off-by: Christian Eiden <christian@eiden.ch>
2021-01-10 23:12:39 -08:00
Giorgi Chavchanidze
83176b748a [Keymap] Georgian linear keymap for idobo (#11386)
* Georgian linear layout for idobo keyboard

* fixup! Keymap formatting

Co-authored-by: Giorgi Chavchanidze <giorgi@vivaldi.com>
2021-01-10 23:12:07 -08:00
Rob Hilgefort
0728200e28 [Keymap] revamped rjhilgefort planck keymap (#11385) 2021-01-10 23:11:42 -08:00
Rob Hilgefort
8e70c4d943 [Keymap] rjhilgefort's Corne KBD (#11381)
* initial crkbd rjhilgefort keymap

* finished v1 of rjhilgefort's crkbd keymap

* Update keyboards/crkbd/keymaps/rjhilgefort/readme.md

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

* Update keyboards/crkbd/keymaps/rjhilgefort/readme.md

* Update keyboards/crkbd/keymaps/rjhilgefort/readme.md

* Update keyboards/crkbd/keymaps/rjhilgefort/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-10 23:11:17 -08:00
Nick Blyumberg
68b58624d6 [Docs] Update feature_rgblight.md (#11363)
* Update feature_rgblight.md

The note is meant to let people know that this is specific to RGB Backlight and does not work with RGB Matrix based implementations.

* Update docs/feature_rgblight.md

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-01-10 23:05:11 -08:00
stanrc85
4ae5c3a905 [Keymap] stanrc85 Keymap/userspace updates (#11349)
* keymap updates

* adding fanfare back
2021-01-10 23:03:12 -08:00
misonoworks
4c48518a4e [Keyboard] Add Karina keyboard (#11347)
* add karina keymap

* Update info.json

* Add files via upload

* Update readme.md

* Update info.json

* Update info.json

* Update keyboards/misonoworks/karina/rules.mk

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

* Update keyboards/misonoworks/karina/rules.mk

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

* Update keyboards/misonoworks/karina/config.h

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

Co-authored-by: autumnisacutie <63772942+autumnisacutie@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-10 23:01:35 -08:00
Daniel Rodríguez Rivero
135d28d2fb [Keymap] Danielo515/redox_w (#11340)
* chore: pulled the latest from master

Bring my redox layout from my latest redox branch
Bring my latest user stuff from my redox branch

* Update users/danielo515/config.h

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

* chore: some more layouts

* feat: add gaming layer (has a bug)

* chore: more gaming layout

* chore: deactivate gaming layer when switching

* chore: simplify gaming toggle

* Update .vscode/settings.json

Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-01-10 22:55:20 -08:00
jackytrabbit
fd80b2581e [Keyboard] Add the 'THE40' (#11317)
* Add support for keyboard 'THE40'

Add support for keyboard 'THE40'

* Update keyboards/lazydesigners/the40/the40.c

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

* Update keyboards/lazydesigners/the40/readme.md

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

* Update the40.h

Add layout option.

* Update info.json

Add layout option.

* Update keymap.c

Change for layout option.

* Update keyboards/lazydesigners/the40/readme.md

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

* Update keyboards/lazydesigners/the40/readme.md

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

* Update keyboards/lazydesigners/the40/readme.md

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

* Update keyboards/lazydesigners/the40/config.h

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-01-10 22:40:24 -08:00
Eshan
beace23bca [Keymap] Adding my Planck Keymap (#11315)
* Adding keymap files

* Added compatible license header to config file

* Apply suggestions from code review

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-10 22:38:06 -08:00
Moritz
abda419f5a [Keyboard] Add isometria 75 keyboard (#11210)
* added isometria_75

* added missing license header

* added reset explanation

* Update keyboards/ebastler/isometria_75/rev1/keymaps/via/keymap.c

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

* Update keyboards/ebastler/isometria_75/rev1/keymaps/via/keymap.c

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

* Update keyboards/ebastler/isometria_75/rev1/config.h

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

* Update keyboards/ebastler/isometria_75/rev1/keymaps/default/keymap.c

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

* Update keyboards/ebastler/isometria_75/rev1/keymaps/default/keymap.c

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

* renamed uppercase readme

* Update keyboards/ebastler/isometria_75/rev1/info.json

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

* Update keyboards/ebastler/isometria_75/rev1/rules.mk

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

* Update keyboards/ebastler/isometria_75/rev1/rules.mk

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

* Update keyboards/ebastler/isometria_75/rev1/rev1.c

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

* changed configs to only necessary lines

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-10 22:26:34 -08:00
Carsten Rose
29fcd5418a [Keyboard] Add support for idobao id80 iso layout (#11246)
* add support for idobao id80 iso layout

* This change is required as there is a logic bug on the board that C7
(capslock) is inverted thus lowercase is with light on. Mind the ! in
the write to the pin.

* Apply suggestions from code review

All fine for me, thanks for the additional information!

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

* move device information to separate config.h for id80 iso and ansi

* commit via keymap similar to default. There is a problem with mapping compiling vor via, resulting in KC_ENT residing on KC_PGDN. Switching off via support in rules.mk makes the keyboard behave fine

* change KC_BSLS to KC_NUHS as this is an iso board

Co-authored-by: Carsten <modebm@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2021-01-10 22:22:44 -08:00
johannesk
3f6de1ef54 [Keyboard] wheatfield/split75 with ISO layout (#11271)
The pcb used for wheatfield/split75 supports ANSI and ISO layout. This
commit adds the ISO variant.

With suggestions from code review:
Co-authored-by: Drashna Jael're <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2021-01-10 22:21:27 -08:00
NightlyBoards
b1419742a5 [Keyboard] Add the [n]40-o (#11286)
* Create Alter folder

* Revert "Create Alter folder"

This reverts commit 361103b821.

* Added the n40_o folder

* Edited info.json, n40_o.h and rules.mk

* Edited readme as per comment
2021-01-10 22:18:28 -08:00
Andrew Kannan
65d8ac4759 [Keyboard] Add Onyx keyboard to QMK (#11292)
* Add Onyx keyboard to QMK

* Apply suggestions from code review

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-10 22:18:01 -08:00
Ramon Imbao
8657f54f9e [Keyboard] Add Herringbone Pro, re-organize herringbone folder (#11115)
* Add Herringbone Pro, reorganize herringbone folder

* Finish encoder functionality

* Change image in readme

* Fix info.json

* Flip encoder direction

* Update keyboards/ramonimbao/herringbone/pro/config.h

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

* Update keyboards/ramonimbao/herringbone/pro/rules.mk

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

* Update keyboards/ramonimbao/herringbone/pro/rules.mk

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

* Update keyboards/ramonimbao/herringbone/pro/readme.md

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

* Add OLED support, split space, default folder

* Fix LAYOUT_all in info.json

* Remove WPM feature

* Add readme to top level herringbone folder

* Re-add WPM because now the OLED won't turn back on lol

* Add missing timer_read32

* Add OLED wakeup on knob use

* Update keyboards/ramonimbao/herringbone/v1/rules.mk

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

* Update keyboards/ramonimbao/herringbone/v1/rules.mk

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

* Update keyboards/ramonimbao/herringbone/pro/rules.mk

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

* Update keyboards/ramonimbao/herringbone/pro/rules.mk

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

* Add small QoL improvments for tapping

* Update keyboards/ramonimbao/herringbone/readme.md

Co-authored-by: Erovia <Erovia@users.noreply.github.com>

* Add bootloader instructions and improve LAYOUT_all a bit

* Update keyboards/ramonimbao/herringbone/pro/pro.h

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

* Update keyboards/ramonimbao/herringbone/pro/info.json

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

* Update keyboards/ramonimbao/herringbone/pro/info.json

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

* Update keyboards/ramonimbao/herringbone/pro/keymaps/iso/keymap.c

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

* Update keyboards/ramonimbao/herringbone/v1/readme.md

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

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2021-01-10 21:55:32 -08:00
Roger
466424c3c2 [Keymap] Quefrency layout for rogthefrog (#11140)
* noop; indent and comment cleanup

* config for rogthefrog layout

* removed encoder function as there is no encoder on this pcb

* removed unnecessary declaration

* replaced individual constants with an enum for extensibility

* removed unused enum

* Added GPL license language

* added copyright for my changes, per GPL

* noop; removed unneeded line continuations; fixed indentation
2021-01-10 21:49:19 -08:00
L. K. Post
efbaf68d5a Fix documentation of lsusb behaviour (#10903) 2021-01-10 21:48:29 -08:00
Álvaro A. Volpato
e688f2286f Alpine65 (#11223)
* Initial ALPINE65 support

* Fix RGB LED number

Co-authored-by: Gondolindrim <alvaro.augusto.volpato@gmail.com>
2021-01-11 00:41:53 -05:00
Alexander Tulloh
ffd8ff642d [Keyboard] Oddball keyboard and optical sensor update (#10450)
* Add oddballl v2

- add CPI options
- add scroll support
- add click-and-drag support
- PMW3360 implementation
- ADNS9800 improvements

* Set default make directory

* Update readme with PMW config

* Change bootloader

* Update unused pins on v2

* Remove diode switch

* Move bootloader selection to keyboard version level

* Change default keyboard folder to v1

* Move sensor selection to keymap

* Remove PK debounce

* Change to only send mouse report on change

* Change CPI function cpi type

* Remove EEPROM state check

* Update CPI to only change on key down

* Fix incorrect F8 in keymap

* Add v2.1 with more convenient controller pinout

* Add keyboard readmes

* Update keyboards/oddball/pmw/pmw3360_srom_0x04.h

Remove direct AVR reference

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

* Remove direct AVR reference

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

Co-authored-by: Alexander Tulloh <alex@riberry.io>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-10 19:13:47 -08:00
scottywei
6edbd845eb [Keyboard] Add BIOI Keyboards (#9602)
* Add BIOI Keyboards

Add keyboards from BIOI, including dual-mode G60, Morgan65, and S65

* Update keyboards/bioi/g60/config.h

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

* Update keyboards/bioi/g60/config.h

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

* Update keyboards/bioi/g60/g60.c

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

* Update keyboards/bioi/g60/config.h

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

* Apply suggestions from code review

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

* Rename rule.mk to rules.mk

* Rename rule.mk to rules.mk

* Rename rule.mk to rules.mk

* Update readme.md

* Apply suggestions from code review

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

* Update ble.h

* Update config.h

Change VenderID to 8101

* Update config.h

* Update config.h

* Update ble.c

* Update ble.h

* Add license headers

* Apply suggestions from code review

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

* Add license header in keymap files

* Fix year in  license header

* Update keyboards/bioi/s65/readme.md

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

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>
2021-01-10 18:57:58 -08:00
James Young
46b3245d66 freoduo: define RGBLight config at keyboard level (#11491)
Configurator compiles fail without the number of LEDs defined here. Included the rest to match the default keymap's settings.
2021-01-10 23:00:17 +00:00
Joel Challis
d58d7dd192 manually run formatting job (#11503) 2021-01-10 22:15:29 +00:00
Matthias Bertschy
acdcc62202 [Keymap] Add new atreus keymap to planck keyboard (#11420) 2021-01-09 20:01:09 -08:00
Joshua Diamond
9d10c66cf0 Correct descriptions of rgblight functions (#11429) 2021-01-09 20:00:12 -08:00
Koichi Katano
6caef353a5 Update Bakeneko65 readme (#11485) 2021-01-10 12:31:06 +11:00
Koichi Katano
c85e2a8822 Update Bakeneko60 readme (#11483) 2021-01-10 12:30:26 +11:00
James Young
3dc5e5af38 tunks/ergo33: info.json fixes (#11488)
* tunks/ergo33: info.json fixes

Fix layout macro reference and key sequence.

* fix make command in readme
2021-01-09 20:08:34 +00:00
James Young
0500a2e0f1 Add 96% ANSI Community Layouts (#11453) 2021-01-10 05:15:15 +11:00
Monksoffunk
d54289db58 Add VIA keymap for Zinc (#9299)
* Add VIA keymap

* Update Document files

Update readme of VIA keymaps

* Update keyboards/zinc/keymaps/via/keymap.c

* Update keyboards/zinc/keymaps/via/keymap.c

* Update keyboards/zinc/keymaps/via/keymap.c

* Update keyboards/zinc/keymaps/via/keymap.c

* Update keyboards/zinc/keymaps/via/keymap.c

* Update keyboards/zinc/keymaps/via/keymap.c

* Update keyboards/zinc/keymaps/via/rules.mk

* Update keyboards/zinc/keymaps/via/rules.mk

* Update keyboards/zinc/keymaps/via/rules.mk

* Update keyboards/zinc/keymaps/via/rules.mk

* Update keyboards/zinc/keymaps/via/keymap.c

* Update keyboards/zinc/keymaps/via/keymap.c

* Update keyboards/zinc/keymaps/via/keymap.c

* Update keyboards/zinc/keymaps/via/keymap.c

* Update keyboards/zinc/keymaps/via/keymap.c

* Update keyboards/zinc/keymaps/via/keymap.c

* Add copyright license header
2021-01-08 22:46:15 -08:00
Toban Wiebe
95a1496ebc Fix AUR package name (#11416)
On Arch, `qmk` is now in the official repos, whereas only `qmk-git` is in AUR.
2021-01-09 11:37:42 +11:00
Erkki Halinen
06a6b23e60 Update available pohjolaworks/louhi layouts and RGB config(#11466) 2021-01-08 22:19:35 +00:00
Pascal Pfeil
1be7485fa4 VIA Support: LFKPad (#11461)
* VIA Support: LFKPad

* Condense two mostly redundant rules.mk files

* Set BOOTMAGIC_ENABLE to lite as advised by VIA tutorial
2021-01-08 22:16:21 +00:00
kb-elmo
19e2bb272e Added Odelia (#11362)
* add odelia keyboard

* Update readme.md

* Update info.json
2021-01-08 21:28:35 +00:00
Joel Challis
6d9b4c7b4f Suggest 'QMK MSYS' as the default windows platform (#11321)
* Suggest 'QMK MSYS' as the default windows platform

* Review comments
2021-01-08 11:09:28 -08:00
Joel Challis
b609a07b45 Implement matrix_io_delay abstraction for Drop boards (#11472) 2021-01-08 02:26:39 +00:00
Atsushi Morimoto
2574bc2791 [Keyboard] Add Sparrow62 (#11387)
* add sparrow62

* fix split hand pin

* fix default keymap back space

* add via firmware

* add 74th keymap
fix for coding style

* Update keyboards/sparrow62/readme.md

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

* Update keyboards/sparrow62/keymaps/74th/keymap.c

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

* Update keyboards/sparrow62/keymaps/74th/keymap.c

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

* fix typo

* remove macro for LOCK

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-07 18:12:50 -08:00
Ryan
985b8cab7c [Keyboard] JM60 refactor (#11421) 2021-01-07 11:39:38 -08:00
Jane Bernhardt
581368596e name change 2021-01-07 13:23:31 -05:00
Xyverz
832a6e150a [Keymap] Xyverz's crkbd keymap (#11299)
* Initial commit for my Corne keyboard layout.

* Updates to Corne, etc.

Finished working on primary layout for Corne keyboard.
Cleaned up some comments for my 4x12 Ortho layout.

* Changes for crkbd layout

* Fixed the config.h to reflect using ee_hands

* Added RGB configs to crkbd/corne layout

Co-authored-by: Ian Sterling <503326@MC02YT9K9LVCF.tld>
2021-01-06 10:04:43 -08:00
Jay Greco
8b735d35aa [Keymap] Update NIBBLE ISO keymap (#11295) 2021-01-06 10:03:06 -08:00
Craig Gardner
b7b82d509b [Keyboard] add support for bigknob (#11291)
* 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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-06 10:00:05 -08:00
Brandon Claveria
bf959d79dc [Keyboard] add joypad keyboard (#11283)
* add joypad

* add joypad keymaps

* change pid

* Apply suggestions from code review

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

* Apply suggestions from code review

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

* Update keyboards/handwired/swiftrax/joypad/joypad.h

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

* Update keyboards/handwired/swiftrax/joypad/keymaps/via/keymap.c

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

* Update keyboards/handwired/swiftrax/joypad/keymaps/default/keymap.c

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

* Apply suggestions from code review

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

Co-authored-by: Swiftrax <swiftrax@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-06 09:58:55 -08:00
Erkki Halinen
bca88177d3 [Keyboard] Add Louhi keyboard (#11244)
* Add Louhi QMK config

* Modify info.json layout

* change compile and flash examples

* Tweak layout, change picture

* Change pictures to Imgur hosted

* Update keyboards/pohjolaworks/louhi/louhi.h

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

* Update keyboards/pohjolaworks/louhi/louhi.h

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

* Update keyboards/pohjolaworks/louhi/keymaps/default/keymap.c

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

* Update keyboards/pohjolaworks/louhi/keymaps/default/keymap.c

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

* Update keyboards/pohjolaworks/louhi/info.json

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

* Update keyboards/pohjolaworks/louhi/info.json

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

* Update keyboards/pohjolaworks/louhi/keymaps/default/keymap.c

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

* Update keyboards/pohjolaworks/louhi/readme.md

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

* Update keyboards/pohjolaworks/louhi/rules.mk

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

* Update keyboards/pohjolaworks/louhi/keymaps/default/readme.md

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

* Update keyboards/pohjolaworks/louhi/readme.md

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

Co-authored-by: Erkki Halinen <erkki-eemeli.halinen@cgi.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-06 09:53:04 -08:00
Damien
515cea4b78 [Keymap] Dbroqua alps64 poker (#11254)
* [Apple M5120] First iteration

* Cleaned apple_m5120 files

* Changes requested by PR

* Update keyboards/apple_m5120/iso/rules.mk

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

* Update keyboards/apple_m5120/iso/keymaps/default/keymap.c

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

* Added dbroqua keymap for ALPS64

* Removed other keyboard

* Added volume keys

* Added licence

* Update keyboards/alps64/keymaps/dbroqua/keymap.c

Co-authored-by: dbroqua <dbroqua@mousur.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-06 09:50:50 -08:00
Barabas
748b3ac82a [Keymap] Added my lily58 keymap (#11258)
* added my keymap

* Tidy up

Add readme, run clang-format, remove some comments

* Fixed some formatting issues

* Update after reading PR checklist

Add GPL header to keymap.c, remove backslash in LAYOUT macro

* Use integer constants for switch labels

* Remove unneeded code, remove F-keys from raise layer

* Use program memory for some text on OLED

* Fixed left over debug code

* tidy up config.h and rules.mk

Remove all unused defines from config.h, and remove options which are the same as the keyboard level make file. Enabled command to be able to toggle NKRO.
2021-01-06 09:50:11 -08:00
Taylore101
634eac82e8 [Keyboard] Adding "Bigmac" 5x17 handwired by Taylore101 (#11204)
* Adding bigmac handwired by taylore101

* Adding bigmac handwired by taylore101

* Updated Big Mac pin layout

* Updated files from kbfirmware to newer qmk. Thanks drashna

* Updated config file to have product and manufacturer info. Thanks again drashna

* Update readme.md

added missing picture of board layout

* Update keyboards/handwired/bigmac/readme.md

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

Co-authored-by: Taylor Graves <taylorgraves@BOS0005.local>
Co-authored-by: Taylor Graves <taylorgraves@BOS0005.lan>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-01-06 09:40:33 -08:00
KgOfHedgehogs
11599bea93 [Keymap] Add jian/keymaps/left_hand (#11196)
* Add jian/keymaps/left_hand

* Add jian/rev2/readme.md

* Remove mod tap on mirrored layer

* Add GPL2+ license header

* Add gb version to readme
2021-01-05 21:52:51 -08:00
mechlovin
115aa95788 [Keyboard] Add TMKL PCB (#11173)
* add

* update

* update indicator LED

* Update keyboards/mechlovin/tmkl/keymaps/default/keymap.c

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

* Update keyboards/mechlovin/tmkl/readme.md

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

Co-authored-by: vuhopkep <boy9x0@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-05 21:44:19 -08:00
umi
340fc9dce3 [Docs] Japanese translation of feature_rawhid.md (#10858)
* add feature_rawhid.md translation

* update files based on comments

* update files based on comments

* update files based on comments
2021-01-06 14:08:21 +09:00
umi
db8e88aae0 [Docs] Japanese translation of feature_led_indicators.md (#10960)
* add feature_led_indicators.md translation

* update related document

* add link on _summary
2021-01-06 14:07:07 +09:00
Andrew Kannan
495a61ad7a [Keyboard] Sagittarius (#10896)
* Sagittarius keyboard

* Update Sagittarius keyboard

* fix

* remove info.json as it's very hard to make

* Add license and address PR comments

* Apply suggestions from code review

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

* Apply suggestions from code review

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

* Add info json, update keymap

* Fix info json

* Update keymap

* Update keyboards/cannonkeys/sagittarius/info.json

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-05 20:23:35 -08:00
Álvaro A. Volpato
dd356f90b0 [Keyboard] Evolv75 (#10947)
* Initial support for Evolv75

* Fix encoder directional and layer support

* Invert knob directions

* Remove info.json and updated README

* Update keyboards/evolv/evolv.c

Update encoder_update call

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

* Update keyboards/evolv/config.h

Remove description field from USB descriptors

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

* Remove KC_NO define from default keymap

* Update config.h

New USB descriptor ID numbers

* Update keyboards/evolv/rules.mk

Remove words from bluetooth and audio enable comments

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

* Update keyboards/evolv/rules.mk

Enable full bootmagic

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

* Add info.json for QMK Configurator

* Edit copyright info, add VIA initial support

* Fix KC_NO seven underscores issue in keymap definitions

* Update info.json

* Update info.json

* ANSI and ISO layouts, info.json file with both

* Reorganized layouts to match info.json order

Co-authored-by: Gondolindrim <alvaro.augusto.volpato@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-05 20:22:45 -08:00
kb-elmo
6009e7d8b5 [Keyboard] add dz96 (#11252)
* add dz96

* Apply suggestions from code review

* Update keyboards/dztech/dz96/keymaps/iso/keymap.c

* add image to readme
2021-01-05 14:51:10 -08:00
Takeshi ISHII
3edfb93d5d Add build debug option to tmk_core/rules.mk (#11324)
* Add DUMP_C_MACROS to tmk_core/rules.mk

* update DUMP_C_MACROS

* add VERBOSE_LD_CMD, VERBOSE_AS_CMD

* add VERBOSE_C_CMD, VERBOSE_C_INCLUDE

* update DUMP_C_MACROS, VERBOSE_C_INCLUDE, VERBOSE_C_CMD
2021-01-06 07:27:10 +09:00
Zach White
34513b4665 enable LTO to bring firmware size down 2021-01-05 13:13:47 -08:00
Drashna Jael're
3d1e7bd36f [Keyboard] Disable music mode on OctoPad to reduce size 2021-01-05 10:55:28 -08:00
Drashna Jaelre
375ef0b8c3 [Keyboard] Fix compiler errors for Kingly Key boards (#11100) 2021-01-05 15:14:10 +11:00
Joel Challis
f03b10b6c1 Migrate python tests away from onekey (#11367)
* Migrate python tests away from onekey

* Add stub files to stop lint complaints

* Make all the pytest keymaps compile
2021-01-05 00:52:31 +00:00
Drashna Jaelre
810eafad12 Fix Tap-Hold Configs (#11127)
* Add proper prototypes for Tap-Hold Per Key functions

* Fix handwired/tennie default keymap

* Remove unneeded references

* Fix tapping term per key check in space cadet

* Pre-emptive fix for tap dance

* Fix marksard/leftover30

* Replace hard coded tapping term with define
2021-01-04 16:37:20 -08:00
fauxpark
c38fe49242 Update MXSS custom rgblight and fix compilation error 2021-01-04 16:27:16 -08:00
YangPiCui
d1e10a067b [Keyboard] Add handwired/evk (#11034)
* Add the Ergonomic Vertical Keyboards

* generic update

* Update readme.md

* Update readme.md

* Update readme.md

* Update info.json

* put into handwired

* Update readme.md

* Update readme.md

* i

* Change copy author from RedForty to Yang Cui

* add version 1.3

* rename keyboard version

* Update config.h

* j

* h

* fix bugs

* Update config.h

* Update config.h

* Update keymap.c

* update default keymap

* Update keymap.c

* Add handwired/evk

* Add handwired/evk

* Update v1_3.c

* Update keyboards/handwired/evk/v1_3/config.h

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

* Update keyboards/handwired/evk/v1_3/rules.mk

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

* Update keyboards/handwired/evk/v1_3/v1_3.c

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

* Update config.h

* Commit change requests from the pull request

* remove copy right

* Update v1_3.c

* Update v1_3.c

* Update keyboards/handwired/evk/v1_3/config.h

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

* Update keyboards/handwired/evk/v1_3/rules.mk

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

* Update keyboards/handwired/evk/v1_3/rules.mk

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

* Update keyboards/handwired/evk/v1_3/info.json

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

* Update keyboards/handwired/evk/info.json

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

* Update info.json

* change all names to YangPiCui

* Update keyboards/handwired/evk/v1_3/keymaps/default/keymap.c

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

* Update keyboards/handwired/evk/v1_3/readme.md

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

* Update keyboards/handwired/evk/v1_3/config.h

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

* Delete config.h

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-04 10:58:36 -08:00
Ryan
acec174fde Homebrew install: ignore pinned formulae in brew upgrade (#11423) 2021-01-03 20:30:59 +00:00
Joel Elkins
070240f212 arm_atsam: Use PROGRAM_CMD for :flash target if set (#11424) 2021-01-04 07:30:22 +11:00
Ryan
f3ac792c09 Align ChibiOS spi_master behaviour with AVR (#11404)
* Align ChibiOS spi_master behaviour with AVR

* Rollback `spi_transmit()` and `spi_receive()` to preserve DMA
2021-01-03 14:53:53 +11:00
Joshua Diamond
b3de903a3d Fix broken Lighting Layers when RGBLIGHT_MAX_LAYERS > 16 (#11406)
* fix incorrect bit math when RGBLIGHT_MAX_LAYERS > 16

* with 1UL cast is not needed

* ...but just casting works and is even more efficient

* cformat
2021-01-02 13:42:48 -08:00
Zach White
c07543133a Return the make exit code for qmk compile and flash (#11402) 2021-01-02 17:27:35 +00:00
Felix Jen
2e9d091960 [Keyboard] Added LDK65 based off BKS65 (#11335) 2021-01-02 00:46:25 -08:00
npspears
13efa8290e Update quark pin config (#11398) 2021-01-02 12:38:50 +11:00
Michael Overman
988715910c [Docs] Fix typo in hand_wire.md (#11297) 2021-01-01 17:36:17 -08:00
Felix Jen
8da9219c16 [Keyboard] Added Phantom Solder PCB and KBD8X HS PCB Variants (#11282)
* Added config for phantom solder all layout via only

* fixed matrix def

* Added KBD8X

* changed info name

* lowercase instances of LAYOUT_ALL and edited rules.mk

* edited kbd8x results

* fixed kbd8x rules

* removed trailing comma in kbd8x info

* Update keyboards/lucid/kbd8x_hs/config.h

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

* Update keyboards/lucid/kbd8x_hs/kbd8x_hs.h

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

* Update keyboards/lucid/kbd8x_hs/readme.md

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

* Update keyboards/lucid/kbd8x_hs/rules.mk

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

* Update keyboards/lucid/phantom_solder/info.json

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

* Update keyboards/lucid/phantom_solder/readme.md

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

* Update keyboards/lucid/phantom_solder/rules.mk

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

* Fixed info.json key mismatch

Co-authored-by: Joel Challis <git@zvecr.com>
2021-01-01 16:44:45 -08:00
smssmssms
d321cb3f8b [Keyboard] Pos78 update (#11274)
* Added LED hardware pin numbers

CAPS and NUM lock LEDs

* Added "LED_PIN_ON_STATE 1"

* Make MATRIX_ROW/COL pins match reality
2021-01-01 15:27:13 -08:00
gkeyboard
8ed9eb9c7f [Keyboard] Add GKB-M16 Macro Pad (#11262)
* Add GKB-M16 Macro Pad

Add GKB-M16 (gkb_m16) Macro Pad under gkeyboard

* Update keyboards/gkeyboard/gkb_m16/config.h

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

* Update keyboards/gkeyboard/gkb_m16/keymaps/via/keymap.c

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

* Update keyboards/gkeyboard/gkb_m16/info.json

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

* Update keyboards/gkeyboard/gkb_m16/keymaps/default/keymap.c

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-01 15:26:00 -08:00
Kyle McCreery
1d2a9a1cdb [Keyboard] New Keyboard - Mercutio (#11214)
* 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.

* Apply suggestions from code review

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

* Update keyboards/mechwild/mercutio/readme.md

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

* Fixing json syntax.

* Update keyboards/mechwild/mercutio/rules.mk

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-01 15:16:00 -08:00
Ross Montsinger
fcd921f3aa [Keyboard] Rebound, adding files for VIA compat (#11193)
* changes for via

* add manu to product name

* remove manu from product value

* remove description

* i m licensed
2021-01-01 15:05:02 -08:00
MURAOKA Taro
e11d3d524d speed up list_keyboards.sh 2021-01-01 10:08:32 -08:00
Ryan
c01a8b030e O4L 5x12 refactor (#11392)
* O4L 5x12 refactor

* Remove config.h
2021-01-01 16:32:21 +00:00
Ryan
b5fc6f0682 Fix rart4x4 info.json (#11390) 2021-01-01 14:58:55 +00:00
s-maurice
08fdf086b7 Fix typo in hand wiring guide (#11388)
ridid -> rigid
2021-01-01 14:57:02 +00:00
Ryan
aab056a4a6 Manta60 refactor (#11378) 2021-01-02 00:52:49 +11:00
Joel Challis
565a038a3d Fix layout ortho_4x12 macro for montsinger/rebound/rev4 (#11382) 2021-01-01 13:42:36 +00:00
Ryan
53e9213a22 Quark refactor (#11377) 2021-01-01 05:04:00 +11:00
Joel Challis
a68d289fa5 Manually run formatting CI process (#11375) 2021-01-01 03:50:32 +11:00
npspears
4ef4347543 Quark PCB for Planck/Preonic (#11206)
* Quark PCB for Planck/Preonic

Quark provides alternate bottom row layouts for both the OLKB Planck and Preonic

* Rename rules.mk.txt to rules.mk

* added Tapping Toggle

removed tapping toggle from keymap level

* Update info.json

took out } as requested

* update config.h

added GPL2+ license and #pragma once

* update info.json again

cleaned up syntax

* Apply suggestions from code review

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

* update config.h

added GPL2+ License

* Update info.json - and again

fixed it - oops

Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-12-31 10:00:08 -05:00
Chas
028d2c91dc Fixed typo in readme.md (#11333)
* Fixed typo in readme.md

censor -> sensor

* Censor -> Sensor in the Ploopy Trackball Readme
2020-12-31 14:53:06 +00:00
Álvaro A. Volpato
9f690c94b8 Change PRODUCT_ID descriptors for M80S and M80H (#11371)
* Change PRODUCT_ID descriptors for M80S and M80H

* Update config.h

* Update config.h

* Update config.h

* Remove PRODUCT_ID from root config.h
2020-12-31 12:58:59 +00:00
Takeshi ISHII
6169b47e82 Add target 'check-md5' to build_keyboard.mk (#11338)
* Add target 'build-for-compare' to `build_keyboard.mk`

The `build-for-compare` target provides an easy way to check the md5 checksum of the generated binary.

You can easily see if there is any change in the generated binaries between the two versions, as in the example below.

```
$ git checkout 0.11.0
M	build_keyboard.mk
M	tmk_core/rules.mk
Note: checking out '0.11.0'.
HEAD is now at c66df1664 2020 November 28 Breaking Changes Update (#11053)

$ make helix:all:build-for-compare | grep ^MD5
MD5 (.build/helix_rev2_default.hex) = 5c3606562c944bb4d18832e601b45d4a
MD5 (.build/helix_rev2_edvorakjp.hex) = 9e43d13d389d518ba7e99cd7337e28d6
MD5 (.build/helix_rev2_five_rows.hex) = 8bcb61c2fd5d237c2997f2fa007d4934
MD5 (.build/helix_rev2_five_rows_jis.hex) = b97cd818d52f73ca2d4e78c86d90a791
MD5 (.build/helix_rev2_froggy.hex) = c492172364188f4e2918b10bf0f3a0a6
MD5 (.build/helix_rev2_froggy_106.hex) = b0861fd735a8f81881a8c02730641a2b
MD5 (.build/helix_rev2_led_test.hex) = 5c97d982a5da5cfb3dacb28a8934b81d
MD5 (.build/helix_rev2_xulkal.hex) = 01f603dc46bcf9094d7e106831d8f5b1
MD5 (.build/helix_rev2_yshrsmz.hex) = 5a008bca2d0c5790a151c02834c529ba

$ git checkout 0.11.1
M	build_keyboard.mk
M	tmk_core/rules.mk
Previous HEAD position was c66df1664 2020 November 28 Breaking Changes Update (#11053)
HEAD is now at cc08e3082 nix-shell: add milc dependency (#11086)

$ make helix:all:build-for-compare | grep ^MD5
MD5 (.build/helix_rev2_default.hex) = 5c3606562c944bb4d18832e601b45d4a
MD5 (.build/helix_rev2_edvorakjp.hex) = 9e43d13d389d518ba7e99cd7337e28d6
MD5 (.build/helix_rev2_five_rows.hex) = 8bcb61c2fd5d237c2997f2fa007d4934
MD5 (.build/helix_rev2_five_rows_jis.hex) = b97cd818d52f73ca2d4e78c86d90a791
MD5 (.build/helix_rev2_froggy.hex) = c492172364188f4e2918b10bf0f3a0a6
MD5 (.build/helix_rev2_froggy_106.hex) = b0861fd735a8f81881a8c02730641a2b
MD5 (.build/helix_rev2_led_test.hex) = 5c97d982a5da5cfb3dacb28a8934b81d
MD5 (.build/helix_rev2_xulkal.hex) = d848383adfd7463b138c6da179cf1436
MD5 (.build/helix_rev2_yshrsmz.hex) = 5a008bca2d0c5790a151c02834c529ba
```

* make builds reproducable by default

* update build_keyboard.mk: remove 'build-for-compare' target

* GNU make (3.81) on macOS 10.14(Mojave) does not have the 'undefine' directive.

* Adopted fauxpark's suggestion.

* Update tmk_core/rules.mk

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

* update tmk_core/rules.mk

* fix tmk_core/rules.mk

Co-authored-by: Zach White <skullydazed@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-12-31 15:20:56 +09:00
Ryan
10096fc42e Zadig docs: add APM32 device name (#11356) 2020-12-30 16:35:06 +00:00
Nick Blyumberg
5e5ee3f8de Correct encoder pins on BDN9v2 (#11357)
* Update config.h

Wrong pin used for the left encoder, should be A4

* Update config.h

Added a media keys fix as well
2020-12-30 16:34:40 +00:00
Ryan
7071900407 Missed a couple more #pragma onces (#11351) 2020-12-30 15:44:53 +00:00
Reibl János Dániel
6f6e28b4c7 Add Arch / Manjaro section for Linux setup instructions (#10509) 2020-12-30 15:02:24 +01:00
Ryan
411b92e206 Remove useless wait in AVR suspend code (#11352) 2020-12-30 20:58:57 +11:00
Enoch
1aa8a3b424 [Keymap] Yd60mq add 64 key layout (#11207)
* 64 key layout

* add license

* add license

add name
2020-12-30 01:06:02 -08:00
Maurizio Porrato
0f5f6a6a75 Add libusb-devel dependency for fedora (#11287)
On fedora 33, libusb-devel is required to build BootloadHID
2020-12-30 15:12:02 +11:00
swampmonster
a038b712d0 [Keyboard] Add support to Kyria for the 2x2u layout (#11227)
* Adding support for the 2 x 2u layout.

This adds a macro to support the 2 x 2u layout which facilitates
a cleaner looking layout configuration for the people using it.

* Update keyboards/kyria/kyria.h

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

Co-authored-by: swampmonster <>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-12-29 19:55:40 -08:00
André Cruz
ca8df55858 Added mac variant of portuguese keymap extras (#11260)
* Added mac variant of portuguese keymap

This keymap is very similar to the existing portuguese keymap, but
some symbols are moved around.

Apply suggestions from code review

Corrected whitespace and implemented some suggested changes.

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

Converted some spaces to nbsp

Added sendstring ISO version

* Apply suggestions from code review

Added suggestions from code review

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

* Replaced space with nbsp

* Corrected 2 chars in ascii_to_shift_lut

{ and } require shift

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-12-29 19:40:58 -08:00
ReFil
fda514bbd7 [Keyboard] Polarity works CRBN support (#11107)
* Initial CRBN compatibility

Updated readme.md too

* formatting tweaks to meet requirements

* Update crbn.c

* Create readme.md

* Required fixes and licence header

* Fixes

* Apply suggestions from code review

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

* Update keyboards/crbn/rules.mk

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

* Update keyboards/readme.md

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

* Update crbn.c

* Update keyboards/crbn/crbn.c

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

* Licence headers

* Create info.json

* Apply suggestions from code review

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

* Configurator support

* Update keymap.c

* Update keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-12-29 19:26:16 -08:00
Joshua Diamond
c9156b50d9 [Keymap] spidey3 keymap for DMQDesign Spin (#11194)
* My first cut at firmware for te DMQDesign Spin

* Turn off underglow when computer sleeps

* dmqdesigns spin - a little more refined keymap now

* a few more refinements for spin

* missing key up event for CH_CPNL and CH_ASST

* better naming for keymap

* cformat

* Apply suggestions from code review

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

* Old #include habits die hard... :)

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-12-29 19:21:44 -08:00
Jonathan Paugh
992380a5dd Add missing Debian/Ubuntu dependency to the install script (#11348)
To successfully compile bootloadHID, we must have the libusb-config tool, which comes from the libusb-dev package. This package is available in both Ubuntu Groovy and Debian Buster

Co-authored-by: Jonathan Paugh <jpaugh@gmx.com>
2020-12-30 02:21:00 +00:00
kb-elmo
b4ea0a70be Add Axolstudio Helpo (#11117)
* add axolstudio helpo

* reverse matrix

* fix path in readme

* Apply suggestions from code review

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/axolstudio/helpo/readme.md

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-12-30 02:05:48 +00:00
cole smith
c89930ca01 The mark: 65 (#11060)
* added main keyboard files

* working default and iso maps

* add via config

* made default ansi map

* fixed info.json and made readme

* renamed folders

* reincluding the folders I renamed

* Apply suggestions from code review

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

* I made a change before PR to clean up VIA map that broke it now its fixed

* Apply suggestions from code review

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

* Update keyboards/boardsource/the_mark/the_mark.h

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

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-12-30 01:49:13 +00:00
Suschman
a94044c15c 40percentclub sixpack support (#11007)
* QMK support for 40percentclub SixPack

* Update readme.md

* QMK support for 40percentclub SixPack

* fix info.json

* Apply suggestions from code review

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

* update PRODUCT name and change BL levels to 6

* Add Fkeys keymap

* correct readme

* add via keymap

* correct readme

* change indentation

* Apply suggestions from code review

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

* requested change and more cleanup

* Update keyboards/40percentclub/sixpack/sixpack.h

Co-authored-by: Erovia <Erovia@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Suschman <suschman@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-12-30 01:46:16 +00:00
Álvaro A. Volpato
457042f179 Mode80 support (#10945)
* Add default mode eighty firmware

* Add via keymap

* Mode80 firmware upgrades

- Removed SPI and PWM drivers from MCU configuration, HAL configuration and Chibi configuration as neither peripherals are being used
- Included second backspace key (row 5, col 14) which should solve the non-appearance of the backspace key on the hotswap PCB

* Add default mode eighty firmware

* Add via keymap

* Update keyboards/mode/eighty/config.h

Remove comment lines from config.h

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

* Update keyboards/mode/eighty/config.h

Remove comments from config.h

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

* Update eighty.c

Add GPLv2 header

* Update eighty.h

Add GPLv2 license header

* Update readme.md

Update README

* Update keyboards/mode/eighty/config.h

Remove keyboard description

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

* Delete config.h

Delete config.h in keynap folder

* Update keyboards/mode/eighty/rules.mk

Remove feature disabling in rules.mk

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

* Move rules.mk to VIA folder

* Update keyboards/mode/eighty/keymaps/via/rules.mk

Use LTO_ENABLE as short for LINK_TIME_OPTIMIZATION_ENABLE

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

* Update keyboards/mode/eighty/readme.md

Puts a single image embedded in the readme, and links to the full gallery

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

* Update keyboards/mode/eighty/readme.md

Use * for markdown list

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

* Apply suggestions from code review

Correct comment characters

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

* Adjusted copyright name, USB descriptor and removed info.json

* Separate Mode80 S and H firwares into subfolders

* Added info.json files for QMK Configurator

* Lowercase folder and filenames

* Remove config definition macros in M80H

* Remove config definition macros in M80S and root

* Change definitions to lowercase parameters

* Moce chconf and mcuconf chibiOS files to root folder

* Move halconf to root folder, keymaps to subfolders

* Update readme for building/flashing guide

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

* Add layers to VIA keymaps, remove CONSOLE_ENABLE

* Push master changes to lib/

* Retrieve lufa and googletest submodules to previous heads at master

* Disabled LTO in VIA keymaps

* Fix layout declaration to lowercase in m80s default keymap

* Added readme's for each M80S and M80H

Co-authored-by: Jaicob <jaicob@icloud.com>
Co-authored-by: Gondolindrim <alvaro.augusto.volpato@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-12-30 01:27:33 +00:00
LongerHV
944feb2da5 [REDOX] Fix default keymap formatting (#11288) 2020-12-30 12:13:37 +11:00
TJ
b49c657ac1 [Keyboard] Add via support for le chiffren (#10597)
* add Via support and improve default keymap

* Update OLED widgets with Sickbabies updates. Add license headers

* Add led matrix config

* Add g_led_config

* Fix rules for matrix

* rules.mk updates

* Fix key lock state widgets
rebase on master

* Rules fixes

* remove LED_MAP
2020-12-29 17:06:52 -08:00
NightlyBoards
ac433b218d [Keyboard] Add the Octopad (#9946)
* Create Alter folder

* Revert "Create Alter folder"

This reverts commit 361103b821.

* Add octopad folder

* Added a new keyboard, the Octopad

* Edited files based on requested changes

* Moved encoder code in keyboard level

* Updated the readme

* Corrected the rows and columns of encoders on config.h

* Changed the Vendor ID to D812 since the first one was already taken

* Added support for ast1109MLTRQ speakers

* Increased number of layers to 8 on VIA keymap

* Edited files based on comments

* Edited rules.mk as per comment

* Edited readme.md as per comment
2020-12-29 16:58:14 -08:00
Naoto Takai
8ee03f6a6b Update Choco60 firmware to support new PCB (#11218)
* Update vendor and product info

* Add rev2 for Choco60

* Add keymap for VIA

* Add readme.md for rev1 and rev2

* Use list instead of new line

* Remove DESCRIPTION

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

* Update rev1/readme.md to specify rev1 directly.

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

* Remove some definitions

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

* Remove comments

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-12-30 00:05:48 +00:00
Jacqueline Liang
0c4663a802 Add 6key to keyboards/handwired (#11226)
* Add 6key to keyboards/handwired

* Add keyboards/handwired/6key folder
* Add 6key.c
* Add 6key.h
* Add config.h
* Add keymaps/default/keymap.c
* Add readme.md
* Add rules.mk

* Add info.json

* Apply suggestions from code review

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

* Make changes based on pr comments

* Apply formatting suggestions from code review

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

* Update keyboards/handwired/6key/rules.mk

Co-authored-by: jyliang2 <jyliang2@illinois.edu>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-12-30 00:03:35 +00:00
Brandon Claveria
5d0c0e7c12 add nodu keyboard (#11233)
* add nodu keyboard

* fix info.json

* limit via to 3 layers

Co-authored-by: Swiftrax <swiftrax@gmail.com>
2020-12-30 00:03:09 +00:00
Andrew Kannan
bea897caf1 Tsukuyomi Keyboard (#10898)
* Add Tsukuyomi PCB

* Remove unncessary file

* Fix

* update config

* Tsukuyomi info.json

* Update readme

* add license header and add dfu suffix args

* Apply suggestions from code review

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

* Update info.json

* Apply suggestions from code review

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-12-29 23:43:46 +00:00
Nick Krichevsky
e85d904fe1 Add convenience method for setting Nibble's big LED RGB (#11257) 2020-12-29 23:23:50 +00:00
Drashna Jaelre
12568fb5a9 [Bug] Fix RGB Matrix Indicators (#11308) 2020-12-29 22:14:03 +00:00
Joe Hu
824e1cd95d Fix backlight for XD84 (#11309)
Like XD87, XD8 should have `#define BACKLIGHT_ON_STATE 0` too.
2020-12-29 22:12:58 +00:00
xyzz
2573ed8c6b Remove MATRIX_IS_ON macro (#11330)
* Remove MATRIX_IS_ON macro

this macro is both incorrect and excessive given that macro_is_on()
exists

* Remove massdrop matrix.h
2020-12-29 21:45:04 +00:00
Monksoffunk
25d9cdc88f Add ALETH42 keyboard (#10720)
* Add Aleth42 keyboard

* Fix Rotary Encoder Section

* Add VIA keymap

* Fix VIA keymap

remove RETRO_TAPPING define because of incompatiblity of rotary encoders with layer tapping.
change KC_ESC to KC_GESC

* Change TAPPING definitions

Comment TAPPING_TERM
Remove RETRO_TAPPING

* Add rev1

Add new rev1 directory
Move previous files to rev0

* Add define of ENCODER_RESOLUTION

* Change number of RGBLED

* Change USB descriptor param

Change VID, PID and product name

* Change default and via keymaps

* Remove upper keymap

* Add readme

* Change USB descriptor param

VID 0x04D8 PID 0xEAC8
Manufacturer 25KEYS
rev0 -> 0x0000 rev1 -> 0x0001
Remove define DESCRIPTION

* Fix info.json

Remove info,json under /rev0 /rev1
Add correct info.json at keyboard/aleth42/

* Change keymaps

* Remove unnecessary comments

* Change BOOTMAGIC option

* Change config options

* Fix readme files

* Change keymap readme files

* Change to use get_highest_layer

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

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

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

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

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

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

* Update keyboards/aleth42/keymaps/default/readme.md

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

* Update keyboards/aleth42/keymaps/default/readme.md

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

* Update keyboards/aleth42/keymaps/default/readme.md

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

* Update keyboards/aleth42/keymaps/via/readme.md

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

* Update keyboards/aleth42/keymaps/via/readme.md

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

* Update keyboards/aleth42/keymaps/via/readme.md

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

* Use tap_code16 function

* Remove empty config file

* Update keyboards/aleth42/keymaps/default/readme.md

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

* Update keyboards/aleth42/keymaps/default/readme.md

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

* Update keyboards/aleth42/keymaps/default/readme.md

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

* Update keyboards/aleth42/keymaps/default/readme.md

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

* Update keyboards/aleth42/keymaps/default/readme.md

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

* Update keyboards/aleth42/keymaps/via/readme.md

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

* Update keyboards/aleth42/keymaps/via/readme.md

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

* Update keyboards/aleth42/keymaps/via/readme.md

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

* Update keyboards/aleth42/keymaps/via/readme.md

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-12-29 21:13:35 +00:00
Ryan
962b8d3814 Update keycode docs (#11343) 2020-12-30 07:51:36 +11:00
Ryan
122cf3ad0f Update Zadig docs with list of bootloader device names and IDs (#11337) 2020-12-29 19:46:15 +00:00
Zach White
5edfdeff50 remove some old and unused code from Makefile (#11336) 2020-12-29 19:42:09 +00:00
LongerHV
221d8fd866 [CLI] Add stdin support for json2c command (#11289)
* Implement stdin for json2c command

* Refactor

* Handle json decode error

* Add stdin support for c2json cli command

* Refactor to prevent code duplication

* Change exit(1) to return False in c2json command

* Remove unused import
2020-12-29 11:34:48 -08:00
Chas
3300164065 Typo fix: Useful function -> Useful Functions (#11342)
Thanks!
2020-12-30 01:32:30 +09:00
Zach White
55843480ff Fix compile issues from the error page (#11314)
* fix abacus so it works with configurator

* create the keymap path if it doesn't exist

* bpiphany/unloved_bastard: remove the nested macros, move default keymap to json

* readd the unloved_bastard default keymap

* fix clueboard/card

* fixup handwired/2x5keypad

* fixup hub16

* matrix/noah: remove the broken matrix print code to fix compilation

* reinstate matrix_print with the right include

* Revert "create the keymap path if it doesn't exist"

This reverts commit af732776a5.
2020-12-28 20:06:07 -08:00
David Doan
5fde2d730c 1x4p1 (#11186)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-12-28 21:27:00 +01:00
2718 changed files with 79602 additions and 10013 deletions

View File

@@ -68,37 +68,8 @@ PATH_ELEMENTS := $(subst /, ,$(STARTING_DIR))
# Initialize the path elements list for further processing # Initialize the path elements list for further processing
$(eval $(call NEXT_PATH_ELEMENT)) $(eval $(call NEXT_PATH_ELEMENT))
# This function sets the KEYBOARD; KEYMAP and SUBPROJECT to the correct
# variables depending on which directory you stand in.
# It's really a very simple if else chain, if you squint enough,
# but the makefile syntax makes it very verbose.
# If we are in a subfolder of keyboards
#
# *** No longer needed **
#
# ifeq ($(CURRENT_PATH_ELEMENT),keyboards)
# $(eval $(call NEXT_PATH_ELEMENT))
# KEYBOARD := $(CURRENT_PATH_ELEMENT)
# $(eval $(call NEXT_PATH_ELEMENT))
# # If we are in a subfolder of keymaps, or in other words in a keymap
# # folder
# ifeq ($(CURRENT_PATH_ELEMENT),keymaps)
# $(eval $(call NEXT_PATH_ELEMENT))
# KEYMAP := $(CURRENT_PATH_ELEMENT)
# # else if we are not in the keyboard folder itself
# else ifneq ($(CURRENT_PATH_ELEMENT),)
# # the we can assume it's a subproject, as no other folders
# # should have make files in them
# SUBPROJECT := $(CURRENT_PATH_ELEMENT)
# $(eval $(call NEXT_PATH_ELEMENT))
# # if we are inside a keymap folder of a subproject
# ifeq ($(CURRENT_PATH_ELEMENT),keymaps)
# $(eval $(call NEXT_PATH_ELEMENT))
# KEYMAP := $(CURRENT_PATH_ELEMENT)
# endif
# endif
# endif
# Phony targets to enable a few simple make commands outside the main processing below.
.PHONY: list-keyboards .PHONY: list-keyboards
list-keyboards: list-keyboards:
util/list_keyboards.sh | sort -u | tr '\n' ' ' util/list_keyboards.sh | sort -u | tr '\n' ' '
@@ -131,7 +102,6 @@ endif
# Uncomment these for debugging # Uncomment these for debugging
# $(info Keyboard: $(KEYBOARD)) # $(info Keyboard: $(KEYBOARD))
# $(info Keymap: $(KEYMAP)) # $(info Keymap: $(KEYMAP))
# $(info Subproject: $(SUBPROJECT))
# Set the default goal depending on where we are running make from # Set the default goal depending on where we are running make from
@@ -189,7 +159,6 @@ endef
# A recursive helper function for finding the longest match # A recursive helper function for finding the longest match
# $1 The list to be checked # $1 The list to be checked
# It works by always removing the currently matched item from the list # It works by always removing the currently matched item from the list
# and call itself recursively, until a match is found
define TRY_TO_MATCH_RULE_FROM_LIST_HELPER2 define TRY_TO_MATCH_RULE_FROM_LIST_HELPER2
# Stop the recursion when the list is empty # Stop the recursion when the list is empty
ifneq ($1,) ifneq ($1,)
@@ -386,23 +355,6 @@ define PARSE_ALL_KEYBOARDS
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(shell util/list_keyboards.sh noci | sort -u))) $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(shell util/list_keyboards.sh noci | sort -u)))
endef endef
# $1 Subproject
# When entering this, the keyboard and subproject are known, so now we need
# to determine which keymaps are going to get compiled
# define PARSE_SUBPROJECT
# endef
# If we want to parse all subprojects, but the keyboard doesn't have any,
# then use defaultsp instead
# define PARSE_ALL_SUBPROJECTS
# ifeq ($$(SUBPROJECTS),)
# $$(eval $$(call PARSE_SUBPROJECT,defaultsp))
# else
# $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_SUBPROJECT,$$(SUBPROJECTS)))
# endif
# endef
# Prints a list of all known keymaps for the given keyboard # Prints a list of all known keymaps for the given keyboard
define LIST_ALL_KEYMAPS define LIST_ALL_KEYMAPS
COMMAND_true_LIST_KEYMAPS := \ COMMAND_true_LIST_KEYMAPS := \
@@ -544,12 +496,12 @@ if [ $$error_occurred -gt 0 ]; then $(HANDLE_ERROR); fi;
endef endef
# Let's match everything, we handle all the rule parsing ourselves # Catch everything and parse the command line ourselves.
.PHONY: % .PHONY: %
%: %:
# Check if we have the CMP tool installed # Check if we have the CMP tool installed
cmp $(ROOT_DIR)/Makefile $(ROOT_DIR)/Makefile >/dev/null 2>&1; if [ $$? -gt 0 ]; then printf "$(MSG_NO_CMP)"; exit 1; fi; cmp $(ROOT_DIR)/Makefile $(ROOT_DIR)/Makefile >/dev/null 2>&1; if [ $$? -gt 0 ]; then printf "$(MSG_NO_CMP)"; exit 1; fi;
# Ensure that bin/qmk works. This will be a failing check after the next develop merge on 2020 Aug 29. # Ensure that bin/qmk works. This will be a failing check after the next develop merge
if ! bin/qmk hello 1> /dev/null 2>&1; then printf "$(MSG_PYTHON_MISSING)"; fi if ! bin/qmk hello 1> /dev/null 2>&1; then printf "$(MSG_PYTHON_MISSING)"; fi
# Check if the submodules are dirty, and display a warning if they are # Check if the submodules are dirty, and display a warning if they are
ifndef SKIP_GIT ifndef SKIP_GIT
@@ -580,25 +532,6 @@ endif
$(foreach TEST,$(sort $(TESTS)),$(RUN_TEST)) $(foreach TEST,$(sort $(TESTS)),$(RUN_TEST))
if [ -f $(ERROR_FILE) ]; then printf "$(MSG_ERRORS)" & exit 1; fi; if [ -f $(ERROR_FILE) ]; then printf "$(MSG_ERRORS)" & exit 1; fi;
# These no longer work because of the colon system
# All should compile everything
# .PHONY: all
# all: all-keyboards test-all
# Define some shortcuts, mostly for compatibility with the old syntax
# .PHONY: all-keyboards
# all-keyboards: all\:all\:all
# .PHONY: all-keyboards-defaults
# all-keyboards-defaults: all\:default
# .PHONY: test
# test: test-all
# .PHONY: test-clean
# test-clean: test-all-clean
lib/%: lib/%:
git submodule sync $? git submodule sync $?
git submodule update --init $? git submodule update --init $?

View File

@@ -20,15 +20,19 @@
# Sets the bootloader defined in the keyboard's/keymap's rules.mk # Sets the bootloader defined in the keyboard's/keymap's rules.mk
# Current options: # Current options:
# #
# halfkay PJRC Teensy # AVR:
# caterina Pro Micro (Sparkfun/generic) # halfkay PJRC Teensy
# atmel-dfu Atmel factory DFU # caterina Pro Micro (Sparkfun/generic)
# lufa-dfu LUFA DFU # atmel-dfu Atmel factory DFU
# qmk-dfu QMK DFU (LUFA + blinkenlight) # lufa-dfu LUFA DFU
# bootloadHID HIDBootFlash compatible (ATmega32A) # qmk-dfu QMK DFU (LUFA + blinkenlight)
# USBasp USBaspLoader (ATmega328P) # bootloadHID HIDBootFlash compatible (ATmega32A)
# kiibohd Input:Club Kiibohd bootloader (only used on their boards) # USBasp USBaspLoader (ATmega328P)
# stm32duino STM32Duino (STM32F103x8) # ARM:
# kiibohd Input:Club Kiibohd bootloader (only used on their boards)
# stm32duino STM32Duino (STM32F103x8)
# stm32-dfu STM32 USB DFU in ROM
# apm32-dfu APM32 USB DFU in ROM
# #
# BOOTLOADER_SIZE can still be defined manually, but it's recommended # BOOTLOADER_SIZE can still be defined manually, but it's recommended
# you add any possible configuration to this list # you add any possible configuration to this list
@@ -95,6 +99,20 @@ ifdef BOOTLOADER_SIZE
OPT_DEFS += -DBOOTLOADER_SIZE=$(strip $(BOOTLOADER_SIZE)) OPT_DEFS += -DBOOTLOADER_SIZE=$(strip $(BOOTLOADER_SIZE))
endif endif
ifeq ($(strip $(BOOTLOADER)), stm32-dfu)
OPT_DEFS += -DBOOTLOADER_STM32_DFU
# Options to pass to dfu-util when flashing
DFU_ARGS ?= -d 0483:DF11 -a 0 -s 0x08000000:leave
DFU_SUFFIX_ARGS ?= -v 0483 -p DF11
endif
ifeq ($(strip $(BOOTLOADER)), apm32-dfu)
OPT_DEFS += -DBOOTLOADER_APM32_DFU
# Options to pass to dfu-util when flashing
DFU_ARGS ?= -d 314B:0106 -a 0 -s 0x08000000:leave
DFU_SUFFIX_ARGS ?= -v 314B -p 0106
endif
ifeq ($(strip $(BOOTLOADER)), kiibohd) ifeq ($(strip $(BOOTLOADER)), kiibohd)
OPT_DEFS += -DBOOTLOADER_KIIBOHD OPT_DEFS += -DBOOTLOADER_KIIBOHD
ifeq ($(strip $(MCU_ORIG)), MK20DX128) ifeq ($(strip $(MCU_ORIG)), MK20DX128)
@@ -104,10 +122,10 @@ ifeq ($(strip $(BOOTLOADER)), kiibohd)
MCU_LDSCRIPT = MK20DX256BLDR8 MCU_LDSCRIPT = MK20DX256BLDR8
endif endif
# Options to pass to dfu-util when flashing
DFU_ARGS = -d 1C11:B007 DFU_ARGS = -d 1C11:B007
DFU_SUFFIX_ARGS = -v 1C11 -p B007 DFU_SUFFIX_ARGS = -v 1C11 -p B007
endif endif
ifeq ($(strip $(BOOTLOADER)), stm32duino) ifeq ($(strip $(BOOTLOADER)), stm32duino)
OPT_DEFS += -DBOOTLOADER_STM32DUINO OPT_DEFS += -DBOOTLOADER_STM32DUINO
MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
@@ -115,6 +133,7 @@ ifeq ($(strip $(BOOTLOADER)), stm32duino)
# STM32F103 does NOT have an USB bootloader in ROM (only serial), so setting anything here does not make much sense # STM32F103 does NOT have an USB bootloader in ROM (only serial), so setting anything here does not make much sense
STM32_BOOTLOADER_ADDRESS = 0x80000000 STM32_BOOTLOADER_ADDRESS = 0x80000000
DFU_ARGS = -d 1EAF:0003 -a2 -R # Options to pass to dfu-util when flashing
DFU_ARGS = -d 1EAF:0003 -a 2 -R
DFU_SUFFIX_ARGS = -v 1EAF -p 0003 DFU_SUFFIX_ARGS = -v 1EAF -p 0003
endif endif

View File

@@ -283,6 +283,9 @@ ifneq ("$(wildcard $(USER_PATH)/config.h)","")
CONFIG_H += $(USER_PATH)/config.h CONFIG_H += $(USER_PATH)/config.h
endif endif
# Disable features that a keyboard doesn't support
-include disable_features.mk
# Object files directory # Object files directory
# To put object files in current directory, use a dot (.), do NOT make # To put object files in current directory, use a dot (.), do NOT make
# this an empty or blank macro! # this an empty or blank macro!
@@ -368,6 +371,7 @@ endif
build: elf cpfirmware build: elf cpfirmware
check-size: build check-size: build
check-md5: build
objs-size: build objs-size: build
include show_options.mk include show_options.mk

View File

@@ -24,6 +24,8 @@ QUANTUM_SRC += \
ifeq ($(strip $(DEBUG_MATRIX_SCAN_RATE_ENABLE)), yes) ifeq ($(strip $(DEBUG_MATRIX_SCAN_RATE_ENABLE)), yes)
OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE
CONSOLE_ENABLE = yes CONSOLE_ENABLE = yes
else ifeq ($(strip $(DEBUG_MATRIX_SCAN_RATE_ENABLE)), api)
OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE
endif endif
ifeq ($(strip $(API_SYSEX_ENABLE)), yes) ifeq ($(strip $(API_SYSEX_ENABLE)), yes)

31
disable_features.mk Normal file
View File

@@ -0,0 +1,31 @@
# Unconditionally disable features that a keyboard advertises it doesn't support
FEATURE_NAMES :=
FEATURE_NAMES += ADAFRUIT_BLE
FEATURE_NAMES += AUDIO
FEATURE_NAMES += BACKLIGHT
FEATURE_NAMES += BLUETOOTH
FEATURE_NAMES += DIP_SWITCH
FEATURE_NAMES += DYNAMIC_KEYMAP
FEATURE_NAMES += ENCODER
FEATURE_NAMES += HAPTIC
FEATURE_NAMES += HD44780
FEATURE_NAMES += IOS_DEVICE
FEATURE_NAMES += LCD_BACKLIGHT
FEATURE_NAMES += LCD
FEATURE_NAMES += OLED
FEATURE_NAMES += POINTING_DEVICE
FEATURE_NAMES += PRINTING
FEATURE_NAMES += PS2_MOUSE
FEATURE_NAMES += RGBLIGHT
FEATURE_NAMES += RGB_MATRIX
FEATURE_NAMES += SLEEP_LED
FEATURE_NAMES += SERIAL_LINK
FEATURE_NAMES += STENO
FEATURE_NAMES += SWAP_HANDS
FEATURE_NAMES += VISUALIZER
FEATURE_NAMES += WATCHDOG
FEATURE_NAMES += XT
$(foreach AFEATURE,$(FEATURE_NAMES),\
$(if $(filter $($(AFEATURE)_SUPPORTED),no),$(eval $(AFEATURE)_ENABLE=no)))

View File

@@ -1,26 +1,20 @@
# Quantum Mechanical Keyboard Firmware # Quantum Mechanical Keyboard Firmware
[![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags)
[![Build Status](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware)
[![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh)
[![Docs Status](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm)
[![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly)
[![GitHub forks](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/)
## What is QMK Firmware? ## What is QMK Firmware?
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. 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 ## Get Started
Totally new to QMK? There are two ways to get started: <div class="flex-container">
* Basic: [QMK Configurator](https://config.qmk.fm) ?> **Basic** [QMK Configurator](newbs_building_firmware_configurator.md) <br>
* Just select your keyboard from the dropdown and program your keyboard. User friendly graphical interfaces, no programming knowledge required.
* 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). ?> **Advanced** [Use The Source](newbs.md) <br>
* Advanced: [Use The Source](newbs.md) More powerful, but harder to use.
* More powerful, but harder to use
</div>
## Make It Yours ## Make It Yours

View File

@@ -3,7 +3,6 @@
* [Setup](newbs_getting_started.md) * [Setup](newbs_getting_started.md)
* [Building Your First Firmware](newbs_building_firmware.md) * [Building Your First Firmware](newbs_building_firmware.md)
* [Flashing Firmware](newbs_flashing.md) * [Flashing Firmware](newbs_flashing.md)
* [Testing and Debugging](newbs_testing_debugging.md)
* [Getting Help/Support](support.md) * [Getting Help/Support](support.md)
* [Other Resources](newbs_learn_more_resources.md) * [Other Resources](newbs_learn_more_resources.md)
* [Syllabus](syllabus.md) * [Syllabus](syllabus.md)
@@ -11,7 +10,8 @@
* FAQs * FAQs
* [General FAQ](faq_general.md) * [General FAQ](faq_general.md)
* [Build/Compile QMK](faq_build.md) * [Build/Compile QMK](faq_build.md)
* [Debugging/Troubleshooting QMK](faq_debug.md) * [Troubleshooting QMK](faq_misc.md)
* [Debugging QMK](faq_debug.md)
* [Keymap FAQ](faq_keymap.md) * [Keymap FAQ](faq_keymap.md)
* [Glossary](reference_glossary.md) * [Glossary](reference_glossary.md)

View File

@@ -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`. 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`.
``` ```
$ curl -H "Content-Type: application/json" -X POST -d "$(< json_data)" http://api.qmk.fm/v1/compile $ curl -H "Content-Type: application/json" -X POST -d "$(< json_data)" https://api.qmk.fm/v1/compile
{ {
"enqueued": true, "enqueued": true,
"job_id": "ea1514b3-bdfc-4a7b-9b5c-08752684f7f6" "job_id": "ea1514b3-bdfc-4a7b-9b5c-08752684f7f6"
@@ -40,7 +40,7 @@ $ curl -H "Content-Type: application/json" -X POST -d "$(< json_data)" http://ap
After submitting your keymap you can check the status using a simple HTTP GET call: After submitting your keymap you can check the status using a simple HTTP GET call:
``` ```
$ curl http://api.qmk.fm/v1/compile/ea1514b3-bdfc-4a7b-9b5c-08752684f7f6 $ curl https://api.qmk.fm/v1/compile/ea1514b3-bdfc-4a7b-9b5c-08752684f7f6
{ {
"created_at": "Sat, 19 Aug 2017 21:39:12 GMT", "created_at": "Sat, 19 Aug 2017 21:39:12 GMT",
"enqueued_at": "Sat, 19 Aug 2017 21:39:12 GMT", "enqueued_at": "Sat, 19 Aug 2017 21:39:12 GMT",

View File

@@ -1,6 +1,6 @@
# QMK API # QMK API
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.
## App Developers ## App Developers

View File

@@ -11,13 +11,13 @@ This command is directory aware. It will automatically fill in KEYBOARD and/or K
**Usage for Configurator Exports**: **Usage for Configurator Exports**:
``` ```
qmk compile <configuratorExport.json> qmk compile [-c] <configuratorExport.json>
``` ```
**Usage for Keymaps**: **Usage for Keymaps**:
``` ```
qmk compile -kb <keyboard_name> -km <keymap_name> qmk compile [-c] [-e <var>=<value>] -kb <keyboard_name> -km <keymap_name>
``` ```
**Usage in Keyboard Directory**: **Usage in Keyboard Directory**:
@@ -82,13 +82,13 @@ This command is directory aware. It will automatically fill in KEYBOARD and/or K
**Usage for Configurator Exports**: **Usage for Configurator Exports**:
``` ```
qmk flash <configuratorExport.json> -bl <bootloader> qmk flash [-bl <bootloader>] [-c] [-e <var>=<value>] <configuratorExport.json>
``` ```
**Usage for Keymaps**: **Usage for Keymaps**:
``` ```
qmk flash -kb <keyboard_name> -km <keymap_name> -bl <bootloader> qmk flash -kb <keyboard_name> -km <keymap_name> [-bl <bootloader>] [-c] [-e <var>=<value>]
``` ```
**Listing the Bootloaders** **Listing the Bootloaders**

View File

@@ -49,7 +49,7 @@ int foo(void) {
[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. [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. 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.

View File

@@ -18,7 +18,7 @@ Certain MCUs which do not have native USB will use [V-USB](https://www.obdev.at/
## ARM ## ARM
You can also use any ARM chip with USB that [ChibiOS](http://www.chibios.org) supports. Most have plenty of flash. Known to work are: You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) supports. Most have plenty of flash. Known to work are:
### STMicroelectronics (STM32) ### STMicroelectronics (STM32)

View File

@@ -23,7 +23,7 @@ Please keep these things in mind:
# Project Overview # 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. --> <!-- FIXME: We should include a list of resources for learning C here. -->

View File

@@ -9,7 +9,7 @@
## Was ist QMK Firmware? ## Was ist QMK Firmware?
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.
## Bezugsquelle für QMK ## Bezugsquelle für QMK

View File

@@ -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. 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). ?> 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. 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 * Schließe alle offenen MSYS2 Fenster und öffne ein neues MSYS2 MinGW 64-bit Terminal
* Installiere Git mit dem Kommando: `pacman -S git` * Installiere Git mit dem Kommando: `pacman -S git`

View File

@@ -10,8 +10,8 @@ Anmerkung: Diese Programme werden weder von QMK bereitgestellt oder gutgeheißen
* [Switch Hitter](https://elitekeyboards.com/switchhitter.php) (Nur für Windows) * [Switch Hitter](https://elitekeyboards.com/switchhitter.php) (Nur für Windows)
* [Keyboard Viewer](https://www.imore.com/how-use-keyboard-viewer-your-mac) (Nur für Mac) * [Keyboard Viewer](https://www.imore.com/how-use-keyboard-viewer-your-mac) (Nur für Mac)
* [Keyboard Tester](http://www.keyboardtester.com) (Web basiert) * [Keyboard Tester](https://www.keyboardtester.com) (Web basiert)
* [Keyboard Checker](http://keyboardchecker.com) (Web basiert) * [Keyboard Checker](https://keyboardchecker.com) (Web basiert)
## Debuggen ## Debuggen

View File

@@ -4,12 +4,12 @@ This page documents the templates you should use when submitting new Keymaps and
## Keymap `readme.md` Template :id=keyboard-readmemd-template ## Keymap `readme.md` Template :id=keyboard-readmemd-template
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. Below the image you should write a short description to help people understand your keymap.
``` ```
![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png) ![Clueboard Layout Image](https://i.imgur.com/7Capi8W.png)
# Default Clueboard Layout # Default Clueboard Layout
@@ -24,9 +24,9 @@ the Ctrl, Alt, or GUI modifiers are held down.
``` ```
# Planck # Planck
![Planck](http://i.imgur.com/q2M3uEU.jpg) ![Planck](https://i.imgur.com/q2M3uEU.jpg)
A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/) A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](https://qmk.fm/planck/)
* Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert) * Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
* Hardware Supported: Planck PCB rev1, rev2, rev3, rev4, Teensy 2.0 * Hardware Supported: Planck PCB rev1, rev2, rev3, rev4, Teensy 2.0

View File

@@ -14,16 +14,11 @@ Some keyboards may have specific instructions for entering the bootloader. For e
To put a device in bootloader mode with USBaspLoader, tap the `RESET` button while holding down the `BOOT` button. To put a device in bootloader mode with USBaspLoader, tap the `RESET` button while holding down the `BOOT` button.
Alternatively, hold `BOOT` while inserting the USB cable. Alternatively, hold `BOOT` while inserting the USB cable.
Zadig will automatically detect the bootloader device. You may sometimes need to check **Options → List All Devices**. Zadig should automatically detect the bootloader device, but you may sometimes need to check **Options → List All Devices** and select the device from the dropdown instead.
- For keyboards with Atmel AVR MCUs, the bootloader will be named something similar to `ATm32U4DFU`, and have a Vendor ID of `03EB`.
- USBasp bootloaders will appear as `USBasp`, with a VID/PID of `16C0:05DC`.
- AVR keyboards flashed with the QMK-DFU bootloader will be named `<keyboard name> Bootloader` and will also have the VID `03EB`.
- For most ARM keyboards, it will be called `STM32 BOOTLOADER`, and have a VID/PID of `0483:DF11`.
!> If Zadig lists one or more devices with the `HidUsb` driver, your keyboard is probably not in bootloader mode. The arrow will be colored orange and you will be asked to confirm modifying a system driver. **Do not** proceed if this is the case! !> If Zadig lists one or more devices with the `HidUsb` driver, your keyboard is probably not in bootloader mode. The arrow will be colored orange and you will be asked to confirm modifying a system driver. **Do not** proceed if this is the case!
If the arrow appears green, select the driver, and click **Install Driver**. The `libusb-win32` driver will usually work for AVR, and `WinUSB` for ARM, but if you still cannot flash the board, try installing a different driver from the list. USBAspLoader devices must use the `libusbK` driver. If the arrow appears green, select the driver, and click **Install Driver**. See the [list of known bootloaders](#list-of-known-bootloaders) for the correct driver to install.
![Zadig with a bootloader driver correctly installed](https://i.imgur.com/b8VgXzx.png) ![Zadig with a bootloader driver correctly installed](https://i.imgur.com/b8VgXzx.png)
@@ -43,6 +38,40 @@ Right-click it and hit **Uninstall device**. Make sure to tick **Delete the driv
![The Device Uninstall dialog, with the "delete driver" checkbox ticked](https://i.imgur.com/aEs2RuA.png) ![The Device Uninstall dialog, with the "delete driver" checkbox ticked](https://i.imgur.com/aEs2RuA.png)
Click **Action → Scan for hardware changes**. At this point, you should be able to type again. Double check in Zadig that the keyboard device(s) are using the `HidUsb` driver. If so, you're all done, and your board should be functional again! Click **Action → Scan for hardware changes**. At this point, you should be able to type again. Double check in Zadig that the keyboard device(s) are using the `HidUsb` driver. If so, you're all done, and your board should be functional again! Otherwise, repeat the process until Zadig reports the correct driver.
?> A full reboot of your computer may sometimes be necessary at this point, to get Windows to pick up the new driver. ?> A full reboot of your computer may sometimes be necessary at this point, to get Windows to pick up the new driver.
## List of Known Bootloaders
This is a list of known bootloader devices and their USB vendor and product IDs, as well as the correct driver to assign for flashing with QMK. Note that the usbser and HidUsb drivers are built in to Windows, and cannot be assigned with Zadig - if your device has an incorrect driver, you must use the Device Manager to uninstall it as described in the previous section.
The device name here is the name that appears in Zadig, and may not be what the Device Manager or QMK Toolbox displays.
|Bootloader |Device Name |VID/PID |Driver |
|-------------|------------------------------|--------------|-------|
|`atmel-dfu` |ATmega16u2 DFU |`03EB:2FEF` |libusb0|
|`atmel-dfu` |ATmega32U2 DFU |`03EB:2FF0` |libusb0|
|`atmel-dfu` |ATm16U4 DFU V1.0.2 |`03EB:2FF3` |libusb0|
|`atmel-dfu` |ATm32U4DFU |`03EB:2FF4` |libusb0|
|`atmel-dfu` |*none* (AT90USB64) |`03EB:2FF9` |libusb0|
|`atmel-dfu` |AT90USB128 DFU |`03EB:2FFB` |libusb0|
|`qmk-dfu` |(keyboard name) Bootloader |As `atmel-dfu`|libusb0|
|`halfkay` |*none* |`16C0:0478` |HidUsb |
|`caterina` |Pro Micro 3.3V |`1B4F:9203` |usbser |
|`caterina` |Pro Micro 5V |`1B4F:9205` |usbser |
|`caterina` |LilyPadUSB |`1B4F:9207` |usbser |
|`caterina` |Pololu A-Star 32U4 Bootloader |`1FFB:0101` |usbser |
|`caterina` |Arduino Leonardo |`2341:0036` |usbser |
|`caterina` |Arduino Micro |`2341:0037` |usbser |
|`caterina` |Adafruit Feather 32u4 |`239A:000C` |usbser |
|`caterina` |Adafruit ItsyBitsy 32u4 3V |`239A:000D` |usbser |
|`caterina` |Adafruit ItsyBitsy 32u4 5V |`239A:000E` |usbser |
|`caterina` |Arduino Leonardo |`2A03:0036` |usbser |
|`caterina` |Arduino Micro |`2A03:0037` |usbser |
|`bootloadHID`|HIDBoot |`16C0:05DF` |HidUsb |
|`USBasp` |USBasp |`16C0:05DC` |libusbK|
|`apm32-dfu` |APM32 DFU ISP Mode |`314B:0106` |WinUSB |
|`stm32-dfu` |STM32 BOOTLOADER |`0483:DF11` |WinUSB |
|`kiibohd` |Kiibohd DFU Bootloader |`1C11:B007` |WinUSB |
|`stm32duino` |Maple 003 |`1EAF:0003` |WinUSB |

View File

@@ -9,7 +9,7 @@
## ¿Qué es el firmware QMK? ## ¿Qué es el firmware QMK?
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 ## Cómo conseguirlo
@@ -29,4 +29,4 @@ Este ejemplo compilaría la revisión `rev4` del teclado `planck` con el keymap
## Cómo personalizar ## 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).

View File

@@ -1,6 +1,6 @@
# Hardware # Hardware
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) * [Pautas de teclados](hardware_keyboard_guidelines.md)
* [Procesadores AVR](hardware_avr.md) * [Procesadores AVR](hardware_avr.md)

View File

@@ -32,7 +32,7 @@ Esto creará todos los archivos necesarios para tu nuevo teclado, y rellenará l
## `readme.md` ## `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.
## `<keyboard>.c` ## `<keyboard>.c`

View File

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

View File

@@ -2,7 +2,7 @@
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. 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.
## Visión general ## Visión general

View File

@@ -43,7 +43,7 @@ instale el resto.
Necesitarás instalar MSYS2 y Git. Necesitarás instalar MSYS2 y Git.
* Sigue las instrucciones de instalación en la [página de MSYS2](http://www.msys2.org). * Sigue las instrucciones de instalación en la [página de MSYS2](https://www.msys2.org).
* Cierra las terminales abiertas de MSYS2 y abre una nueva termial de MSYS2 MinGW 64-bit. * Cierra las terminales abiertas de MSYS2 y abre una nueva termial de MSYS2 MinGW 64-bit.
* Instala Git ejecutando este comando: `pacman -S git`. * Instala Git ejecutando este comando: `pacman -S git`.

View File

@@ -10,8 +10,8 @@ Nota: Estos programas no los provée ni están relacionados con QMK.
* [Switch Hitter](https://elitekeyboards.com/switchhitter.php) (Sólo Windows) * [Switch Hitter](https://elitekeyboards.com/switchhitter.php) (Sólo Windows)
* [Keyboard Viewer](https://www.imore.com/how-use-keyboard-viewer-your-mac) (Sólo Mac) * [Keyboard Viewer](https://www.imore.com/how-use-keyboard-viewer-your-mac) (Sólo Mac)
* [Keyboard Tester](http://www.keyboardtester.com) (Aplicación web) * [Keyboard Tester](https://www.keyboardtester.com) (Aplicación web)
* [Keyboard Checker](http://keyboardchecker.com) (Aplicación web) * [Keyboard Checker](https://keyboardchecker.com) (Aplicación web)
## Depurando ## Depurando

View File

@@ -17,7 +17,7 @@ or just:
Note that running `make` with `sudo` is generally ***not*** a good idea, and you should use one of the former methods, if possible. 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/`. 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/`.
@@ -57,8 +57,8 @@ Also see this.
https://github.com/tmk/tmk_keyboard/issues/150 https://github.com/tmk/tmk_keyboard/issues/150
You can buy a really unique VID:PID here. I don't think you need this for personal use. You can buy a really unique VID:PID here. I don't think you need this for personal use.
- http://www.obdev.at/products/vusb/license.html - https://www.obdev.at/products/vusb/license.html
- http://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1 - https://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1
### I just flashed my keyboard and it does nothing/keypresses don't register - it's also ARM (rev6 planck, clueboard 60, hs60v2, etc...) (Feb 2019) ### I just flashed my keyboard and it does nothing/keypresses don't register - it's also ARM (rev6 planck, clueboard 60, hs60v2, etc...) (Feb 2019)
Due to how EEPROM works on ARM based chips, saved settings may no longer be valid. This affects the default layers, and *may*, under certain circumstances we are still figuring out, make the keyboard unusable. Resetting the EEPROM will correct this. Due to how EEPROM works on ARM based chips, saved settings may no longer be valid. This affects the default layers, and *may*, under certain circumstances we are still figuring out, make the keyboard unusable. Resetting the EEPROM will correct this.

View File

@@ -2,7 +2,94 @@
This page details various common questions people have about troubleshooting their keyboards. 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
void keyboard_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`
```c
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// If console is enabled, it will print the matrix position and status of each key pressed
#ifdef CONSOLE_ENABLE
uprintf("KL: kc: 0x%04X, col: %u, row: %u, pressed: %b, time: %u, interrupt: %b, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count);
#endif
return true;
}
```
Example output
```text
Waiting for device:.......
Listening:
KL: kc: 169, col: 0, row: 0, pressed: 1
KL: kc: 169, col: 0, row: 0, pressed: 0
KL: kc: 174, col: 1, row: 0, pressed: 1
KL: kc: 174, col: 1, row: 0, pressed: 0
KL: kc: 172, col: 2, row: 0, pressed: 1
KL: kc: 172, col: 2, row: 0, pressed: 0
```
### How long did it take to scan for a keypress?
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 ## `hid_listen` Can't Recognize Device
When debug console of your device is not ready you will see like this: 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:......... 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:......................... 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] 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. You may need privileges to access the device an OS like Linux. Try `sudo hid_listen`.
- try `sudo hid_listen`
## Can't Get Message on Console ## Can't Get Message on Console
Check: Check:
- *hid_listen* finds your device. See above. - *hid_listen* finds your device. See above.
- Enable debug with pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands). - Enable debug by 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) - Set `debug_enable=true`. See [Debugging](#debugging)
- try using 'print' function instead of debug print. See **common/print.h**. - 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). - 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,
MOUSEKEY_ENABLE, EXTRAKEY_ENABLE, CONSOLE_ENABLE, API_SYSEX_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.
https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switch
## TrackPoint Needs Reset Circuit (PS/2 Mouse Support)
Without reset circuit you will have inconsistent result due to improper initialize of the hardware. See circuit schematic of TPM754.
- http://geekhack.org/index.php?topic=50176.msg1127447#msg1127447
- http://www.mikrocontroller.net/attachment/52583/tpm754.pdf
## Can't Read Column of Matrix Beyond 16
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`.
http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279
## 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.
- http://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf
- http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf
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.
## Mac Compatibility
### OS X 10.11 and Hub
https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034
## 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.
https://github.com/tmk/tmk_keyboard/issues/266
https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778

View File

@@ -34,7 +34,7 @@ Additionally, you can find additional `git` and GitHub related links [here](newb
Awesome! Open up a Pull Request for it. We'll review the code, and merge it! Awesome! Open up a Pull Request for it. We'll review the code, and merge it!
### What if I want to do brand it with `QMK`? ### What if I want to brand it with `QMK`?
That's amazing! We would love to assist you with that! That's amazing! We would love to assist you with that!

View File

@@ -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: 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 -->
![Keyboard Layout Image](https://i.imgur.com/5wsh5wM.png) ![Keyboard Layout Image](https://i.imgur.com/5wsh5wM.png)
## How Can I Make Custom Names For Complex Keycodes? ## 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'. 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 See [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) and
* http://en.wikipedia.org/wiki/Magic_SysRq_key * https://en.wikipedia.org/wiki/Magic_SysRq_key
* http://en.wikipedia.org/wiki/System_request * https://en.wikipedia.org/wiki/System_request
## Power Keys Aren't Working ## 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. 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.
* https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#31-momentary-switching * https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#31-momentary-switching
* http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 * https://geekhack.org/index.php?topic=57008.msg1492604#msg1492604
* https://github.com/tmk/tmk_keyboard/issues/248 * https://github.com/tmk/tmk_keyboard/issues/248
## Mechanical Lock Switch Support ## Mechanical Lock Switch Support
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`:
``` ```
#define LOCKING_SUPPORT_ENABLE #define LOCKING_SUPPORT_ENABLE

117
docs/faq_misc.md Normal file
View File

@@ -0,0 +1,117 @@
# Miscellaneous FAQ
## How do I test my keyboard? :id=testing
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,
MOUSEKEY_ENABLE, EXTRAKEY_ENABLE, CONSOLE_ENABLE, API_SYSEX_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.
https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switch
## TrackPoint Needs Reset Circuit (PS/2 Mouse Support)
Without reset circuit you will have inconsistent result due to improper initialization of the hardware. See circuit schematic of TPM754:
- https://geekhack.org/index.php?topic=50176.msg1127447#msg1127447
- https://www.mikrocontroller.net/attachment/52583/tpm754.pdf
## Can't Read Column of Matrix Beyond 16
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`.
https://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279
## 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.
- https://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf
- https://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf
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.
More info:
- https://github.com/tmk/tmk_keyboard/issues/266
- https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778

View File

@@ -56,7 +56,7 @@ Define these arrays listing all the LEDs in your `<keyboard>.c`:
.... ....
} }
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 ## Keycodes

View File

@@ -209,7 +209,7 @@ SEND_STRING(".."SS_TAP(X_END));
There are some functions you may find useful in macro-writing. Keep in mind that while you can write some fairly advanced code within a macro, if your functionality gets too complex you may want to define a custom keycode instead. Macros are meant to be simple. There are some functions you may find useful in macro-writing. Keep in mind that while you can write some fairly advanced code within a macro, if your functionality gets too complex you may want to define a custom keycode instead. Macros are meant to be simple.
?> You can also use the functions described in [Useful function](ref_functions.md) for additional functionality. For example `reset_keyboard()` allows you to reset the keyboard as part of a macro. ?> You can also use the functions described in [Useful functions](ref_functions.md) for additional functionality. For example `reset_keyboard()` allows you to reset the keyboard as part of a macro.
### `record->event.pressed` ### `record->event.pressed`

View File

@@ -27,6 +27,10 @@ Once you have made the necessary changes to the mouse report, you need to send i
When the mouse report is sent, the x, y, v, and h values are set to 0 (this is done in `pointing_device_send()`, which can be overridden to avoid this behavior). This way, button states persist, but movement will only occur once. For further customization, both `pointing_device_init` and `pointing_device_task` can be overridden. When the mouse report is sent, the x, y, v, and h values are set to 0 (this is done in `pointing_device_send()`, which can be overridden to avoid this behavior). This way, button states persist, but movement will only occur once. For further customization, both `pointing_device_init` and `pointing_device_task` can be overridden.
Additionally, by default, `pointing_device_send()` will only send a report when the report has actually changed. This prevents it from continuously sending mouse reports, which will keep the host system awake. This behavior can be changed by creating your own `pointing_device_send()` function.
Also, you use the `has_mouse_report_changed(new, old)` function to check to see if the report has changed.
In the following example, a custom key is used to click the mouse and scroll 127 units vertically and horizontally, then undo all of that when released - because that's a totally useful function. Listen, this is an example: In the following example, a custom key is used to click the mouse and scroll 127 units vertically and horizontally, then undo all of that when released - because that's a totally useful function. Listen, this is an example:
```c ```c

View File

@@ -206,7 +206,7 @@ It's possible to enable a "scroll button/s" that when pressed will cause the mou
To enable the feature, you must set a scroll button mask as follows: To enable the feature, you must set a scroll button mask as follows:
```c ```c
#define PS2_MOUSE_SCROLL_BTN_MASK (1<<PS2_MOUSE_BUTTON_MIDDLE) /* Default */ #define PS2_MOUSE_SCROLL_BTN_MASK (1<<PS2_MOUSE_BTN_MIDDLE) /* Default */
``` ```
To disable the scroll button feature: To disable the scroll button feature:

View File

@@ -53,7 +53,7 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
} }
``` ```
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.h`. The `driver` is the index of the driver you defined in your `config.h` (`0` or `1` right now). 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.h`. The `driver` is the index of the driver you defined in your `config.h` (`0` or `1` right now).
--- ---
### IS31FL3733/IS31FL3737 :id=is31fl3733is31fl3737 ### IS31FL3733/IS31FL3737 :id=is31fl3733is31fl3737
@@ -105,7 +105,7 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
} }
``` ```
Where `X_Y` is the location of the LED in the matrix defined by [the datasheet](http://www.issi.com/WW/pdf/31FL3733.pdf) and the header file `drivers/issi/is31fl3733.h`. The `driver` is the index of the driver you defined in your `config.h` (Only `0` right now). Where `X_Y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3733.pdf) and the header file `drivers/issi/is31fl3733.h`. The `driver` is the index of the driver you defined in your `config.h` (Only `0` right now).
--- ---
@@ -296,6 +296,19 @@ You can disable a single effect by defining `DISABLE_[EFFECT_NAME]` in your `con
|`#define DISABLE_RGB_MATRIX_SOLID_SPLASH` |Disables `RGB_MATRIX_SOLID_SPLASH` | |`#define DISABLE_RGB_MATRIX_SOLID_SPLASH` |Disables `RGB_MATRIX_SOLID_SPLASH` |
|`#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH` |Disables `RGB_MATRIX_SOLID_MULTISPLASH` | |`#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH` |Disables `RGB_MATRIX_SOLID_MULTISPLASH` |
### RGB Matrix Effect Typing Heatmap :id=rgb-matrix-effect-typing-heatmap
This effect will color the RGB matrix according to a heatmap of recently pressed
keys. Whenever a key is pressed its "temperature" increases as well as that of
its neighboring keys. The temperature of each key is then decreased
automatically every 25 milliseconds by default.
In order to change the delay of temperature decrease define
`RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS`:
```c
#define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50
```
## Custom RGB Matrix Effects :id=custom-rgb-matrix-effects ## Custom RGB Matrix Effects :id=custom-rgb-matrix-effects

View File

@@ -187,6 +187,8 @@ const uint8_t RGBLED_GRADIENT_RANGES[] PROGMEM = {255, 170, 127, 85, 64};
## Lighting Layers ## Lighting Layers
?> **Note:** Lighting Layers is an RGB Light feature, it will not work for RGB Matrix. See [RGB Matrix Indicators](feature_rgb_matrix.md?indicators) for details on how to do so.
By including `#define RGBLIGHT_LAYERS` in your `config.h` file you can enable lighting layers. These make By including `#define RGBLIGHT_LAYERS` in your `config.h` file you can enable lighting layers. These make
it easy to use your underglow LEDs as status indicators to show which keyboard layer is currently active, or the state of caps lock, all without disrupting any animations. [Here's a video](https://youtu.be/uLGE1epbmdY) showing an example of what you can do. it easy to use your underglow LEDs as status indicators to show which keyboard layer is currently active, or the state of caps lock, all without disrupting any animations. [Here's a video](https://youtu.be/uLGE1epbmdY) showing an example of what you can do.
@@ -194,7 +196,7 @@ it easy to use your underglow LEDs as status indicators to show which keyboard l
By default, 8 layers are possible. This can be expanded to as many as 32 by overriding the definition of `RGBLIGHT_MAX_LAYERS` in `config.h` (e.g. `#define RGBLIGHT_MAX_LAYERS 32`). Please note, if you use a split keyboard, you will need to flash both sides of the split after changing this. Also, increasing the maximum will increase the firmware size, and will slow sync on split keyboards. By default, 8 layers are possible. This can be expanded to as many as 32 by overriding the definition of `RGBLIGHT_MAX_LAYERS` in `config.h` (e.g. `#define RGBLIGHT_MAX_LAYERS 32`). Please note, if you use a split keyboard, you will need to flash both sides of the split after changing this. Also, increasing the maximum will increase the firmware size, and will slow sync on split keyboards.
To define a layer, we modify `keymap.c` to list out LED ranges and the colors we want to overlay on them using an array of `rgblight_segment_t` using the `RGBLIGHT_LAYER_SEGMENTS` macro. We can define multiple layers and enable/disable them independently: To define a layer, we modify `keymap.c` to list the LED ranges and the colors we want to overlay on them using an array of `rgblight_segment_t` using the `RGBLIGHT_LAYER_SEGMENTS` macro. We can define multiple layers and enable/disable them independently:
```c ```c
// Light LEDs 6 to 9 and 12 to 15 red when caps lock is active. Hard to ignore! // Light LEDs 6 to 9 and 12 to 15 red when caps lock is active. Hard to ignore!
@@ -210,6 +212,10 @@ const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS( const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{11, 2, HSV_PURPLE} {11, 2, HSV_PURPLE}
); );
// Light LEDs 13 & 14 in green when keyboard layer 3 is active
const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{13, 2, HSV_GREEN}
);
// etc.. // etc..
``` ```
@@ -220,7 +226,8 @@ We combine these layers into an array using the `RGBLIGHT_LAYERS_LIST` macro, an
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
my_capslock_layer, my_capslock_layer,
my_layer1_layer, // Overrides caps lock layer my_layer1_layer, // Overrides caps lock layer
my_layer2_layer // Overrides other layers my_layer2_layer, // Overrides other layers
my_layer3_layer // Overrides other layers
); );
void keyboard_post_init_user(void) { void keyboard_post_init_user(void) {
@@ -236,17 +243,21 @@ Everything above just configured the definition of each lighting layer.
We can now enable and disable the lighting layers whenever the state of the keyboard changes: We can now enable and disable the lighting layers whenever the state of the keyboard changes:
```c ```c
layer_state_t layer_state_set_user(layer_state_t state) {
// Both layers will light up if both kb layers are active
rgblight_set_layer_state(1, layer_state_cmp(state, 1));
rgblight_set_layer_state(2, layer_state_cmp(state, 2));
return state;
}
bool led_update_user(led_t led_state) { bool led_update_user(led_t led_state) {
rgblight_set_layer_state(0, led_state.caps_lock); rgblight_set_layer_state(0, led_state.caps_lock);
return true; return true;
} }
layer_state_t default_layer_state_set_user(layer_state_t state) {
rgblight_set_layer_state(1, layer_state_cmp(state, _DVORAK));
return state;
}
layer_state_t layer_state_set_user(layer_state_t state) {
rgblight_set_layer_state(2, layer_state_cmp(state, _FN));
rgblight_set_layer_state(3, layer_state_cmp(state, _ADJUST));
return state;
}
``` ```
### Lighting layer blink :id=lighting-layer-blink ### Lighting layer blink :id=lighting-layer-blink
@@ -350,6 +361,7 @@ rgblight_sethsv(HSV_GREEN, 2); // led 2
|`rgblight_step_noeeprom()` |Change the mode to the next RGB animation in the list of enabled RGB animations (not written to EEPROM) | |`rgblight_step_noeeprom()` |Change the mode to the next RGB animation in the list of enabled RGB animations (not written to EEPROM) |
|`rgblight_step_reverse()` |Change the mode to the previous RGB animation in the list of enabled RGB animations | |`rgblight_step_reverse()` |Change the mode to the previous RGB animation in the list of enabled RGB animations |
|`rgblight_step_reverse_noeeprom()` |Change the mode to the previous RGB animation in the list of enabled RGB animations (not written to EEPROM) | |`rgblight_step_reverse_noeeprom()` |Change the mode to the previous RGB animation in the list of enabled RGB animations (not written to EEPROM) |
|`rgblight_reload_from_eeprom()` |Reload the effect configuration (enabled, mode and color) from EEPROM |
#### effects mode disable/enable #### effects mode disable/enable
|Function |Description | |Function |Description |
@@ -368,14 +380,14 @@ rgblight_sethsv(HSV_GREEN, 2); // led 2
|`rgblight_increase_hue_noeeprom()` |Increase the hue for effect range LEDs. This wraps around at maximum hue (not written to EEPROM) | |`rgblight_increase_hue_noeeprom()` |Increase the hue for effect range LEDs. This wraps around at maximum hue (not written to EEPROM) |
|`rgblight_decrease_hue()` |Decrease the hue for effect range LEDs. This wraps around at minimum hue | |`rgblight_decrease_hue()` |Decrease the hue for effect range LEDs. This wraps around at minimum hue |
|`rgblight_decrease_hue_noeeprom()` |Decrease the hue for effect range LEDs. This wraps around at minimum hue (not written to EEPROM) | |`rgblight_decrease_hue_noeeprom()` |Decrease the hue for effect range LEDs. This wraps around at minimum hue (not written to EEPROM) |
|`rgblight_increase_sat()` |Increase the saturation for effect range LEDs. This wraps around at maximum saturation | |`rgblight_increase_sat()` |Increase the saturation for effect range LEDs. This stops at maximum saturation |
|`rgblight_increase_sat_noeeprom()` |Increase the saturation for effect range LEDs. This wraps around at maximum saturation (not written to EEPROM) | |`rgblight_increase_sat_noeeprom()` |Increase the saturation for effect range LEDs. This stops at maximum saturation (not written to EEPROM) |
|`rgblight_decrease_sat()` |Decrease the saturation for effect range LEDs. This wraps around at minimum saturation | |`rgblight_decrease_sat()` |Decrease the saturation for effect range LEDs. This stops at minimum saturation |
|`rgblight_decrease_sat_noeeprom()` |Decrease the saturation for effect range LEDs. This wraps around at minimum saturation (not written to EEPROM) | |`rgblight_decrease_sat_noeeprom()` |Decrease the saturation for effect range LEDs. This stops at minimum saturation (not written to EEPROM) |
|`rgblight_increase_val()` |Increase the value for effect range LEDs. This wraps around at maximum value | |`rgblight_increase_val()` |Increase the value for effect range LEDs. This stops at maximum value |
|`rgblight_increase_val_noeeprom()` |Increase the value for effect range LEDs. This wraps around at maximum value (not written to EEPROM) | |`rgblight_increase_val_noeeprom()` |Increase the value for effect range LEDs. This stops at maximum value (not written to EEPROM) |
|`rgblight_decrease_val()` |Decrease the value for effect range LEDs. This wraps around at minimum value | |`rgblight_decrease_val()` |Decrease the value for effect range LEDs. This stops at minimum value |
|`rgblight_decrease_val_noeeprom()` |Decrease the value for effect range LEDs. This wraps around at minimum value (not written to EEPROM) | |`rgblight_decrease_val_noeeprom()` |Decrease the value for effect range LEDs. This stops at minimum value (not written to EEPROM) |
|`rgblight_sethsv(h, s, v)` |Set effect range LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 | |`rgblight_sethsv(h, s, v)` |Set effect range LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 |
|`rgblight_sethsv_noeeprom(h, s, v)` |Set effect range LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 (not written to EEPROM) | |`rgblight_sethsv_noeeprom(h, s, v)` |Set effect range LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 (not written to EEPROM) |

View File

@@ -1,6 +1,6 @@
# Space Cadet: The Future, Built In # Space Cadet: The Future, Built In
Steve Losh described the [Space Cadet Shift](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/) quite well. Essentially, when you tap Left Shift on its own, you get an opening parenthesis; tap Right Shift on its own and you get the closing one. When held, the Shift keys function as normal. Yes, it's as cool as it sounds, and now even cooler supporting Control and Alt as well! Steve Losh described the [Space Cadet Shift](https://stevelosh.com/blog/2012/10/a-modern-space-cadet/) quite well. Essentially, when you tap Left Shift on its own, you get an opening parenthesis; tap Right Shift on its own and you get the closing one. When held, the Shift keys function as normal. Yes, it's as cool as it sounds, and now even cooler supporting Control and Alt as well!
## Usage ## Usage

View File

@@ -2,7 +2,7 @@
[Stenography](https://en.wikipedia.org/wiki/Stenotype) is a method of writing most often used by court reports, closed-captioning, and real-time transcription for the deaf. In stenography words are chorded syllable by syllable with a mixture of spelling, phonetic, and shortcut (briefs) strokes. Professional stenographers can reach 200-300 WPM without any of the strain usually found in standard typing and with far fewer errors (>99.9% accuracy). [Stenography](https://en.wikipedia.org/wiki/Stenotype) is a method of writing most often used by court reports, closed-captioning, and real-time transcription for the deaf. In stenography words are chorded syllable by syllable with a mixture of spelling, phonetic, and shortcut (briefs) strokes. Professional stenographers can reach 200-300 WPM without any of the strain usually found in standard typing and with far fewer errors (>99.9% accuracy).
The [Open Steno Project](http://www.openstenoproject.org/) has built an open-source program called Plover that provides real-time translation of steno strokes into words and commands. It has an established dictionary and supports The [Open Steno Project](https://www.openstenoproject.org/) has built an open-source program called Plover that provides real-time translation of steno strokes into words and commands. It has an established dictionary and supports
## Plover with QWERTY Keyboard :id=plover-with-qwerty-keyboard ## Plover with QWERTY Keyboard :id=plover-with-qwerty-keyboard
@@ -52,7 +52,6 @@ On the display tab click 'Open stroke display'. With Plover disabled you should
## Learning Stenography :id=learning-stenography ## Learning Stenography :id=learning-stenography
* [Learn Plover!](https://sites.google.com/site/learnplover/) * [Learn Plover!](https://sites.google.com/site/learnplover/)
* [QWERTY Steno](http://qwertysteno.com/Home/)
* [Steno Jig](https://joshuagrams.github.io/steno-jig/) * [Steno Jig](https://joshuagrams.github.io/steno-jig/)
* More resources at the Plover [Learning Stenography](https://github.com/openstenoproject/plover/wiki/Learning-Stenography) wiki * More resources at the Plover [Learning Stenography](https://github.com/openstenoproject/plover/wiki/Learning-Stenography) wiki

View File

@@ -87,7 +87,7 @@ const qk_ucis_symbol_t ucis_symbol_table[] = UCIS_TABLE(
UCIS_SYM("poop", 0x1F4A9), // 💩 UCIS_SYM("poop", 0x1F4A9), // 💩
UCIS_SYM("rofl", 0x1F923), // 🤣 UCIS_SYM("rofl", 0x1F923), // 🤣
UCIS_SYM("cuba", 0x1F1E8, 0x1F1FA), // 🇨🇺 UCIS_SYM("cuba", 0x1F1E8, 0x1F1FA), // 🇨🇺
UCIS_SYM("look", 0x0CA0, 0x005F, 0x0CA0), // ಠ_ಠ UCIS_SYM("look", 0x0CA0, 0x005F, 0x0CA0) // ಠ_ಠ
); );
``` ```

View File

@@ -1,242 +1,251 @@
# Flashing Instructions and Bootloader Information # Flashing Instructions and Bootloader Information
There are quite a few different types of bootloaders that keyboards use, and just about all of them use a different flashing method. Luckily, projects like the [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) aim to be compatible with all the different types without having to think about it much, but this article will describe the different types of bootloaders, and available methods for flashing them. There are quite a few different types of bootloaders that keyboards use, and almost all of them use their own flashing method and tools. Luckily, projects like the [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) aim to support as many of them as possible, but this article will describe the different types of bootloaders, and available methods for flashing them.
If you have a bootloader selected with the `BOOTLOADER` variable in your `rules.mk`, QMK will automatically calculate if your .hex file is the right size to be flashed to the device, and output the total size in bytes (along with the max). For AVR-based keyboards, QMK will automatically calculate if your `.hex` file is the right size to be flashed to the device based on the `BOOTLOADER` value set in `rules.mk`, and output the total size in bytes (along with the max).
## DFU You will also be able to use the CLI to flash your keyboard, by running:
```
$ qmk flash -kb <keyboard> -km <keymap>
```
See the [`qmk flash`](cli_commands.md#qmk-flash) documentation for more information.
Atmel's DFU bootloader comes on all atmega32u4 chips by default, and is used by many keyboards that have their own ICs on their PCBs (Older OLKB boards, Clueboards). Some keyboards may also use LUFA's DFU bootloader (or QMK's fork) (Newer OLKB boards) that adds in additional features specific to that hardware. ## Atmel DFU
To ensure compatibility with the DFU bootloader, make sure this block is present your `rules.mk` (optionally with `lufa-dfu` or `qmk-dfu` instead): Atmel's DFU bootloader comes on all USB AVRs by default (except for 16/32U4RC), and is used by many keyboards that have their own ICs on their PCBs (older OLKB boards, Clueboards). Some keyboards may also use LUFA's DFU bootloader, or QMK's fork of it (newer OLKB boards), that adds in additional features specific to that hardware.
To ensure compatibility with the DFU bootloader, make sure this block is present in your `rules.mk` (optionally with `lufa-dfu` or `qmk-dfu` instead):
```make ```make
# Bootloader selection # Bootloader selection
# Teensy halfkay
# Pro Micro caterina
# Atmel DFU atmel-dfu
# LUFA DFU lufa-dfu
# QMK DFU qmk-dfu
# ATmega32A bootloadHID
# ATmega328P USBasp
BOOTLOADER = atmel-dfu BOOTLOADER = atmel-dfu
``` ```
Compatible flashers: Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI) * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` in QMK (recommended command line) * [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` target in QMK (recommended command line)
Flashing sequence: Flashing sequence:
1. Press the `RESET` keycode, or tap the RESET button (or short RST to GND). 1. Enter the bootloader using any of the following methods:
* Press the `RESET` keycode
* Press the `RESET` button on the PCB if available
* Short RST to GND quickly
2. Wait for the OS to detect the device 2. Wait for the OS to detect the device
3. Erase the memory (may be done automatically) 3. Erase the flash memory (will be done automatically if using the Toolbox or CLI/`make` command)
4. Flash a .hex file 4. Flash a .hex file
5. Reset the device into application mode (may be done automatically) 5. Reset the device into application mode (will be done automatically as above)
or:
make <keyboard>:<keymap>:dfu
### QMK DFU ### QMK DFU
QMK has a fork of the LUFA DFU bootloader that allows for a simple matrix scan for exiting the bootloader and returning to the application, as well as flashing an LED/making a ticking noise with a speaker when things are happening. To enable these features, use this block in your `config.h` (The key that exits the bootloader needs to be hooked-up to the INPUT and OUTPUT defined here): QMK maintains [a fork of the LUFA DFU bootloader](https://github.com/qmk/lufa/tree/master/Bootloaders/DFU) that additionally performs a simple matrix scan for exiting the bootloader and returning to the application, as well as flashing an LED/making a ticking noise with a speaker when things are happening. To enable these features, add the following defines to your `config.h`:
#define QMK_ESC_OUTPUT F1 // usually COL ```c
#define QMK_ESC_INPUT D5 // usually ROW #define QMK_ESC_OUTPUT F1 // COL pin if COL2ROW
#define QMK_LED E6 #define QMK_ESC_INPUT D5 // ROW pin if COL2ROW
#define QMK_SPEAKER C6 // Optional:
//#define QMK_LED E6
//#define QMK_SPEAKER C6
```
Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](feature_bootmagic.md#bootmagic-lite), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader.
The Manufacturer and Product names are automatically pulled from your `config.h`, and "Bootloader" is added to the product. The manufacturer and product strings are automatically pulled from `config.h`, with " Bootloader" appended to the product string.
To generate this bootloader, use the `bootloader` target, eg `make planck/rev4:default:bootloader`. To generate this bootloader, use the `bootloader` target, eg. `make planck/rev4:default:bootloader`. To generate a production-ready .hex file (combining QMK and the bootloader), use the `production` target, eg. `make planck/rev4:default:production`.
To generate a production-ready .hex file (containing the application and the bootloader), use the `production` target, eg `make planck/rev4:default:production`. ### `make` Targets
### DFU commands * `:dfu`: Checks every 5 seconds until a DFU device is available, and then flashes the firmware.
* `:dfu-split-left` and `:dfu-split-right`: Flashes the firmware as with `:dfu`, but also sets the handedness setting in EEPROM. This is ideal for Elite-C-based split keyboards.
There are a number of DFU commands that you can use to flash firmware to a DFU device:
* `:dfu` - This is the normal option and waits until a DFU device is available, and then flashes the firmware. This will check every 5 seconds, to see if a DFU device has appeared.
* `:dfu-ee` - This flashes an `eep` file instead of the normal hex. This is uncommon.
* `:dfu-split-left` - This flashes the normal firmware, just like the default option (`:dfu`). However, this also flashes the "Left Side" EEPROM file for split keyboards. _This is ideal for Elite C based split keyboards._
* `:dfu-split-right` - This flashes the normal firmware, just like the default option (`:dfu`). However, this also flashes the "Right Side" EEPROM file for split keyboards. _This is ideal for Elite C based split keyboards._
## Caterina ## Caterina
Arduino boards and their clones use the [Caterina bootloader](https://github.com/arduino/ArduinoCore-avr/tree/master/bootloaders/caterina) (any keyboard built with a Pro Micro, or clone), and uses the avr109 protocol to communicate through virtual serial. Bootloaders like [A-Star](https://www.pololu.com/docs/0J61/9) are based on Caterina. Arduino boards and their clones use the [Caterina bootloader](https://github.com/arduino/ArduinoCore-avr/tree/master/bootloaders/caterina) or a variant of it (any keyboard built with a Pro Micro or clone, and the Pololu A-Star), and uses the AVR109 protocol to communicate through virtual serial.
To ensure compatibility with the Caterina bootloader, make sure this block is present your `rules.mk`: To ensure compatibility with the Caterina bootloader, make sure this block is present in your `rules.mk`:
```make ```make
# Bootloader selection # Bootloader selection
# Teensy halfkay
# Pro Micro caterina
# Atmel DFU atmel-dfu
# LUFA DFU lufa-dfu
# QMK DFU qmk-dfu
# ATmega32A bootloadHID
# ATmega328P USBasp
BOOTLOADER = caterina BOOTLOADER = caterina
``` ```
Compatible flashers: Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI) * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [avrdude](http://www.nongnu.org/avrdude/) with avr109 / `:avrdude` (recommended command line) * [avrdude](https://www.nongnu.org/avrdude/) with the `avr109` programmer / `:avrdude` target in QMK (recommended command line)
* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS) * [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
Flashing sequence: Flashing sequence:
1. Press the `RESET` keycode, or short RST to GND quickly (you only have 7 seconds to flash once it enters) 1. Enter the bootloader using any of the following methods (you only have 7 seconds to flash once it enters; some variants may require you to reset twice within 750 milliseconds):
* Press the `RESET` keycode
* Press the `RESET` button on the PCB if available
* Short RST to GND quickly
2. Wait for the OS to detect the device 2. Wait for the OS to detect the device
3. Flash a .hex file 3. Flash a .hex file
4. Wait for the device to reset automatically 4. Wait for the device to reset automatically
or ### `make` Targets
make <keyboard>:<keymap>:avrdude * `:avrdude`: Checks every 5 seconds until a Caterina device is available (by detecting a new COM port), and then flashes the firmware.
* `:avrdude-loop`: Flashes the firmware as with `:avrdude`, but after each device is flashed, will attempt to flash again. This is useful for bulk flashing. Hit Ctrl+C to escape the loop.
* `:avrdude-split-left` and `:avrdude-split-right`: Flashes the firmware as with `:avrdude`, but also sets the handedness setting in EEPROM. This is ideal for Pro Micro-based split keyboards.
## HalfKay
### Caterina commands HalfKay is a super-slim bootloader developed by PJRC that presents itself as an HID device (which requires no additional driver), and comes preflashed on all Teensys, namely the 2.0. It is currently closed-source, and thus once overwritten (eg. via ISP flashing another bootloader), cannot be restored.
There are a number of DFU commands that you can use to flash firmware to a DFU device: To ensure compatibility with the Halfkay bootloader, make sure this block is present in your `rules.mk`:
* `:avrdude` - This is the normal option which waits until a Caterina device is available (by detecting a new COM port), and then flashes the firmware.
* `:avrdude-loop` - This runs the same command as `:avrdude`, but after each device is flashed, it will attempt to flash again. This is useful for bulk flashing. _This requires you to manually escape the loop by hitting Ctrl+C._
* `:avrdude-split-left` - This flashes the normal firmware, just like the default option (`:avrdude`). However, this also flashes the "Left Side" EEPROM file for split keyboards. _This is ideal for Pro Micro based split keyboards._
* `:avrdude-split-right` - This flashes the normal firmware, just like the default option (`:avrdude`). However, this also flashes the "Right Side" EEPROM file for split keyboards. _This is ideal for Pro Micro based split keyboards._
## Halfkay
Halfkay is a super-slim protocol developed by PJRC that uses HID, and comes on all Teensys (namely the 2.0).
To ensure compatibility with the Halfkay bootloader, make sure this block is present your `rules.mk`:
```make ```make
# Bootloader selection # Bootloader selection
# Teensy halfkay
# Pro Micro caterina
# Atmel DFU atmel-dfu
# LUFA DFU lufa-dfu
# QMK DFU qmk-dfu
# ATmega32A bootloadHID
# ATmega328P USBasp
BOOTLOADER = halfkay BOOTLOADER = halfkay
``` ```
Compatible flashers: Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI) * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [Teensy Loader Command Line](https://www.pjrc.com/teensy/loader_cli.html) / `:teensy` target in QMK (recommended command line)
* [Teensy Loader](https://www.pjrc.com/teensy/loader.html) * [Teensy Loader](https://www.pjrc.com/teensy/loader.html)
* [Teensy Loader Command Line](https://www.pjrc.com/teensy/loader_cli.html) (recommended command line)
Flashing sequence: Flashing sequence:
1. Press the `RESET` keycode, or short RST to GND quickly (you only have 7 seconds to flash once it enters) 1. Enter the bootloader using any of the following methods (you only have 7 seconds to flash once it enters):
* Press the `RESET` keycode
* Press the `RESET` button on the Teensy or PCB if available
* short RST to GND quickly
2. Wait for the OS to detect the device 2. Wait for the OS to detect the device
3. Flash a .hex file 3. Flash a .hex file
4. Reset the device into application mode (may be done automatically) 4. Reset the device into application mode (may be done automatically)
## USBasploader ## USBasploader
USBasploader is a bootloader developed by matrixstorm. It is used in some non-USB AVR chips such as the ATmega328P, which run V-USB. USBasploader is a bootloader originally by [Objective Development](https://www.obdev.at/products/vusb/usbasploader.html). It emulates a USBasp ISP programmer and is used in some non-USB AVR chips such as the ATmega328P, which run V-USB.
To ensure compatibility with the USBasploader bootloader, make sure this block is present in your `rules.mk`: To ensure compatibility with the USBasploader bootloader, make sure this block is present in your `rules.mk`:
```make ```make
# Bootloader selection # Bootloader selection
# Teensy halfkay
# Pro Micro caterina
# Atmel DFU atmel-dfu
# LUFA DFU lufa-dfu
# QMK DFU qmk-dfu
# ATmega32A bootloadHID
# ATmega328P USBasp
BOOTLOADER = USBasp BOOTLOADER = USBasp
``` ```
Compatible flashers: Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI) * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [avrdude](http://www.nongnu.org/avrdude/) with the `usbasp` programmer * [avrdude](https://www.nongnu.org/avrdude/) with the `usbasp` programmer / `:usbasp` target in QMK (recommended command line)
* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS) * [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
Flashing sequence: Flashing sequence:
1. Press the `RESET` keycode, or keep the boot pin shorted to GND while quickly shorting RST to GND 1. Enter the bootloader using any of the following methods:
* Press the `RESET` keycode
* Keep the `BOOT` button held while quickly tapping the `RESET` button on the PCB
2. Wait for the OS to detect the device 2. Wait for the OS to detect the device
3. Flash a .hex file 3. Flash a .hex file
4. Reset the device into application mode (may be done automatically) 4. Press the `RESET` button on the PCB or short RST to GND
## BootloadHID ## BootloadHID
BootloadHID is a USB bootloader for AVR microcontrollers. The uploader tool requires no kernel level driver on Windows and can therefore be run without installing any DLLs. BootloadHID is a USB bootloader for AVR microcontrollers. It presents itself as an HID input device, much like HalfKay, and can therefore be run without installing any driver on Windows.
To ensure compatibility with the bootloadHID bootloader, make sure this block is present your `rules.mk`: To ensure compatibility with the bootloadHID bootloader, make sure this block is present in your `rules.mk`:
```make ```make
# Bootloader selection # Bootloader selection
# Teensy halfkay
# Pro Micro caterina
# Atmel DFU atmel-dfu
# LUFA DFU lufa-dfu
# QMK DFU qmk-dfu
# ATmega32A bootloadHID
# ATmega328P USBasp
BOOTLOADER = bootloadHID BOOTLOADER = bootloadHID
``` ```
Compatible flashers: Compatible flashers:
* [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash) (recommended Windows GUI) * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [bootloadhid Command Line](https://www.obdev.at/products/vusb/bootloadhid.html) / `:BootloadHID` in QMK (recommended command line) * [bootloadHID CLI](https://www.obdev.at/products/vusb/bootloadhid.html) / `:bootloadHID` target in QMK (recommended command line)
* [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash)
Flashing sequence: Flashing sequence:
1. Enter the bootloader using any of the following methods: 1. Enter the bootloader using any of the following methods:
* Tap the `RESET` keycode (may not work on all devices) * Tap the `RESET` keycode
* Hold the salt key while plugging the keyboard in (usually documented within keyboard readme) * Hold the salt key while plugging the keyboard in - for PS2AVRGB boards, this is usually the key connected to MCU pins A0 and B0, otherwise it will be documented in your keyboard's readme
2. Wait for the OS to detect the device 2. Wait for the OS to detect the device
3. Flash a .hex file 3. Flash a .hex file
4. Reset the device into application mode (may be done automatically) 4. Reset the device into application mode (may be done automatically)
or: ## STM32/APM32 DFU
make <keyboard>:<keymap>:bootloadHID All STM32 and APM32 MCUs, except for F103 (see the [STM32duino section](#stm32duino)) come preloaded with a factory bootloader that cannot be modified nor deleted.
## STM32 To ensure compatibility with the STM32-DFU bootloader, make sure this block is present in your `rules.mk` (optionally with `apm32-dfu` instead):
All STM32 chips come preloaded with a factory bootloader that cannot be modified nor deleted. Some STM32 chips have bootloaders that do not come with USB programming (e.g. STM32F103) but the process is still the same. ```make
# Bootloader selection
At the moment, no `BOOTLOADER` variable is needed on `rules.mk` for STM32. BOOTLOADER = stm32-dfu
```
Compatible flashers: Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI) * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [dfu-util](https://github.com/Stefan-Schmidt/dfu-util) / `:dfu-util` (recommended command line) * [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line)
Flashing sequence: Flashing sequence:
1. Enter the bootloader using any of the following methods: 1. Enter the bootloader using any of the following methods:
* Tap the `RESET` keycode (may not work on STM32F042 devices) * Tap the `RESET` keycode (may not work on STM32F042 devices)
* If a reset circuit is present, tap the RESET button * If a reset circuit is present, tap the `RESET` button on the PCB; some boards may also have a toggle switch that must be flipped
* Otherwise, you need to bridge BOOT0 to VCC (via BOOT0 button or bridge), short RESET to GND (via RESET button or bridge), and then let go of the BOOT0 bridge * Otherwise, you need to bridge `BOOT0` to VCC (via `BOOT0` button or jumper), short `RESET` to GND (via `RESET` button or jumper), and then let go of the `BOOT0` bridge
2. Wait for the OS to detect the device 2. Wait for the OS to detect the device
3. Flash a .bin file 3. Flash a .bin file
* You will receive a warning about the DFU signature; Just ignore it
4. Reset the device into application mode (may be done automatically) 4. Reset the device into application mode (may be done automatically)
* If you are building from command line (e.g. `make planck/rev6:default:dfu-util`), make sure that `:leave` is passed to the `DFU_ARGS` variable inside your `rules.mk` (e.g. `DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave`) so that your device resets after flashing
### STM32 Commands ### `make` Targets
There are a number of DFU commands that you can use to flash firmware to a STM32 device: * `:dfu-util`: Waits until an STM32 bootloader device is available, and then flashes the firmware.
* `:dfu-util-split-left` and `:dfu-util-split-right`: Flashes the firmware as with `:avrdude`, but also sets the handedness setting in EEPROM. This is ideal for Proton-C-based split keyboards.
* `:st-link-cli`: Allows you to flash the firmware via the ST-Link CLI utility, rather than dfu-util. Requires an ST-Link dongle.
* `:st-flash`: Allows you to flash the firmware via the `st-flash` utility from [STLink Tools](https://github.com/stlink-org/stlink), rather than dfu-util. Requires an ST-Link dongle.
* `:dfu-util` - The default command for flashing to STM32 devices, and will wait until an STM32 bootloader device is present. ## STM32duino
* `:dfu-util-split-left` - This flashes the normal firmware, just like the default option (`:dfu-util`). However, this also configures the "Left Side" EEPROM setting for split keyboards.
* `:dfu-util-split-right` - This flashes the normal firmware, just like the default option (`:dfu-util`). However, this also configures the "Right Side" EEPROM setting for split keyboards. This bootloader is used almost exclusively for STM32F103 boards, as they do not come with a USB DFU bootloader. The source code and prebuilt binaries can be found [here](https://github.com/rogerclarkmelbourne/STM32duino-bootloader).
* `:st-link-cli` - This allows you to flash the firmware via ST-LINK's CLI utility, rather than dfu-util.
* `:st-flash` - This allows you to flash the firmware via the `st-flash` utility from [STLink Tools](https://github.com/stlink-org/stlink), rather than dfu-util. To ensure compatibility with the STM32duino bootloader, make sure this block is present in your `rules.mk`:
```make
# Bootloader selection
BOOTLOADER = stm32duino
```
Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line)
Flashing sequence:
1. Enter the bootloader using any of the following methods:
* Tap the `RESET` keycode
* If a reset circuit is present, tap the `RESET` button on the PCB
* Otherwise, you need to bridge `BOOT0` to VCC (via `BOOT0` button or jumper), short `RESET` to GND (via `RESET` button or jumper), and then let go of the `BOOT0` bridge
2. Wait for the OS to detect the device
3. Flash a .bin file
4. Reset the device into application mode (may be done automatically)
## Kiibohd DFU
Keyboards produced by Input Club use NXP Kinetis microcontrollers rather than STM32, and come with their own [custom bootloader](https://github.com/kiibohd/controller/tree/master/Bootloader), however the process and protocol is largely the same.
The `rules.mk` setting for this bootloader is `kiibohd`, but since this bootloader is limited to Input Club boards, it should not be necessary to set at keymap or user level.
Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line)
Flashing sequence:
1. Enter the bootloader using any of the following methods:
* Tap the `RESET` keycode (this may only enter the MCU into a "secure" bootloader mode; see https://github.com/qmk/qmk_firmware/issues/6112)
* Press the `RESET` button on the PCB
2. Wait for the OS to detect the device
3. Flash a .bin file
4. Reset the device into application mode (may be done automatically)

View File

@@ -9,7 +9,7 @@
## Qu'est-ce que QMK Firmware? ## Qu'est-ce que QMK Firmware?
QMK (*Quantum Mechanical Keyboard*) est une communauté open source qui maintient le firmware QMK, la QMK Toolbox (*Boite à outil*), qmk.fm et leurs documentations. QMKFirmware est un firmware dédié aux claviers qui est basé sur [tmk\_keyboard](http://github.com/tmk/tmk_keyboard). Il offre des fonctionnalités très utiles pour les contrôleurs Atmel AVR, et, plus spécifiquement pour [les produits d'OLKB](http://olkb.com), le clavier [ErgoDox EZ](http://www.ergodox-ez.com), et pour les [produits Clueboard](http://clueboard.co/). Il prend désormais aussi en charge les processeurs ARM qui utilisent ChibiOS. Vous pouvez l'utiliser pour contrôler un clavier personnalisé soudé à la main ou alors sur un clavier avec un PCB personnalisé. QMK (*Quantum Mechanical Keyboard*) est une communauté open source qui maintient le firmware QMK, la QMK Toolbox (*Boite à outil*), qmk.fm et leurs documentations. QMKFirmware est un firmware dédié aux claviers qui est basé sur [tmk\_keyboard](https://github.com/tmk/tmk_keyboard). Il offre des fonctionnalités très utiles pour les contrôleurs Atmel AVR, et, plus spécifiquement pour [les produits d'OLKB](https://olkb.com), le clavier [ErgoDox EZ](https://www.ergodox-ez.com), et pour les [produits Clueboard](https://clueboard.co/). Il prend désormais aussi en charge les processeurs ARM qui utilisent ChibiOS. Vous pouvez l'utiliser pour contrôler un clavier personnalisé soudé à la main ou alors sur un clavier avec un PCB personnalisé.
## Comment l'obtenir ## Comment l'obtenir
@@ -29,4 +29,4 @@ Cette commande compilera la révision `rev4` du clavier `planck` avec la disposi
## Comment le personnaliser ## Comment le personnaliser
QMK a beaucoup de [fonctionnalités](fr-fr/features.md) à explorer, et [une documentation](http://docs.qmk.fm) très abondante que vous pourrez parcourir. La plupart des fonctionnalités vous permettrons de modifier vos [dispositions](fr-fr/keymap.md) (keymaps) et de changer [les codes de caractères](fr-fr/keycodes.md) (keycodes). QMK a beaucoup de [fonctionnalités](fr-fr/features.md) à explorer, et [une documentation](https://docs.qmk.fm) très abondante que vous pourrez parcourir. La plupart des fonctionnalités vous permettrons de modifier vos [dispositions](fr-fr/keymap.md) (keymaps) et de changer [les codes de caractères](fr-fr/keycodes.md) (keycodes).

View File

@@ -23,7 +23,7 @@ Merci de garder ceci en tête:
# Aperçu du projet # Aperçu du projet
QMK est majoritairement écrit en C, avec quelques fonctions et parties spécifiques écrites en C++. Il est destiné aux processeurs intégrés que l'on trouve dans des clavier, particulièrement AVR ([LUFA](http://www.fourwalledcubicle.com/LUFA.php)) et ARM ([ChibiOS](http://www.chibios.com)). Si vous maîtrisez déjà la programmation sur Arduino, vous trouverez beaucoup de concepts et de limitations familiers. Une expérience préalable avec les Arduino n'est pas nécessaire à contribuer avec succès à QMK. QMK est majoritairement écrit en C, avec quelques fonctions et parties spécifiques écrites en C++. Il est destiné aux processeurs intégrés que l'on trouve dans des clavier, particulièrement AVR ([LUFA](https://www.fourwalledcubicle.com/LUFA.php)) et ARM ([ChibiOS](https://www.chibios.org)). Si vous maîtrisez déjà la programmation sur Arduino, vous trouverez beaucoup de concepts et de limitations familiers. Une expérience préalable avec les Arduino n'est pas nécessaire à contribuer avec succès à QMK.
<!-- FIXME: We should include a list of resources for learning C here. --> <!-- FIXME: We should include a list of resources for learning C here. -->
@@ -83,7 +83,7 @@ Limited experimentation on the devices I have available shows that 7 is high eno
La documentation est l'une des manières les plus simples de démarrer la contribution sur QMK. Il est simple de trouver des endroits où la documentation est fausse ou incomplète, et il est tout aussi simple de la corriger! Nous avons aussi grandement besoin de quelqu'un pour éditer notre documentation, donc si vous avez des compétences en édition mais que vous n'êtes pas sûr de savoir où aller, n'hésitez pas [demandez de l'aide](#where-can-i-go-for-help)! La documentation est l'une des manières les plus simples de démarrer la contribution sur QMK. Il est simple de trouver des endroits où la documentation est fausse ou incomplète, et il est tout aussi simple de la corriger! Nous avons aussi grandement besoin de quelqu'un pour éditer notre documentation, donc si vous avez des compétences en édition mais que vous n'êtes pas sûr de savoir où aller, n'hésitez pas [demandez de l'aide](#where-can-i-go-for-help)!
Vous trouverez toute notre documentation dans le répertoire `qmk_firmware/docs`, ou si vous préférez utiliser des outils web, vous pouvez cliquer sur le bouton "Suggest An Edit" en haut de chaque page sur http://docs.qmk.fm/. Vous trouverez toute notre documentation dans le répertoire `qmk_firmware/docs`, ou si vous préférez utiliser des outils web, vous pouvez cliquer sur le bouton "Suggest An Edit" en haut de chaque page sur https://docs.qmk.fm/.
Lorsque vous donnez des exemples de code dans la documentation, essayez de suivre les conventions de nommage utilisées ailleurs dans la documentation. Par exemple, standardisez les enums en utilisant `my_layers` ou `my_keycodes` afin de garder une consistance: Lorsque vous donnez des exemples de code dans la documentation, essayez de suivre les conventions de nommage utilisées ailleurs dans la documentation. Par exemple, standardisez les enums en utilisant `my_layers` ou `my_keycodes` afin de garder une consistance:

View File

@@ -96,8 +96,8 @@ La plupart des boards QMK utilisent `0xFEED` comme vendor ID. Vérifiez les autr
https://github.com/tmk/tmk_keyboard/issues/150 https://github.com/tmk/tmk_keyboard/issues/150
Vous pouvez acheter un VID:PID unique ici. Je ne pense pas que ce soit nécessaire pour un usage personnel. Vous pouvez acheter un VID:PID unique ici. Je ne pense pas que ce soit nécessaire pour un usage personnel.
- http://www.obdev.at/products/vusb/license.html - https://www.obdev.at/products/vusb/license.html
- http://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1 - https://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1
## BOOTLOADER_SIZE pour AVR ## BOOTLOADER_SIZE pour AVR

View File

@@ -93,8 +93,8 @@ https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switc
Sans circuit de réinitialisation vous allez avoir des résultats inconsistants à cause de la mauvaise initialisation du matériel. Regardez le schéma du circuit du TPM754. Sans circuit de réinitialisation vous allez avoir des résultats inconsistants à cause de la mauvaise initialisation du matériel. Regardez le schéma du circuit du TPM754.
- http://geekhack.org/index.php?topic=50176.msg1127447#msg1127447 - https://geekhack.org/index.php?topic=50176.msg1127447#msg1127447
- http://www.mikrocontroller.net/attachment/52583/tpm754.pdf - https://www.mikrocontroller.net/attachment/52583/tpm754.pdf
## Impossible de lire la colonne de la matrice après 16 ## Impossible de lire la colonne de la matrice après 16
@@ -102,7 +102,7 @@ Utilisez `1UL<<16` à la place de `1<<16` dans `read_cols()` du fichier [matrix.
En C, `1` implique un type [int] qui est [16 bits] pour les AVR, ce qui implique que vous ne pouvez pas décaler à gauche de plus de 15. Si vous utilisez `1<<16`, vous aurez un résultat non attendu de zéro. Vous devez donc utiliser un type [unsigned long] en utilisant `1UL`. En C, `1` implique un type [int] qui est [16 bits] pour les AVR, ce qui implique que vous ne pouvez pas décaler à gauche de plus de 15. Si vous utilisez `1<<16`, vous aurez un résultat non attendu de zéro. Vous devez donc utiliser un type [unsigned long] en utilisant `1UL`.
http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 https://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279
## Les touches spéciales ne fonctionnent pas (Touche Système, Touches de contrôle du son) ## Les touches spéciales ne fonctionnent pas (Touche Système, Touches de contrôle du son)
@@ -122,8 +122,8 @@ Appuyer sur n'importe quelle touche en mode veille devrait sortir l'ordinateur d
**Faites attention au fait que le nommage des pin d'un Arduino diffère de la puce**. Par exemple, la pin `D0` n'est pas `PD0`. Vérifiez le circuit avec la fiche technique. **Faites attention au fait que le nommage des pin d'un Arduino diffère de la puce**. Par exemple, la pin `D0` n'est pas `PD0`. Vérifiez le circuit avec la fiche technique.
- http://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf - https://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf
- http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf - https://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf
Les Arduino Leonardo et micro ont des **ATMega32U4** et peuvent être utilisés avec TMK, mais le bootloader Arduino peut causer des problèmes. Les Arduino Leonardo et micro ont des **ATMega32U4** et peuvent être utilisés avec TMK, mais le bootloader Arduino peut causer des problèmes.

View File

@@ -12,7 +12,7 @@ Les keycodes sont définies dans [common/keycode.h](https://github.com/qmk/qmk_f
Il existe 3 configurations de clavier standard utilisées dans le monde: ANSI, ISO et JIS. L'Amérique du Nord utilise principalement l'ANSI, l'Europe et l'Afrique l'ISO et le Japon utilise JIS. Les autres régions utilisent généralement ANSI ou ISO. Les keycodes correspondant à ces dispositions spécifiques sont affichés ici : Il existe 3 configurations de clavier standard utilisées dans le monde: ANSI, ISO et JIS. L'Amérique du Nord utilise principalement l'ANSI, l'Europe et l'Afrique l'ISO et le Japon utilise JIS. Les autres régions utilisent généralement ANSI ou ISO. Les keycodes correspondant à ces dispositions spécifiques sont affichés ici :
<!-- Source for this image: http://www.keyboard-layout-editor.com/#/gists/bf431647d1001cff5eff20ae55621e9a --> <!-- Source for this image: https://www.keyboard-layout-editor.com/#/gists/bf431647d1001cff5eff20ae55621e9a -->
![Keyboard Layout Image](https://i.imgur.com/5wsh5wM.png) ![Keyboard Layout Image](https://i.imgur.com/5wsh5wM.png)
## Certaines de mes touches sont permutées ou ne fonctionnent pas ## Certaines de mes touches sont permutées ou ne fonctionnent pas
@@ -33,8 +33,8 @@ La touche trouvée sur la plupart des claviers modernes située entre `KC_RGUI`
Utilisez le keycode pour Print Screen (`KC_PSCREEN` or `KC_PSCR`) à la place de `KC_SYSREQ`. La combinaison de touche 'Alt + Print Screen' est reconnue comme 'System request'. Utilisez le keycode pour Print Screen (`KC_PSCREEN` or `KC_PSCR`) à la place de `KC_SYSREQ`. La combinaison de touche 'Alt + Print Screen' est reconnue comme 'System request'.
Voir [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) et Voir [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) et
* http://en.wikipedia.org/wiki/Magic_SysRq_key * https://en.wikipedia.org/wiki/Magic_SysRq_key
* http://en.wikipedia.org/wiki/System_request * https://en.wikipedia.org/wiki/System_request
## Les touches alimentation ne fonctionnent pas ## Les touches alimentation ne fonctionnent pas
@@ -54,12 +54,12 @@ Les touches de modification ou les calques peuvent être bloquées si la commuta
Pour les touches de modification et les actions de calque, vous devez placer `KC_TRANS` sur la même position du calque de destination afin de désenregistrer la clé de modificateur ou de revenir au calque précédent lors de la libération. Pour les touches de modification et les actions de calque, vous devez placer `KC_TRANS` sur la même position du calque de destination afin de désenregistrer la clé de modificateur ou de revenir au calque précédent lors de la libération.
* https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#31-momentary-switching * https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#31-momentary-switching
* http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 * https://geekhack.org/index.php?topic=57008.msg1492604#msg1492604
* https://github.com/tmk/tmk_keyboard/issues/248 * https://github.com/tmk/tmk_keyboard/issues/248
## Support de touche à verrouillage mécanique ## Support de touche à verrouillage mécanique
Cette fonctionnalité permet l'usage de *touches à verrouillage mécanique* comme [ces interrupteurs Alps](http://deskthority.net/wiki/Alps_SKCL_Lock). Vous pouvez l'activer en ajoutant ceci à votre `config.h`: Cette fonctionnalité permet l'usage de *touches à verrouillage mécanique* comme [ces interrupteurs Alps](https://deskthority.net/wiki/Alps_SKCL_Lock). Vous pouvez l'activer en ajoutant ceci à votre `config.h`:
``` ```
#define LOCKING_SUPPORT_ENABLE #define LOCKING_SUPPORT_ENABLE

View File

@@ -84,7 +84,7 @@ BOOTLOADER = caterina
Flashers compatibles: Flashers compatibles:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (Interface graphique recommandée) * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (Interface graphique recommandée)
* [avrdude](http://www.nongnu.org/avrdude/) avec avr109 / `:avrdude` (Outil en ligne de commande recommandé) * [avrdude](https://www.nongnu.org/avrdude/) avec avr109 / `:avrdude` (Outil en ligne de commande recommandé)
* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS) * [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
Séquence de flash : Séquence de flash :
@@ -159,7 +159,7 @@ BOOTLOADER = USBasp
Flashers compatibles: Flashers compatibles:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (Interface graphique recommandé) * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (Interface graphique recommandé)
* [avrdude](http://www.nongnu.org/avrdude/) avec le programmeur `usbasp`. * [avrdude](https://www.nongnu.org/avrdude/) avec le programmeur `usbasp`.
* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS) * [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
Séquence de flash: Séquence de flash:

View File

@@ -6,15 +6,15 @@ GitHub peut être un peu compliqué pour ceux qui n'y sont pas familier. Ce guid
Commencez par la [page GitHub de QMK](https://github.com/qmk/qmk_firmware), et vous verrez un bouton dans le coin en haut à droite qui indique "Fork": Commencez par la [page GitHub de QMK](https://github.com/qmk/qmk_firmware), et vous verrez un bouton dans le coin en haut à droite qui indique "Fork":
![Fork on GitHub](http://i.imgur.com/8Toomz4.jpg) ![Fork on GitHub](https://i.imgur.com/8Toomz4.jpg)
Si vous faites partie d'une organisation, vous aurez besoin de savoir quel compte utiliser pour le fork. Dans la plupart des cas, vous voudrez créer le fork dans votre compte personnel. Une fois le fork complet (cela peut quelques fois prendre un peu de temps), appuyez sur le bouton "Clone or download": Si vous faites partie d'une organisation, vous aurez besoin de savoir quel compte utiliser pour le fork. Dans la plupart des cas, vous voudrez créer le fork dans votre compte personnel. Une fois le fork complet (cela peut quelques fois prendre un peu de temps), appuyez sur le bouton "Clone or download":
![Download from GitHub](http://i.imgur.com/N1NYcSz.jpg) ![Download from GitHub](https://i.imgur.com/N1NYcSz.jpg)
Faites attention à sélectionner "HTTPS", et sélectionnez le lien et copiez-le: Faites attention à sélectionner "HTTPS", et sélectionnez le lien et copiez-le:
![HTTPS link](http://i.imgur.com/eGO0ohO.jpg) ![HTTPS link](https://i.imgur.com/eGO0ohO.jpg)
Ensuite, entrez `git clone --recurse-submodules ` dans la ligne de commande, et collez votre lien: Ensuite, entrez `git clone --recurse-submodules ` dans la ligne de commande, et collez votre lien:
@@ -56,11 +56,11 @@ To https://github.com/whoeveryouare/qmk_firmware.git
Vos changements existent maintenant dans votre fork sur GitHub. Si vous allez à cette adresse (`https://github.com/<whoeveryouare>/qmk_firmware`), vous pouvez créer un nouveau "Pull Request" en cliquant sur ce bouton: Vos changements existent maintenant dans votre fork sur GitHub. Si vous allez à cette adresse (`https://github.com/<whoeveryouare>/qmk_firmware`), vous pouvez créer un nouveau "Pull Request" en cliquant sur ce bouton:
![New Pull Request](http://i.imgur.com/DxMHpJ8.jpg) ![New Pull Request](https://i.imgur.com/DxMHpJ8.jpg)
Maintenant, vous pourrez voir exactement ce que vous avez commité. Si ça vous semble bien, vous pouvez le finaliser en cliquant sur "Create Pull Request": Maintenant, vous pourrez voir exactement ce que vous avez commité. Si ça vous semble bien, vous pouvez le finaliser en cliquant sur "Create Pull Request":
![Create Pull Request](http://i.imgur.com/Ojydlaj.jpg) ![Create Pull Request](https://i.imgur.com/Ojydlaj.jpg)
Une fois transmis, nous pourrons vous parler de vos changements, vous demander de faire des changements, et éventuellement de les accepter! Une fois transmis, nous pourrons vous parler de vos changements, vous demander de faire des changements, et éventuellement de les accepter!

View File

@@ -2,7 +2,7 @@
QMK est un firmware Open Source pour votre clavier mécanique. Vous pouvez utiliser QMK pour customiser votre clavier de manière simple et puissante. Tout le monde, du débutant complet au développeur avancé, ont utilisé avec succès QMK pour customiser leur clavier. Ce guide vous aidera à faire de même, quelles que soient vos compétences. QMK est un firmware Open Source pour votre clavier mécanique. Vous pouvez utiliser QMK pour customiser votre clavier de manière simple et puissante. Tout le monde, du débutant complet au développeur avancé, ont utilisé avec succès QMK pour customiser leur clavier. Ce guide vous aidera à faire de même, quelles que soient vos compétences.
Vous voulez savoir si votre clavier peut utiliser QMK? Si c'est un clavier mécanique que vous avez vous-même construit, il y a de bonnes chances que vous pouvez. Nous supportons un [grand nombre de "hobbyist boards"](http://qmk.fr/keyboards), donc même si votre clavier ne peut pas utiliser QMK, vous ne devriez pas avoir trop de problème pour en trouver un qui vous convienne. Vous voulez savoir si votre clavier peut utiliser QMK? Si c'est un clavier mécanique que vous avez vous-même construit, il y a de bonnes chances que vous pouvez. Nous supportons un [grand nombre de "hobbyist boards"](https://qmk.fm/keyboards), donc même si votre clavier ne peut pas utiliser QMK, vous ne devriez pas avoir trop de problème pour en trouver un qui vous convienne.
## Vue d'ensemble ## Vue d'ensemble

View File

@@ -41,7 +41,7 @@ Nous avons essayé de rendre QMK aussi simple que possible à configurer. Vous a
Vous devez installer MSYS2 et Git. Vous devez installer MSYS2 et Git.
* Suivez les instructions d'installation sur la [page de MSYS2](http://www.msys2.org). * Suivez les instructions d'installation sur la [page de MSYS2](https://www.msys2.org).
* Fermez tous les terminaux MSYS2 éventuellement ouverts et ouvrez un nouveau terminal MSYS2 MinGW 64-bit. * Fermez tous les terminaux MSYS2 éventuellement ouverts et ouvrez un nouveau terminal MSYS2 MinGW 64-bit.
* Installez Git en lançant la commande: `pacman -S git`. * Installez Git en lançant la commande: `pacman -S git`.

View File

@@ -11,8 +11,8 @@ Note: ces programmes ne sont ni fournis ni approuvés par QMK.
* [QMK Configurator](https://config.qmk.fm/#/test/) (Web) * [QMK Configurator](https://config.qmk.fm/#/test/) (Web)
* [Switch Hitter](https://web.archive.org/web/20190413233743/https://elitekeyboards.com/switchhitter.php) (Windows seulement) * [Switch Hitter](https://web.archive.org/web/20190413233743/https://elitekeyboards.com/switchhitter.php) (Windows seulement)
* [Keyboard Viewer](https://www.imore.com/how-use-keyboard-viewer-your-mac) (Mac seulement) * [Keyboard Viewer](https://www.imore.com/how-use-keyboard-viewer-your-mac) (Mac seulement)
* [Keyboard Tester](http://www.keyboardtester.com) (Web) * [Keyboard Tester](https://www.keyboardtester.com) (Web)
* [Keyboard Checker](http://keyboardchecker.com) (Web) * [Keyboard Checker](https://keyboardchecker.com) (Web)
## Débuguer ## Débuguer

View File

@@ -6,15 +6,15 @@ GitHub can be a little tricky to those that aren't familiar with it - this guide
Start on the [QMK GitHub page](https://github.com/qmk/qmk_firmware), and you'll see a button in the upper right that says "Fork": Start on the [QMK GitHub page](https://github.com/qmk/qmk_firmware), and you'll see a button in the upper right that says "Fork":
![Fork on GitHub](http://i.imgur.com/8Toomz4.jpg) ![Fork on GitHub](https://i.imgur.com/8Toomz4.jpg)
If you're a part of an organization, you'll need to choose which account to fork it to. In most circumstances, you'll want to fork it to your personal account. Once your fork is completed (sometimes this takes a little while), click the "Clone or Download" button: If you're a part of an organization, you'll need to choose which account to fork it to. In most circumstances, you'll want to fork it to your personal account. Once your fork is completed (sometimes this takes a little while), click the "Clone or Download" button:
![Download from GitHub](http://i.imgur.com/N1NYcSz.jpg) ![Download from GitHub](https://i.imgur.com/N1NYcSz.jpg)
And be sure to select "HTTPS", and select the link and copy it: And be sure to select "HTTPS", and select the link and copy it:
![HTTPS link](http://i.imgur.com/eGO0ohO.jpg) ![HTTPS link](https://i.imgur.com/eGO0ohO.jpg)
From here, enter `git clone --recurse-submodules ` into the command line, and then paste your link: From here, enter `git clone --recurse-submodules ` into the command line, and then paste your link:
@@ -56,10 +56,10 @@ To https://github.com/whoeveryouare/qmk_firmware.git
Your changes now exist on your fork on GitHub - if you go back there (`https://github.com/<whoeveryouare>/qmk_firmware`), you can create a "New Pull Request" by clicking this button: Your changes now exist on your fork on GitHub - if you go back there (`https://github.com/<whoeveryouare>/qmk_firmware`), you can create a "New Pull Request" by clicking this button:
![New Pull Request](http://i.imgur.com/DxMHpJ8.jpg) ![New Pull Request](https://i.imgur.com/DxMHpJ8.jpg)
Here you'll be able to see exactly what you've committed - if it all looks good, you can finalize it by clicking "Create Pull Request": Here you'll be able to see exactly what you've committed - if it all looks good, you can finalize it by clicking "Create Pull Request":
![Create Pull Request](http://i.imgur.com/Ojydlaj.jpg) ![Create Pull Request](https://i.imgur.com/Ojydlaj.jpg)
After submitting, we may talk to you about your changes, ask that you make changes, and eventually accept it! Thanks for contributing to QMK :) After submitting, we may talk to you about your changes, ask that you make changes, and eventually accept it! Thanks for contributing to QMK :)

View File

@@ -14,16 +14,32 @@ The full syntax of the `make` command is `<keyboard_folder>:<keymap>:<target>`,
The `<target>` means the following The `<target>` means the following
* If no target is given, then it's the same as `all` below * If no target is given, then it's the same as `all` below
* `all` compiles as many keyboard/revision/keymap combinations as specified. For example, `make planck/rev4:default` will generate a single .hex, while `make planck/rev4:all` will generate a hex for every keymap available to the planck. * `all` compiles as many keyboard/revision/keymap combinations as specified. For example, `make planck/rev4:default` will generate a single .hex, while `make planck/rev4:all` will generate a hex for every keymap available to the planck.
* `flash`, `dfu`, `teensy`, `avrdude`, `dfu-util`, or `bootloadHID` compile and upload the firmware to the keyboard. If the compilation fails, then nothing will be uploaded. The programmer to use depends on the keyboard. For most keyboards it's `dfu`, but for ChibiOS keyboards you should use `dfu-util`, and `teensy` for standard Teensys. To find out which command you should use for your keyboard, check the keyboard specific readme. * `flash`, `dfu`, `teensy`, `avrdude`, `dfu-util`, or `bootloadHID` compile and upload the firmware to the keyboard. If the compilation fails, then nothing will be uploaded. The programmer to use depends on the keyboard. For most keyboards it's `dfu`, but for ChibiOS keyboards you should use `dfu-util`, and `teensy` for standard Teensys. To find out which command you should use for your keyboard, check the keyboard specific readme.
* **Note**: some operating systems need root access for these commands to work, so in that case you need to run for example `sudo make planck/rev4:default:flash`. Visit the [Flashing Firmware](flashing.md) guide for more details of the available bootloaders.
* **Note**: some operating systems need privileged access for these commands to work. This means that you may need to setup [`udev rules`](faq_build.md#linux-udev-rules) to access these without root access, or to run the command with root access (`sudo make planck/rev4:default:flash`).
* `clean`, cleans the build output folders to make sure that everything is built from scratch. Run this before normal compilation if you have some unexplainable problems. * `clean`, cleans the build output folders to make sure that everything is built from scratch. Run this before normal compilation if you have some unexplainable problems.
* `distclean` removes .hex files and .bin files.
The following targets are for developers:
* `show-path` shows the path of the source and object files.
* `dump-vars` dumps the makefile variable.
* `objs-size` displays the size of individual object files.
* `show_build_options` shows the options set in 'rules.mk'.
* `check-md5` displays the md5 checksum of the generated binary file.
You can also add extra options at the end of the make command line, after the target You can also add extra options at the end of the make command line, after the target
* `make COLOR=false` - turns off color output * `make COLOR=false` - turns off color output
* `make SILENT=true` - turns off output besides errors/warnings * `make SILENT=true` - turns off output besides errors/warnings
* `make VERBOSE=true` - outputs all of the gcc stuff (not interesting, unless you need to debug) * `make VERBOSE=true` - outputs all of the gcc stuff (not interesting, unless you need to debug)
* `make EXTRAFLAGS=-E` - Preprocess the code without doing any compiling (useful if you are trying to debug #define commands) * `make VERBOSE_LD_CMD=yes` - execute the ld command with the -v option.
* `make VERBOSE_AS_CMD=yes` - execute the as command with the -v option.
* `make VERBOSE_C_CMD=<c_source_file>` - add the -v option when compiling the specified C source file.
* `make DUMP_C_MACROS=<c_source_file>` - dump preprocessor macros when compiling the specified C source file.
* `make DUMP_C_MACROS=<c_source_file> > <logfile>` - dump preprocessor macros to `<logfile>` when compiling the specified C source file.
* `make VERBOSE_C_INCLUDE=<c_source_file>` - dumps the file names to be included when compiling the specified C source file.
* `make VERBOSE_C_INCLUDE=<c_source_file> 2> <logfile>` - dumps the file names to be included to `<logfile>` when compiling the specified C source file.
The make command itself also has some additional options, type `make --help` for more information. The most useful is probably `-jx`, which specifies that you want to compile using more than one CPU, the `x` represents the number of CPUs that you want to use. Setting that can greatly reduce the compile times, especially if you are compiling many keyboards/keymaps. I usually set it to one less than the number of CPUs that I have, so that I have some left for doing other things while it's compiling. Note that not all operating systems and make versions supports that option. The make command itself also has some additional options, type `make --help` for more information. The most useful is probably `-jx`, which specifies that you want to compile using more than one CPU, the `x` represents the number of CPUs that you want to use. Setting that can greatly reduce the compile times, especially if you are compiling many keyboards/keymaps. I usually set it to one less than the number of CPUs that I have, so that I have some left for doing other things while it's compiling. Note that not all operating systems and make versions supports that option.

View File

@@ -4,11 +4,11 @@ This project includes a `Vagrantfile` that will allow you to build a new firmwar
## Requirements ## Requirements
Using the `Vagrantfile` in this repository requires you have [Vagrant](http://www.vagrantup.com/) as well as a supported provider installed: Using the `Vagrantfile` in this repository requires you have [Vagrant](https://www.vagrantup.com/) as well as a supported provider installed:
* [VirtualBox](https://www.virtualbox.org/) (Version at least 5.0.12) * [VirtualBox](https://www.virtualbox.org/) (Version at least 5.0.12)
* Sold as 'the most accessible platform to use Vagrant' * Sold as 'the most accessible platform to use Vagrant'
* [VMware Workstation](https://www.vmware.com/products/workstation) and [Vagrant VMware plugin](http://www.vagrantup.com/vmware) * [VMware Workstation](https://www.vmware.com/products/workstation) and [Vagrant VMware plugin](https://www.vagrantup.com/vmware)
* The (paid) VMware plugin requires a licensed copy of VMware Workstation/Fusion * The (paid) VMware plugin requires a licensed copy of VMware Workstation/Fusion
* [Docker](https://www.docker.com/) * [Docker](https://www.docker.com/)

View File

@@ -39,7 +39,7 @@ It is fairly simple to plan for an ortholinear keyboard (like a Planck).
![Example Planck matrix](https://i.imgur.com/FRShcLD.png) ![Example Planck matrix](https://i.imgur.com/FRShcLD.png)
Image from [RoastPotatoes' "How to hand wire a Planck"](https://blog.roastpotatoes.co/guide/2015/11/04/how-to-handwire-a-planck/) Image from [RoastPotatoes' "How to hand wire a Planck"](https://blog.roastpotatoes.co/guide/2015/11/04/how-to-handwire-a-planck/)
But the larger and more complicated your keyboard, the more complex the matrix. [Keyboard Firmware Builder](https://kbfirmware.com/) can help you plan your matrix layout (shown here with a basic fullsize ISO keyboard imported from [Keyboard Layout Editor](http://www.keyboard-layout-editor.com). But the larger and more complicated your keyboard, the more complex the matrix. [Keyboard Firmware Builder](https://kbfirmware.com/) can help you plan your matrix layout (shown here with a basic fullsize ISO keyboard imported from [Keyboard Layout Editor](https://www.keyboard-layout-editor.com).
![Example ISO matrix](https://i.imgur.com/UlJ4ZDP.png) ![Example ISO matrix](https://i.imgur.com/UlJ4ZDP.png)
@@ -76,9 +76,9 @@ Established materials and techniques include:
| :-----------| :------- | :------ | :--- | :--- | :-----------| :------- | :------ | :--- | :---
| Lengths of wire with stripped segments | [Sasha Solomon's Dactyl](https://medium.com/@sachee/building-my-first-keyboard-and-you-can-too-512c0f8a4c5f) and [Cribbit's modern hand wire](https://geekhack.org/index.php?topic=87689.0) | Neat and tidy | Some effort in stripping the wire | ![Stripped wire](https://i.imgur.com/0GNIYY0.jpg) | Lengths of wire with stripped segments | [Sasha Solomon's Dactyl](https://medium.com/@sachee/building-my-first-keyboard-and-you-can-too-512c0f8a4c5f) and [Cribbit's modern hand wire](https://geekhack.org/index.php?topic=87689.0) | Neat and tidy | Some effort in stripping the wire | ![Stripped wire](https://i.imgur.com/0GNIYY0.jpg)
| Short lengths of wire | [u/xicolinguada's ortho build](https://www.reddit.com/r/MechanicalKeyboards/comments/c39k4f/my_first_hand_wired_keyboard_its_not_perfect_but/) | Easier to strip the wire | More difficult to place | ![individual wire lengths](https://i.imgur.com/mBe5vkL.jpg) | Short lengths of wire | [u/xicolinguada's ortho build](https://www.reddit.com/r/MechanicalKeyboards/comments/c39k4f/my_first_hand_wired_keyboard_its_not_perfect_but/) | Easier to strip the wire | More difficult to place | ![individual wire lengths](https://i.imgur.com/mBe5vkL.jpg)
| Magnet/Enamelled wire | [Brett Kosinski's handwired alpha](http://blog.b-ark.ca/Blog-2019-01-27) and [fknraiden's custom board](https://geekhack.org/index.php?topic=74223.0) | Can be directly soldered onto (insulation burns off with heat) | Appearance? | ![Magnet wire](https://i.imgur.com/b4b7KDb.jpg) | Magnet/Enamelled wire | [fknraiden's custom board](https://geekhack.org/index.php?topic=74223.0) | Can be directly soldered onto (insulation burns off with heat) | Appearance? | ![Magnet wire](https://i.imgur.com/b4b7KDb.jpg)
| Bending the legs of the diodes for the rows | [Matt3o's Brownfox](https://deskthority.net/viewtopic.php?f=7&t=6050) | Fewer solder joints required | Uninsulated | ![Bent diode legs](https://i.imgur.com/aTnG8TV.jpg) | Bending the legs of the diodes for the rows | [Matt3o's Brownfox](https://deskthority.net/viewtopic.php?f=7&t=6050) | Fewer solder joints required | Uninsulated | ![Bent diode legs](https://i.imgur.com/aTnG8TV.jpg)
| Using ridid wiring (e.g. brass tube) | [u/d_stilgar's invisible hardline](https://www.reddit.com/r/MechanicalKeyboards/comments/8aw5j2/invisible_hardline_keyboard_progress_update_april/) and [u/jonasfasler's first attempt](https://www.reddit.com/r/MechanicalKeyboards/comments/de1jyv/my_first_attempt_at_handwiring_a_keyboard/) | Very pretty | More difficult. No physical insulation | ![Hardline hand wire](https://i.imgur.com/CnASmPo.jpg) | Using rigid wiring (e.g. brass tube) | [u/d_stilgar's invisible hardline](https://www.reddit.com/r/MechanicalKeyboards/comments/8aw5j2/invisible_hardline_keyboard_progress_update_april/) and [u/jonasfasler's first attempt](https://www.reddit.com/r/MechanicalKeyboards/comments/de1jyv/my_first_attempt_at_handwiring_a_keyboard/) | Very pretty | More difficult. No physical insulation | ![Hardline hand wire](https://i.imgur.com/CnASmPo.jpg)
| Bare wire with insulation added after (e.g. kapton tape) | [Matt3o's 65% on his website](https://matt3o.com/hand-wiring-a-custom-keyboard/) | Easier (no wire stripping required) | Not as attractive | ![Bare wire](https://i.imgur.com/AvXZShD.jpg) | Bare wire with insulation added after (e.g. kapton tape) | [Matt3o's 65% on his website](https://matt3o.com/hand-wiring-a-custom-keyboard/) | Easier (no wire stripping required) | Not as attractive | ![Bare wire](https://i.imgur.com/AvXZShD.jpg)
| Copper tape | [ManuForm Dactyl](https://github.com/tshort/dactyl-keyboard) | Very easy | Only really works when your plate/case aligns with the bottom of your switches | ![Copper tape](https://i.imgur.com/RFyNMlL.jpg) | Copper tape | [ManuForm Dactyl](https://github.com/tshort/dactyl-keyboard) | Very easy | Only really works when your plate/case aligns with the bottom of your switches | ![Copper tape](https://i.imgur.com/RFyNMlL.jpg)
@@ -121,7 +121,7 @@ Letting the diode rest, grab your solder, and touch both it and the soldering ir
The smoke that the rosin releases is harmful, so be careful not to breath it or get it in your eyes/face. The smoke that the rosin releases is harmful, so be careful not to breath it or get it in your eyes/face.
After soldering things in place, it may be helpful to blow on the joint to push the smoke away from your face, and cool the solder quicker. You should see the solder develop a matte (not shiny) surface as it solidifies. Keep in mind that it will still be very hot afterwards, and will take a couple minutes to be cool to touch. Blow on it will accelerate this process. After soldering things in place, it may be helpful to blow on the joint to push the smoke away from your face, and cool the solder quicker. You should see the solder develop a matte (not shiny) surface as it solidifies. Keep in mind that it will still be very hot afterwards, and will take a couple minutes to be cool to touch. Blowing on it will accelerate this process.
When the first diode is complete, the next one will need to be soldered to both the keyswitch, and the previous diode at the new elbow. That will look something like this: When the first diode is complete, the next one will need to be soldered to both the keyswitch, and the previous diode at the new elbow. That will look something like this:
@@ -175,7 +175,7 @@ As you move along, be sure that the controller is staying in place - recutting a
From here, you should have a working keyboard once you program a firmware. From here, you should have a working keyboard once you program a firmware.
Simple firmware can be created easily using the [Keyboard Firmware Builder](https://kbfirmware.com/) website. Recreate your layout using [Keyboard Layout Editor](http://www.keyboard-layout-editor.com), import it and recreate the matrix (if not already done as part of [planning the matrix](#planning-the-matrix). Simple firmware can be created easily using the [Keyboard Firmware Builder](https://kbfirmware.com/) website. Recreate your layout using [Keyboard Layout Editor](https://www.keyboard-layout-editor.com), import it and recreate the matrix (if not already done as part of [planning the matrix](#planning-the-matrix).
Go through the rest of the tabs, assigning keys until you get to the last one where you can compile and download your firmware. The .hex file can be flashed straight onto your keyboard, and the .zip of source files can be modified for advanced functionality and compiled locally using the method described in [Building Your First Firmware](newbs_building_firmware?id=build-your-firmware). Go through the rest of the tabs, assigning keys until you get to the last one where you can compile and download your firmware. The .hex file can be flashed straight onto your keyboard, and the .zip of source files can be modified for advanced functionality and compiled locally using the method described in [Building Your First Firmware](newbs_building_firmware?id=build-your-firmware).
@@ -205,7 +205,7 @@ Plug in your keyboard and press the reset button (or short the Reset and Ground
## Testing Your Firmware ## Testing Your Firmware
Use a website such as [QMK Configurator's Keyboard Tester](https://config.qmk.fm/#/test), [Keyboard Tester](https://www.keyboardtester.com/tester.html), or [Keyboard Checker](http://keyboardchecker.com/) or just open a text editor and try typing - you should get the characters that you put into your keymap. Test each key, and make a note of the ones that aren't working. Here's a quick trouble-shooting guide for non-working keys: Use a website such as [QMK Configurator's Keyboard Tester](https://config.qmk.fm/#/test), [Keyboard Tester](https://www.keyboardtester.com/tester.html), or [Keyboard Checker](https://keyboardchecker.com/) or just open a text editor and try typing - you should get the characters that you put into your keymap. Test each key, and make a note of the ones that aren't working. Here's a quick trouble-shooting guide for non-working keys:
1. Flip the keyboard back over and short the keyswitch's contacts with a piece wire - this will eliminate the possibility of the keyswitch being bad and needing to be replaced. 1. Flip the keyboard back over and short the keyswitch's contacts with a piece wire - this will eliminate the possibility of the keyswitch being bad and needing to be replaced.
2. Check the solder points on the keyswitch - these need to be plump and whole. If you touch it with a moderate amount of force and it comes apart, it's not strong enough. 2. Check the solder points on the keyswitch - these need to be plump and whole. If you touch it with a moderate amount of force and it comes apart, it's not strong enough.
@@ -224,7 +224,7 @@ Once you have confirmed that the keyboard is working, if you have used a seperat
If you found this fullfilling you could experiment by adding additional features such as [in switch LEDs](https://geekhack.org/index.php?topic=94258.0), [in switch RGB](https://www.reddit.com/r/MechanicalKeyboards/comments/5s1l5u/photoskeyboard_science_i_made_a_handwired_rgb/), [RGB underglow](https://medium.com/@DavidNZ/hand-wired-custom-keyboard-cdd14429c7b3#.7a1ovebsk) or even an [OLED display!](https://www.reddit.com/r/olkb/comments/5zy7og/adding_ssd1306_oled_display_to_your_build/) If you found this fullfilling you could experiment by adding additional features such as [in switch LEDs](https://geekhack.org/index.php?topic=94258.0), [in switch RGB](https://www.reddit.com/r/MechanicalKeyboards/comments/5s1l5u/photoskeyboard_science_i_made_a_handwired_rgb/), [RGB underglow](https://medium.com/@DavidNZ/hand-wired-custom-keyboard-cdd14429c7b3#.7a1ovebsk) or even an [OLED display!](https://www.reddit.com/r/olkb/comments/5zy7og/adding_ssd1306_oled_display_to_your_build/)
There are a lot of possibilities inside the firmware - explore [docs.qmk.fm](http://docs.qmk.fm) for a full feature list, and dive into the different keyboards to see how people use all of them. You can always stop by [the OLKB subreddit](http://reddit.com/r/olkb) or [QMK Discord](https://discord.gg/Uq7gcHh) for help! There are a lot of possibilities inside the firmware - explore [docs.qmk.fm](https://docs.qmk.fm) for a full feature list, and dive into the different keyboards to see how people use all of them. You can always stop by [the OLKB subreddit](https://reddit.com/r/olkb) or [QMK Discord](https://discord.gg/Uq7gcHh) for help!
## Links to Other Guides ## Links to Other Guides
@@ -232,7 +232,7 @@ There are a lot of possibilities inside the firmware - explore [docs.qmk.fm](htt
- [Cribbit's "Modern hand wiring guide - stronger, cleaner, easier"](https://geekhack.org/index.php?topic=87689.0) - [Cribbit's "Modern hand wiring guide - stronger, cleaner, easier"](https://geekhack.org/index.php?topic=87689.0)
- [Sasha Solomon's "Building my first Keyboard"](https://medium.com/@sachee/building-my-first-keyboard-and-you-can-too-512c0f8a4c5f) - [Sasha Solomon's "Building my first Keyboard"](https://medium.com/@sachee/building-my-first-keyboard-and-you-can-too-512c0f8a4c5f)
- [RoastPotatoes' "How to hand wire a Planck"](https://blog.roastpotatoes.co/guide/2015/11/04/how-to-handwire-a-planck/) - [RoastPotatoes' "How to hand wire a Planck"](https://blog.roastpotatoes.co/guide/2015/11/04/how-to-handwire-a-planck/)
- [Masterzen's "Handwired keyboard build log"](http://www.masterzen.fr/2018/12/16/handwired-keyboard-build-log-part-1/) - [Masterzen's "Handwired keyboard build log"](https://www.masterzen.fr/2018/12/16/handwired-keyboard-build-log-part-1/)
# Legacy Content # Legacy Content

View File

@@ -32,7 +32,7 @@ This will create all the files needed to support your new keyboard, and populate
## `readme.md` ## `readme.md`
This is where you'll describe your keyboard. Please follow the [Keyboard Readme Template](documentation_templates.md#keyboard-readmemd-template) when writing your `readme.md`. You're encouraged to place an image at the top of your `readme.md`, please use an external service such as [Imgur](http://imgur.com) to host the images. This is where you'll describe your keyboard. Please follow the [Keyboard Readme Template](documentation_templates.md#keyboard-readmemd-template) when writing your `readme.md`. You're encouraged to place an image at the top of your `readme.md`, please use an external service such as [Imgur](https://imgur.com) to host the images.
## `<keyboard>.c` ## `<keyboard>.c`
@@ -77,7 +77,7 @@ Do change the `MANUFACTURER` and `PRODUCT` lines to accurately reflect your keyb
#define PRODUCT my_awesome_keyboard #define PRODUCT my_awesome_keyboard
``` ```
?> Windows and macOS will display the `MANUFACTURER` and `PRODUCT` in the list of USB devices. `lsusb` on Linux instead takes these from the list maintained by the [USB ID Repository](http://www.linux-usb.org/usb-ids.html) by default. `lsusb -v` will show the values reported by the device, and they are also present in kernel logs after plugging it in. ?> Windows and macOS will display the `MANUFACTURER` and `PRODUCT` in the list of USB devices. `lsusb` on Linux instead prefers the values in the list maintained by the [USB ID Repository](http://www.linux-usb.org/usb-ids.html). By default, it will only use `MANUFACTURER` and `PRODUCT` if the list does not contain that `VENDOR_ID` / `PRODUCT_ID`. `sudo lsusb -v` will show the values reported by the device, and they are also present in kernel logs after plugging it in.
### Keyboard Matrix Configuration ### Keyboard Matrix Configuration

View File

@@ -183,7 +183,7 @@ As an example, if you have a 60% PCB that supports ANSI and ISO you might define
In an effort to keep the repo size down we're no longer accepting binary files of any format, with few exceptions. Hosting them elsewhere (such as <https://imgur.com>) and linking them in the `readme.md` is preferred. In an effort to keep the repo size down we're no longer accepting binary files of any format, with few exceptions. Hosting them elsewhere (such as <https://imgur.com>) and linking them in the `readme.md` is preferred.
Hardware files (such as plates, cases, pcb) can be contributed to the [qmk.fm repo](https://github.com/qmk/qmk.fm) and they will be made available on [qmk.fm](http://qmk.fm). Downloadable files are stored in `/<keyboard>/` (name follows the same format as above) which are served at `http://qmk.fm/<keyboard>/`, and pages are generated from `/_pages/<keyboard>/` which are served at the same location (.md files are generated into .html files through Jekyll). Check out the `lets_split` folder for an example. Hardware files (such as plates, cases, pcb) can be contributed to the [qmk.fm repo](https://github.com/qmk/qmk.fm) and they will be made available on [qmk.fm](https://qmk.fm). Downloadable files are stored in `/<keyboard>/` (name follows the same format as above) which are served at `https://qmk.fm/<keyboard>/`, and pages are generated from `/_pages/<keyboard>/` which are served at the same location (.md files are generated into .html files through Jekyll). Check out the `lets_split` folder for an example.
## Keyboard Defaults ## Keyboard Defaults
@@ -225,7 +225,7 @@ The year should be the first year the file is created. If work was done to that
## License ## License
The core of QMK is licensed under the [GNU General Public License](https://www.gnu.org/licenses/licenses.en.html). If you are shipping binaries for AVR processors you may choose either [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) or [GPLv3](https://www.gnu.org/licenses/gpl.html). If you are shipping binaries for ARM processors you must choose [GPL Version 3](https://www.gnu.org/licenses/gpl.html) to comply with the [ChibiOS](http://www.chibios.org) GPLv3 license. The core of QMK is licensed under the [GNU General Public License](https://www.gnu.org/licenses/licenses.en.html). If you are shipping binaries for AVR processors you may choose either [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) or [GPLv3](https://www.gnu.org/licenses/gpl.html). If you are shipping binaries for ARM processors you must choose [GPL Version 3](https://www.gnu.org/licenses/gpl.html) to comply with the [ChibiOS](https://www.chibios.org) GPLv3 license.
If your keyboard makes use of the [uGFX](https://ugfx.io) features within QMK you must comply with the [uGFX License](https://ugfx.io/license.html), which requires a separate commercial license before selling a device containing uGFX. If your keyboard makes use of the [uGFX](https://ugfx.io) features within QMK you must comply with the [uGFX License](https://ugfx.io/license.html), which requires a separate commercial license before selling a device containing uGFX.

View File

@@ -10,7 +10,7 @@
## מה היא קושחת QMK? ## מה היא קושחת QMK?
QMK (*Quantum Mechanical Keyboard*) היא קהילת קוד פתוח (open source) שמתחזקת את קושחת QMK, QMK Toolbox, qmk.fm, והמסמכים המתאימים. קושחת QMK היא קושחה עבור מקלדות המבוססת על [tmk\_keyboard](http://github.com/tmk/tmk_keyboard) עם כמה תוספות עבור בקרי Atmel AVR ובאופן ספציפי יותר - [מוצרי OLKB](http://olkb.com), מקלדת [ErgoDox EZ](http://www.ergodox-ez.com), וגם [מוצרי Clueboard](http://clueboard.co/). בנוסף, הקושחה עברה פורט עבור שבבי ARM באמצעות ChibiOS. ניתן להשתמש בה על מנת להפעיל את מקלדות ה PCB המקוסטמות שלך. QMK (*Quantum Mechanical Keyboard*) היא קהילת קוד פתוח (open source) שמתחזקת את קושחת QMK, QMK Toolbox, qmk.fm, והמסמכים המתאימים. קושחת QMK היא קושחה עבור מקלדות המבוססת על [tmk\_keyboard](https://github.com/tmk/tmk_keyboard) עם כמה תוספות עבור בקרי Atmel AVR ובאופן ספציפי יותר - [מוצרי OLKB](https://olkb.com), מקלדת [ErgoDox EZ](https://www.ergodox-ez.com), וגם [מוצרי Clueboard](https://clueboard.co/). בנוסף, הקושחה עברה פורט עבור שבבי ARM באמצעות ChibiOS. ניתן להשתמש בה על מנת להפעיל את מקלדות ה PCB המקוסטמות שלך.
## איך להשיג אותה ## איך להשיג אותה
@@ -30,5 +30,5 @@ QMK (*Quantum Mechanical Keyboard*) היא קהילת קוד פתוח (open sour
## איך להתאים ## איך להתאים
לQMK יש המון [יכולות](he-il/features.md) שאפשר לנווט בהן, וכמות נכבדת של [תיעוד ודוקומנטציה](http://docs.qmk.fm) בה אפשר לנבור. רוב הפיצ׳רים באים לידי ביטוי על ידי שינוי [מיפוי המקלדת](he-il/keymap.md) ושינוי [קודי המקשים](he-il/keycodes.md). לQMK יש המון [יכולות](he-il/features.md) שאפשר לנווט בהן, וכמות נכבדת של [תיעוד ודוקומנטציה](https://docs.qmk.fm) בה אפשר לנבור. רוב הפיצ׳רים באים לידי ביטוי על ידי שינוי [מיפוי המקלדת](he-il/keymap.md) ושינוי [קודי המקשים](he-il/keycodes.md).
</div> </div>

View File

@@ -7,15 +7,15 @@ GitHub עלול להיות קצת טריקי למי שלא מכיר את העב
התחילו ב- [עמוד של QMK ב-GitHub](https://github.com/qmk/qmk_firmware), ותצמאו כפתור בחלק העליון מימין עם התיכוב "Fork": התחילו ב- [עמוד של QMK ב-GitHub](https://github.com/qmk/qmk_firmware), ותצמאו כפתור בחלק העליון מימין עם התיכוב "Fork":
![Fork ב-GitHub](http://i.imgur.com/8Toomz4.jpg) ![Fork ב-GitHub](https://i.imgur.com/8Toomz4.jpg)
אם אתם חלק מארגון, תצטרכו לבחור לאיזה חשבון לבצע פעולת fork. ברוב המבקרים, תרצו לבצע fork לתוך החשבון הפרטי שלכם. ברגע שה-fork הסתיים (לפעמים זה יכול לקחת קצת זמן) הקליקו על כפתור ה-"Clone or Download": אם אתם חלק מארגון, תצטרכו לבחור לאיזה חשבון לבצע פעולת fork. ברוב המבקרים, תרצו לבצע fork לתוך החשבון הפרטי שלכם. ברגע שה-fork הסתיים (לפעמים זה יכול לקחת קצת זמן) הקליקו על כפתור ה-"Clone or Download":
![הורדה מ-GitHub](http://i.imgur.com/N1NYcSz.jpg) ![הורדה מ-GitHub](https://i.imgur.com/N1NYcSz.jpg)
תוודאו שאתם בוחרים באופצייה של "HTTPS", בחרו את הקישור והעתיקו אותו: תוודאו שאתם בוחרים באופצייה של "HTTPS", בחרו את הקישור והעתיקו אותו:
![קישור HTTPS](http://i.imgur.com/eGO0ohO.jpg) ![קישור HTTPS](https://i.imgur.com/eGO0ohO.jpg)
מכאן והלאה, הקיש `git clone --recurse-submodules ` בשורת הפקודה והדביקו את הלינק שלכם: מכאן והלאה, הקיש `git clone --recurse-submodules ` בשורת הפקודה והדביקו את הלינק שלכם:
@@ -65,11 +65,11 @@ To https://github.com/whoeveryouare/qmk_firmware.git
השינויים שלכם יופיעו ב-fork שלכם ב-GitHub - אם תחזרו לשם (`https://github.com/<whoeveryouare>/qmk_firmware`), תוכלו ליצור "Pull Request חדש" ע״י הקשה על הכפתור הבא: השינויים שלכם יופיעו ב-fork שלכם ב-GitHub - אם תחזרו לשם (`https://github.com/<whoeveryouare>/qmk_firmware`), תוכלו ליצור "Pull Request חדש" ע״י הקשה על הכפתור הבא:
![Pull Request חדש](http://i.imgur.com/DxMHpJ8.jpg) ![Pull Request חדש](https://i.imgur.com/DxMHpJ8.jpg)
כאן תוכלו לראות בדיוק למה עשיתם commit - אם הכל נראה תקין, תוכלו להשלים את הפעולה ע״י הקשה על "Create Pull Request": כאן תוכלו לראות בדיוק למה עשיתם commit - אם הכל נראה תקין, תוכלו להשלים את הפעולה ע״י הקשה על "Create Pull Request":
![צרו Pull Request](http://i.imgur.com/Ojydlaj.jpg) ![צרו Pull Request](https://i.imgur.com/Ojydlaj.jpg)
אחרי שהגשתם, אנו עלולים לפנות אליכם לגבי השינויים שהצעתם, נבקש שתבצעו שינויים ובסופו של דבר נקבל את השינויים! תודה שתרמתם לפרוייקט QMK :) אחרי שהגשתם, אנו עלולים לפנות אליכם לגבי השינויים שהצעתם, נבקש שתבצעו שינויים ובסופו של דבר נקבל את השינויים! תודה שתרמתם לפרוייקט QMK :)
</div> </div>

View File

@@ -1,7 +1,7 @@
<div dir="rtl" markdown="1"> <div dir="rtl" markdown="1">
# חומרה # חומרה
QMK רצה על מגוון של חומרות. אם המעבד שלך יכול להיות ממוקד (מטורגט) ע״י [LUFA](http://www.fourwalledcubicle.com/LUFA.php) או [ChibiOS](http://www.chibios.com) כנראה שתוכל לגרום ל QMK לרוץ על המעבד. קטע זה מדבר על הרצת QMK, ותקשורת עם, סוגים שונים של חומרות. QMK רצה על מגוון של חומרות. אם המעבד שלך יכול להיות ממוקד (מטורגט) ע״י [LUFA](https://www.fourwalledcubicle.com/LUFA.php) או [ChibiOS](https://www.chibios.org) כנראה שתוכל לגרום ל QMK לרוץ על המעבד. קטע זה מדבר על הרצת QMK, ותקשורת עם, סוגים שונים של חומרות.
* [מדריך למקלדת](hardware_keyboard_guidelines.md) * [מדריך למקלדת](hardware_keyboard_guidelines.md)
* [מעבדי AVR](hardware_avr.md) * [מעבדי AVR](hardware_avr.md)

View File

@@ -95,5 +95,5 @@ Further reading:
- [Wikipedia article](https://en.wikipedia.org/wiki/Keyboard_matrix_circuit) - [Wikipedia article](https://en.wikipedia.org/wiki/Keyboard_matrix_circuit)
- [Deskthority article](https://deskthority.net/wiki/Keyboard_matrix) - [Deskthority article](https://deskthority.net/wiki/Keyboard_matrix)
- [Keyboard Matrix Help by Dave Dribin (2000)](https://www.dribin.org/dave/keyboard/one_html/) - [Keyboard Matrix Help by Dave Dribin (2000)](https://www.dribin.org/dave/keyboard/one_html/)
- [How Key Matrices Works by PCBheaven](http://pcbheaven.com/wikipages/How_Key_Matrices_Works/) (animated examples) - [How Key Matrices Works by PCBheaven](https://pcbheaven.com/wikipages/How_Key_Matrices_Works/) (animated examples)
- [How keyboards work - QMK documentation](how_keyboards_work.md) - [How keyboards work - QMK documentation](how_keyboards_work.md)

View File

@@ -20,7 +20,7 @@ The following functions can provide basic control of GPIOs and are found in `qua
## Advanced Settings :id=advanced-settings ## Advanced Settings :id=advanced-settings
Each microcontroller can have multiple advanced settings regarding its GPIO. This abstraction layer does not limit the use of architecture-specific functions. Advanced users should consult the datasheet of their desired device and include any needed libraries. For AVR, the standard avr/io.h library is used; for STM32, the ChibiOS [PAL library](http://chibios.sourceforge.net/docs3/hal/group___p_a_l.html) is used. Each microcontroller can have multiple advanced settings regarding its GPIO. This abstraction layer does not limit the use of architecture-specific functions. Advanced users should consult the datasheet of their desired device and include any needed libraries. For AVR, the standard avr/io.h library is used; for STM32, the ChibiOS [PAL library](https://chibios.sourceforge.net/docs3/hal/group___p_a_l.html) is used.
## Atomic Operation ## Atomic Operation

View File

@@ -246,7 +246,7 @@ To set this add `-U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xCB:m` to your
avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xCB:m avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xCB:m
If you are using a different controller or want different configuration, you can use [this AVR Fuse Calculator](http://www.engbedded.com/fusecalc/) to find a better value for you. If you are using a different controller or want different configuration, you can use [this AVR Fuse Calculator](https://www.engbedded.com/fusecalc/) to find a better value for you.
## Help ## Help

View File

@@ -103,6 +103,7 @@
* [DIP スイッチ](ja/feature_dip_switch.md) * [DIP スイッチ](ja/feature_dip_switch.md)
* [エンコーダ](ja/feature_encoders.md) * [エンコーダ](ja/feature_encoders.md)
* [触覚フィードバック](ja/feature_haptic_feedback.md) * [触覚フィードバック](ja/feature_haptic_feedback.md)
* [LED インジケータ](ja/feature_led_indicators.md)
* [Proton C 変換](ja/proton_c_conversion.md) * [Proton C 変換](ja/proton_c_conversion.md)
* [PS/2 マウス](ja/feature_ps2_mouse.md) * [PS/2 マウス](ja/feature_ps2_mouse.md)
* [分割キーボード](ja/feature_split_keyboard.md) * [分割キーボード](ja/feature_split_keyboard.md)

View File

@@ -33,7 +33,7 @@
キーマップをファームウェアにコンパイルするには、単純に JSON を `/v1/compile` エンドポイントに POST します。以下の例では、JSON ペイロードを `json_data` という名前のファイルに配置しています。 キーマップをファームウェアにコンパイルするには、単純に JSON を `/v1/compile` エンドポイントに POST します。以下の例では、JSON ペイロードを `json_data` という名前のファイルに配置しています。
``` ```
$ curl -H "Content-Type: application/json" -X POST -d "$(< json_data)" http://api.qmk.fm/v1/compile $ curl -H "Content-Type: application/json" -X POST -d "$(< json_data)" https://api.qmk.fm/v1/compile
{ {
"enqueued": true, "enqueued": true,
"job_id": "ea1514b3-bdfc-4a7b-9b5c-08752684f7f6" "job_id": "ea1514b3-bdfc-4a7b-9b5c-08752684f7f6"
@@ -45,7 +45,7 @@ $ curl -H "Content-Type: application/json" -X POST -d "$(< json_data)" http://ap
キーマップをサブミットした後で、簡単な HTTP GET 呼び出しを使って状態をチェックすることができます: キーマップをサブミットした後で、簡単な HTTP GET 呼び出しを使って状態をチェックすることができます:
``` ```
$ curl http://api.qmk.fm/v1/compile/ea1514b3-bdfc-4a7b-9b5c-08752684f7f6 $ curl https://api.qmk.fm/v1/compile/ea1514b3-bdfc-4a7b-9b5c-08752684f7f6
{ {
"created_at": "Sat, 19 Aug 2017 21:39:12 GMT", "created_at": "Sat, 19 Aug 2017 21:39:12 GMT",
"enqueued_at": "Sat, 19 Aug 2017 21:39:12 GMT", "enqueued_at": "Sat, 19 Aug 2017 21:39:12 GMT",

View File

@@ -5,7 +5,7 @@
git diff 0.9.50 HEAD -- docs/api_overview.md | cat git diff 0.9.50 HEAD -- docs/api_overview.md | cat
--> -->
QMK API は、Web と GUI ツールが [QMK](http://qmk.fm/) によってサポートされるキーボード用の任意のキーマップをコンパイルするために使うことができる、非同期 API を提供します。標準のキーマップテンプレートは、C コードのサポートを必要としない全ての QMK キーコードをサポートします。キーボードのメンテナは独自のカスタムテンプレートを提供して、より多くの機能を実現することができます。 QMK API は、Web と GUI ツールが [QMK](https://qmk.fm/) によってサポートされるキーボード用の任意のキーマップをコンパイルするために使うことができる、非同期 API を提供します。標準のキーマップテンプレートは、C コードのサポートを必要としない全ての QMK キーコードをサポートします。キーボードのメンテナは独自のカスタムテンプレートを提供して、より多くの機能を実現することができます。
## アプリケーション開発者 ## アプリケーション開発者

View File

@@ -54,7 +54,7 @@ int foo(void) {
[Clang-format](https://clang.llvm.org/docs/ClangFormat.html) は LLVM の一部で、誰もが手動で整形するほど暇ではないため、コードを自動整形することができます。私たちは、上記のコーディング規約のほとんどを適用する設定ファイルを提供しています。空白と改行のみを変更するため、省略可能な括弧は自分で付け加えることを忘れないでください。 [Clang-format](https://clang.llvm.org/docs/ClangFormat.html) は LLVM の一部で、誰もが手動で整形するほど暇ではないため、コードを自動整形することができます。私たちは、上記のコーディング規約のほとんどを適用する設定ファイルを提供しています。空白と改行のみを変更するため、省略可能な括弧は自分で付け加えることを忘れないでください。
Windows で clang-format を入手するには [full LLVM インストーラ](http://llvm.org/builds/)を使い、Ubuntu では `sudo apt install clang-format` を使ってください。 Windows で clang-format を入手するには [full LLVM インストーラ](https://llvm.org/builds/)を使い、Ubuntu では `sudo apt install clang-format` を使ってください。
コマンドラインから実行する場合、オプションとして `-style=file` を渡すと、QMK ルートディレクトリ内の .clang-format 設定ファイルを自動的に見つけます。 コマンドラインから実行する場合、オプションとして `-style=file` を渡すと、QMK ルートディレクトリ内の .clang-format 設定ファイルを自動的に見つけます。

View File

@@ -23,7 +23,7 @@ QMK は十分な容量のフラッシュメモリを備えた USB 対応 AVR ま
## ARM ## ARM
[ChibiOS](http://www.chibios.org) がサポートする USB 付きの ARM チップを使うこともできます。ほとんどのチップには十分な容量のフラッシュメモリがあります。動作するとわかっているのは: [ChibiOS](https://www.chibios.org) がサポートする USB 付きの ARM チップを使うこともできます。ほとんどのチップには十分な容量のフラッシュメモリがあります。動作するとわかっているのは:
### STMicroelectronics (STM32) ### STMicroelectronics (STM32)

View File

@@ -28,7 +28,7 @@ QMK について質問したい場合は、[OLKB Subreddit](https://reddit.com/r
# プロジェクトの概要 :id=project-overview # プロジェクトの概要 :id=project-overview
QMK は主に C で書かれており、特定の機能と部品は C++ で書かれています。QMK は、キーボードの中の組み込みプロセッサ、特に AVR ([LUFA](http://www.fourwalledcubicle.com/LUFA.php)) と ARM ([ChibiOS](http://www.chibios.com)) を対象にしています。すでに Arduino プログラミングに精通している場合は、多くの概念と制限がおなじみのものです。QMK に貢献するには Arduino を使用した経験は必要ありません。 QMK は主に C で書かれており、特定の機能と部品は C++ で書かれています。QMK は、キーボードの中の組み込みプロセッサ、特に AVR ([LUFA](https://www.fourwalledcubicle.com/LUFA.php)) と ARM ([ChibiOS](https://www.chibios.org)) を対象にしています。すでに Arduino プログラミングに精通している場合は、多くの概念と制限がおなじみのものです。QMK に貢献するには Arduino を使用した経験は必要ありません。
<!-- FIXME: We should include a list of resources for learning C here. --> <!-- FIXME: We should include a list of resources for learning C here. -->

View File

@@ -1,8 +1,8 @@
# キーボードの挙動をカスタマイズする方法 # キーボードの挙動をカスタマイズする方法
<!--- <!---
original document: 0.10.33:docs/custom_quantum_functions.md original document: 0.10.52:docs/custom_quantum_functions.md
git diff 0.10.33 HEAD -- docs/custom_quantum_functions.md | cat git diff 0.10.52 HEAD -- docs/custom_quantum_functions.md | cat
--> -->
多くの人にとって、カスタムキーボードはボタンの押下をコンピュータに送信するだけではありません。単純なボタンの押下やマクロよりも複雑なことを実行できるようにしたいでしょう。QMK にはコードを挿入したり、機能を上書きしたり、様々な状況でキーボードの挙動をカスタマイズできるフックがあります。 多くの人にとって、カスタムキーボードはボタンの押下をコンピュータに送信するだけではありません。単純なボタンの押下やマクロよりも複雑なことを実行できるようにしたいでしょう。QMK にはコードを挿入したり、機能を上書きしたり、様々な状況でキーボードの挙動をカスタマイズできるフックがあります。
@@ -93,106 +93,6 @@ keyrecord_t record {
} }
``` ```
# LED 制御
QMK は HID 仕様で定義された5つの LED の読み取りメソッドを提供します:
* Num Lock
* Caps Lock
* Scroll Lock
* Compose
* Kana
ロック LED の状態を取得するには2つの方法があります:
* `bool led_update_kb(led_t led_state)` あるいは `_user(led_t led_state)` を実装する、または
* `led_t host_keyboard_led_state()` を呼び出す
!> `host_keyboard_led_state()``led_update_user()` が呼ばれる前に新しい値を既に反映している場合があります。
LED の状態を `uint8_t` として提供する2つの非推奨の関数があります:
* `uint8_t led_set_kb(uint8_t usb_led)``_user(uint8_t usb_led)`
* `uint8_t host_keyboard_leds()`
## `led_update_user()`
この関数はこれら5つの LED のいずれかの状態が変化すると呼ばれます。LED の状態を構造体のパラメータとして受け取ります。
慣例により、`led_update_kb()` にそのコードを実行するようフックさせるために `led_update_user()` から `true` を返し、`led_update_kb()` でコードを実行したくない場合は `false` を返します。
以下はいくつかの例です:
- レイヤー表示のような何かのために LED を使うために LED を上書きする
- `_kb()` 関数を実行したくないので、`false` を返します。これはレイヤーの挙動を上書きするためです。
- LED がオンあるいはオフになった時に音楽を再生する。
- `_kb` 関数を実行したいので、`true` を返します。これはデフォルトの LED の挙動に追加されます。
?> `led_set_*` 関数は `bool` の代わりに `void` を返すため、キーボードの LED 制御を上書きすることができません。従って、代わりに `led_update_*` を使うことをお勧めします。
### `led_update_kb()` の実装例
```c
bool led_update_kb(led_t led_state) {
bool res = led_update_user(led_state);
if(res) {
// writePin は 1 でピンを high に、0 で low に設定します。
// この例では、ピンは反転していて、
// low/0 は LED がオンになり、high/1 は LED がオフになります。
// この挙動は、LED がピンと VCC の間にあるか、ピンと GND の間にあるかどうかに依存します。
writePin(B0, !led_state.num_lock);
writePin(B1, !led_state.caps_lock);
writePin(B2, !led_state.scroll_lock);
writePin(B3, !led_state.compose);
writePin(B4, !led_state.kana);
}
return res;
}
```
### `led_update_user()` の実装例
この不完全な例は Caps Lock がオンまたはオフになった場合に音を再生します。また LED の状態を保持する必要があるため、`true` を返します。
```c
#ifdef AUDIO_ENABLE
float caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND);
float caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND);
#endif
bool led_update_user(led_t led_state) {
#ifdef AUDIO_ENABLE
static uint8_t caps_state = 0;
if (caps_state != led_state.caps_lock) {
led_state.caps_lock ? PLAY_SONG(caps_on) : PLAY_SONG(caps_off);
caps_state = led_state.caps_lock;
}
#endif
return true;
}
```
### `led_update_*` 関数のドキュメント
* キーボード/リビジョン: `bool led_update_kb(led_t led_state)`
* キーマップ: `bool led_update_user(led_t led_state)`
## `host_keyboard_led_state()`
最後に受信した LED の状態を `led_t` として取得するためにこの関数を呼びます。これは、`led_update_*` の外部から、例えば [`matrix_scan_user()`](#matrix-scanning-code) の中で LED の状態を読み取るのに便利です。
## 物理的な LED の状態の設定
一部のキーボードの実装は、物理的な LED の状態を設定するための便利なメソッドを提供しています。
### Ergodox キーボード
Ergodox の実装は、個々の LED をオンあるいはオフにするために `ergodox_right_led_1`/`2`/`3_on`/`off()` と、インデックスによってそれらをオンあるいはオフにするために `ergodox_right_led_on`/`off(uint8_t led)` を提供します。
さらに、LED の明度を指定することができます。全ての LED に同じ明度を指定するなら `ergodox_led_all_set(uint8_t n)` を使い、個別の LED の明度を指定するなら `ergodox_right_led_1`/`2`/`3_set(uint8_t n)` を使い、LED のインデックスを指定して明度を指定するには `ergodox_right_led_set(uint8_t led, uint8_t n)` を使います。
Ergodox キーボードは、最低の明度として `LED_BRIGHTNESS_LO` を、最高の輝度(これはデフォルトです)として `LED_BRIGHTNESS_HI` も定義しています。
# キーボードの初期化コード # キーボードの初期化コード
キーボードの初期化プロセスには幾つかのステップがあります。何をしたいかによって、どの関数を使うべきかに影響します。 キーボードの初期化プロセスには幾つかのステップがあります。何をしたいかによって、どの関数を使うべきかに影響します。
@@ -347,7 +247,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
} }
``` ```
特定のレイヤーの状態を確認するには、 `IS_LAYER_ON_STATE(state, layer)``IS_LAYER_OFF_STATE(state, layer)` マクロを使います。 特定のレイヤーの状態を確認するには、`IS_LAYER_ON_STATE(state, layer)``IS_LAYER_OFF_STATE(state, layer)` マクロを使います。
`layer_state_set_*` 関数の外では、グローバルなレイヤー状態を確認するために `IS_LAYER_ON(layer)``IS_LAYER_OFF(layer)` マクロを使えます。 `layer_state_set_*` 関数の外では、グローバルなレイヤー状態を確認するために `IS_LAYER_ON(layer)``IS_LAYER_OFF(layer)` マクロを使えます。

View File

@@ -9,12 +9,12 @@
## キーマップ `readme.md` テンプレート :id=keyboard-readmemd-template ## キーマップ `readme.md` テンプレート :id=keyboard-readmemd-template
ほとんどのキーマップには、レイアウトを表す画像があります。画像を作成するには、[Keyboard Layout Editor](http://keyboard-layout-editor.com) を使うことができます。画像は [Imgur](http://imgur.com) や別のホスティングサービスにアップロードし、プルリクエストに画像を含めないでください。 ほとんどのキーマップには、レイアウトを表す画像があります。画像を作成するには、[Keyboard Layout Editor](https://keyboard-layout-editor.com) を使うことができます。画像は [Imgur](https://imgur.com) や別のホスティングサービスにアップロードし、プルリクエストに画像を含めないでください。
画像の下には、キーマップを理解してもらうための簡単な説明文を書いてください。 画像の下には、キーマップを理解してもらうための簡単な説明文を書いてください。
``` ```
![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png) ![Clueboard Layout Image](https://i.imgur.com/7Capi8W.png)
# Default Clueboard Layout # Default Clueboard Layout
@@ -29,9 +29,9 @@ the Ctrl, Alt, or GUI modifiers are held down.
``` ```
# Planck # Planck
![Planck](http://i.imgur.com/q2M3uEU.jpg) ![Planck](https://i.imgur.com/q2M3uEU.jpg)
A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/) A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](https://qmk.fm/planck/)
* Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert) * Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
* Hardware Supported: Planck PCB rev1, rev2, rev3, rev4, Teensy 2.0 * Hardware Supported: Planck PCB rev1, rev2, rev3, rev4, Teensy 2.0

View File

@@ -125,8 +125,8 @@ QMK のほとんどのキーボードは、vendor ID として、`0xFEED` を使
https://github.com/tmk/tmk_keyboard/issues/150 https://github.com/tmk/tmk_keyboard/issues/150
ここで本当にユニークな VID:PID を買うことができます。個人的な使用にはこれは必要ないと思います。 ここで本当にユニークな VID:PID を買うことができます。個人的な使用にはこれは必要ないと思います。
- http://www.obdev.at/products/vusb/license.html - https://www.obdev.at/products/vusb/license.html
- http://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1 - https://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1
### キーボードに書き込んだが何も起こらない、あるいはキーの押下が登録されない - ARM (rev6 planck、clueboard 60、hs60v2 など) でも同じ (Feb 2019) ### キーボードに書き込んだが何も起こらない、あるいはキーの押下が登録されない - ARM (rev6 planck、clueboard 60、hs60v2 など) でも同じ (Feb 2019)
ARM ベースのチップ上での EEPROM の動作によって、保存された設定が無効になる場合があります。これはデフォルトレイヤに影響し、まだ調査中の特定の環境下でキーボードが使えなくなる*しれません*。EEPROM のリセットでこれが修正されます。 ARM ベースのチップ上での EEPROM の動作によって、保存された設定が無効になる場合があります。これはデフォルトレイヤに影響し、まだ調査中の特定の環境下でキーボードが使えなくなる*しれません*。EEPROM のリセットでこれが修正されます。

View File

@@ -79,8 +79,8 @@ https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switc
## TrackPoint はリセット回路が必要です (PS/2 マウスサポート) ## TrackPoint はリセット回路が必要です (PS/2 マウスサポート)
リセット回路が無いとハードウェアの不適切な初期化のために一貫性の無い結果になります。TPM754 の回路図を見てください。 リセット回路が無いとハードウェアの不適切な初期化のために一貫性の無い結果になります。TPM754 の回路図を見てください。
- http://geekhack.org/index.php?topic=50176.msg1127447#msg1127447 - https://geekhack.org/index.php?topic=50176.msg1127447#msg1127447
- http://www.mikrocontroller.net/attachment/52583/tpm754.pdf - https://www.mikrocontroller.net/attachment/52583/tpm754.pdf
## 16 を超えるマトリックの列を読み込めない ## 16 を超えるマトリックの列を読み込めない
@@ -88,7 +88,7 @@ https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switc
C では、AVR の場合 `1` は [16 bit] である [int] 型の1を意味し、15 を超えて左にシフトすることはできません。`1<<16` すると予期しないゼロが発生します。`1UL` として [unsigned long] 型を使う必要があります。 C では、AVR の場合 `1` は [16 bit] である [int] 型の1を意味し、15 を超えて左にシフトすることはできません。`1<<16` すると予期しないゼロが発生します。`1UL` として [unsigned long] 型を使う必要があります。
http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 https://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279
## 特別なエクストラキーが動作しない (システム、オーディオコントロールキー) ## 特別なエクストラキーが動作しない (システム、オーディオコントロールキー)
QMK でそれらを使うには、`rules.mk` 内で `EXTRAKEY_ENABLE` を定義する必要があります。 QMK でそれらを使うには、`rules.mk` 内で `EXTRAKEY_ENABLE` を定義する必要があります。
@@ -107,8 +107,8 @@ Windows では、**デバイスマネージャ**の**電源の管理**タブ内
**Arduino のピンの命名は実際のチップと異なることに注意してください。** 例えば、Arduino のピン `D0``PD0` ではありません。回路図を自身で確認してください。 **Arduino のピンの命名は実際のチップと異なることに注意してください。** 例えば、Arduino のピン `D0``PD0` ではありません。回路図を自身で確認してください。
- http://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf - https://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf
- http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf - https://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf
Arduino の Leonardo と micro には **ATMega32U4** が載っていて、TMK 用に使うことができますが、Arduino のブートローダが問題になることがあります。 Arduino の Leonardo と micro には **ATMega32U4** が載っていて、TMK 用に使うことができますが、Arduino のブートローダが問題になることがあります。

View File

@@ -16,7 +16,7 @@
世界中で使用されている ANSI、ISO および JIS の3つの標準キーボードがあります。北米では主に ANSI が使われ、ヨーロッパおよびアフリカでは主に ISO が使われ、日本では JIS が使われます。言及されていない地域では、ANSI あるいは ISO が使われています。これらのレイアウトに対応するキーコードは以下の通りです: 世界中で使用されている ANSI、ISO および JIS の3つの標準キーボードがあります。北米では主に ANSI が使われ、ヨーロッパおよびアフリカでは主に ISO が使われ、日本では JIS が使われます。言及されていない地域では、ANSI あるいは ISO が使われています。これらのレイアウトに対応するキーコードは以下の通りです:
<!-- Source for this image: http://www.keyboard-layout-editor.com/#/gists/bf431647d1001cff5eff20ae55621e9a --> <!-- Source for this image: https://www.keyboard-layout-editor.com/#/gists/bf431647d1001cff5eff20ae55621e9a -->
![キーボードのレイアウトイメージ](https://i.imgur.com/5wsh5wM.png) ![キーボードのレイアウトイメージ](https://i.imgur.com/5wsh5wM.png)
## 複雑なキーコードのカスタム名を作成する方法はありますか? ## 複雑なキーコードのカスタム名を作成する方法はありますか?
@@ -47,8 +47,8 @@ QMK には2つの機能、ブートマジックとコマンドがあり、これ
`KC_SYSREQ` の代わりに、Print Screen(`KC_PSCREEN` あるいは `KC_PSCR`) のキーコードを使ってください。'Alt + Print Screen' のキーの組み合わせは、'システムリクエスト' と認識されます。 `KC_SYSREQ` の代わりに、Print Screen(`KC_PSCREEN` あるいは `KC_PSCR`) のキーコードを使ってください。'Alt + Print Screen' のキーの組み合わせは、'システムリクエスト' と認識されます。
[issue #168](https://github.com/tmk/tmk_keyboard/issues/168) と以下を見てください [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) と以下を見てください
* http://en.wikipedia.org/wiki/Magic_SysRq_key * https://en.wikipedia.org/wiki/Magic_SysRq_key
* http://en.wikipedia.org/wiki/System_request * https://en.wikipedia.org/wiki/System_request
## 電源キーが動作しません ## 電源キーが動作しません
@@ -65,13 +65,13 @@ https://github.com/tmk/tmk_keyboard/issues/67
修飾キーおよびレイヤ切り替えの場合、リリースイベント時に修飾キーの登録を解除する、もしくは前のレイヤに戻るために、目的のレイヤの同じ位置に `KC_TRANS` を配置する必要があります。 修飾キーおよびレイヤ切り替えの場合、リリースイベント時に修飾キーの登録を解除する、もしくは前のレイヤに戻るために、目的のレイヤの同じ位置に `KC_TRANS` を配置する必要があります。
* https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#31-momentary-switching * https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#31-momentary-switching
* http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 * https://geekhack.org/index.php?topic=57008.msg1492604#msg1492604
* https://github.com/tmk/tmk_keyboard/issues/248 * https://github.com/tmk/tmk_keyboard/issues/248
## メカニカルロックスイッチのサポート ## メカニカルロックスイッチのサポート
この機能は [Alps](http://deskthority.net/wiki/Alps_SKCL_Lock) のような*メカニカルロックスイッチ*用です。以下を `config.h` に追加することで有効にすることができます: この機能は [Alps](https://deskthority.net/wiki/Alps_SKCL_Lock) のような*メカニカルロックスイッチ*用です。以下を `config.h` に追加することで有効にすることができます:
``` ```
#define LOCKING_SUPPORT_ENABLE #define LOCKING_SUPPORT_ENABLE

View File

@@ -1,45 +1,145 @@
# バウンスアルゴリズム # 接点バウンス / 接点チャタリング
<!--- <!---
original document: 0.9.19:docs/feature_debounce_type.md original document: 0.11.53:docs/feature_debounce_type.md
git diff 0.9.19 HEAD -- docs/feature_debounce_type.md | cat git diff 0.11.53 HEAD -- docs/feature_debounce_type.md | cat
--> -->
QMK はデバウンス API を介して複数のデバウンスアルゴリズムをサポートします。 メカニカルスイッチは押した状態と放した状態の間の移行が単純ではないことが良くあります。
どのデバウンスメソッドが呼ばれるかのロジックは下記のとおりです。rules.mk で設定された様々な定義をチェックします 理想的な世界では、スイッチを押すと、デジタルピンが次のようになることが期待されます:
(X 軸は時間を表します
```
voltage +----------------------
^ |
| |
| ------------------+
----> time
```
しかし実際の世界では、値が最終的に落ち着くまでに 0 と 1 の間を行ったり来たりする接点バウンスを見ることになるでしょう。(訳注:日本語では、バウンスとチャタリングを区別せずにチャタリングと呼んでいることが多いようです。)
```
+-+ +--+ +-------------
| | | | |
| | | | |
+-----------------+ +-+ +-+
```
スイッチが落ち着くまでにかかる時間は、スイッチの種類や経年、押す技術によって異なる場合があります。
デバイスが接点バウンスを緩和しないことを選択した場合、スイッチが押された時に起きるアクションが複数回繰り返されることがよくあります。
接点バウンス(「デバウンス」)を処理する方法はたくさんあります。RC フィルタのような追加のハードウェアを採用する方法もありますが、ソフトウェアでデバウンスを行う様々な方法もあり、よくデバウンスアルゴリズムと呼ばれます。このページでは、QMK で利用できるデバウンスメソッドについて説明します。
技術的には接点バウンス/接点チャタリングとは見なされませんが、一部のスイッチテクノロジーはノイズの影響を受けやすく、キーの状態が変化していない時に、時々短くランダムに 0 と 1 の間を行き来する様子がデジタル回路によって読み取られる場合があります。例えば:
```
+-+
| |
| |
+-----------------+ +--------------------
```
多くのデバウンスメソッド(全てではないですが)は、デバイスにノイズ耐性を持たせます。
ノイズの影響を受けやすい技術を使っている場合は、ノイズを緩和するデバウンスメソッドを選択しなければなりません。
## デバウンスアルゴリズムの種類
1) 時間の単位: タイムスタンプ (ミリ秒) vs 周期 (スキャン)
* デバウンスアルゴリズムは1つの「デバウンス時間」パラメータを持つことがよくあり、スイッチ接点の最大セトリング時間を指定します。
この時間は様々な単位で測定される場合があります:
* 周期ベースデバウンスは n 周期(スキャン)待機し、matrix_scan ごとにカウントを1減らします。
* タイムスタンプベースのデバウンスは、変更が発生したミリ秒のタイムスタンプを格納し、経過時間を計算するために減算を行います。
* 通常、タイムスタンプベースのデバウンスは、特にノイズ耐性のあるデバイスで優れています。なぜなら、物理スイッチのセトリング時間は時間の単位で指定されており、キーボードのマトリックススキャンレートに依存しないからです。
* 周期ベースのデバウンスは、補正できるセトリング時間がマトリックススキャンコードのパフォーマンスに依存するため、劣ると見なされる場合があります。
周期ベースのデバウンスを使う場合、スキャンコードのパフォーマンスを大幅に向上させると、デバウンスの効果が低下する場合があります。
周期ベースのデバウンスが望ましい状況は、ノイズが存在し、スキャンアルゴリズムが遅い、もしくは速度が可変である場合です。
デバウンスアルゴリズムが基本的にノイズ耐性がある場合でも、スキャンが遅く、タイムスタンプベースのアルゴリズムを使っている場合は、
2つのサンプル値に基づいてデバウンスを決定するため、アルゴリズムのイズ耐性は制限されます。
* 現在、全ての組み込みデバウンスアルゴリズムは、タイムスタンプベースのデバウンスのみサポートしています。将来的には周期ベースのデバウンスを実装し、```config.h``` マクロを介して選択できるようになるでしょう。
2) 対称 vs 非対称
* 対称 - キーアップとキーダウンイベントの両方に、同じデバウンスアルゴリズムを適用します。
* 推奨される命名規則: ```sym_*```
* 非対称 - キーダウンとキーアップイベントに異なるデバウンスアルゴリズムを適用します。例えば、キーダウンはイーガー、キーアップはデファー。
* 推奨される命名規則: ```asym_*``` の後に、キーダウン、キーアップの順に使っているアルゴリズムタイプの詳細が続きます。
3) イーガー vs デファー
* イーガー - キーの変更はすぐに報告されます。DEBOUNCE ミリ秒以降の全ての入力は無視されます。
* イーガーアルゴリズムはノイズ耐性はありません
* 推奨される命名規則:
* ```sym_eager_*```
* ```asym_eager_*_*```: キーダウンはイーガーアルゴリズムを使います
* ```asym_*_eager_*```: キーアップはイーガーアルゴリズムを使います
* デファー - 変更を報告する前に DEBOUNCE ミリ秒の間変更がないことを待機します
* デファーアルゴリズムはノイズ耐性があります
* 推奨される命名規則:
* ```sym_defer_*```
* ```asym_defer_*_*```: キーダウンはデファーアルゴリズムを使います
* ```asym_*_defer_*```: キーアップはデファーアルゴリズムを使います
4) グローバル vs キーごと vs 行ごと
* グローバル - 全てのキーに対して1つのタイマー。キーの変更状態は、グローバルタイマーに影響を与えます。
* 推奨される命名規則: ```*_g```
* キーごと - キーごとに1つのタイマー。
* 推奨される命名規則: ```*_pk```
* 行ごと - 行ごとに1つのタイマー。
* 推奨される命名規則: ```*_pr```
* キーごとや行ごとのアルゴリズムはより多くのリソース(パフォーマンスと RAM 使用量の観点で)を消費しますが、高速なタイピストはグローバルよりもそれらを好む場合があります。
## QMK でサポートされるデバウンスアルゴリズム
QMK はデバウンス API を介して複数のデバウンスアルゴリズムをサポートします。
どのデバウンスメソッドが呼ばれるかのロジックは下記のとおりです。```rules.mk``` で設定された様々な定義をチェックします。
``` ```
DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce
DEBOUNCE_TYPE?= sym_g DEBOUNCE_TYPE?= sym_defer_g
ifneq ($(strip $(DEBOUNCE_TYPE)), custom) ifneq ($(strip $(DEBOUNCE_TYPE)), custom)
QUANTUM_SRC += $(DEBOUNCE_DIR)/$(strip $(DEBOUNCE_TYPE)).c QUANTUM_SRC += $(DEBOUNCE_DIR)/$(strip $(DEBOUNCE_TYPE)).c
endif endif
``` ```
# デバウンスの選択 ### デバウンスの選択
| DEBOUNCE_TYPE | 説明 | 他に必要なもの | | DEBOUNCE_TYPE | 説明 | 他に必要なもの |
| ------------- | --------------------------------------------------- | ----------------------------- | | ------------- | ------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| 未定義 | デフォルトのアルゴリズム、現在のところ sym_g を使います | 無し | | 未定義 | デフォルトのアルゴリズム、現在のところ sym_defer_g を使います | 無し |
| custom | 独自のデバウンスコードを使います | ```SRC += debounce.c``` で独自の debounce.c を追加し、必要な関数を実装します | | custom | 独自のデバウンスコードを使います | ```SRC += debounce.c``` で独自の debounce.c を追加し、必要な関数を実装します |
| anything_else | quantum/debounce/* から他のアルゴリズムを使います | 無し | | その他 | quantum/debounce/* から他のアルゴリズムを使います | 無し |
**分割キーボードについて**: **分割キーボードについて**:
デバウンスコードは分割キーボードと互換性があります。 デバウンスコードは分割キーボードと互換性があります。
# 独自のデバウンスコードの使用 ### インクルードされているデバウンスメソッドの選択
* ```DEBOUNCE_TYPE = custom``` を設定します キーボードは、```rules.mk``` に次の行を追加することで、既に実装されているデバウンスメソッドの1つを選択できます:
* ```SRC += debounce.c``` を追加します。 ```
* 独自の ```debounce.c``` を追加します。例については、```quantum/debounce``` にある現在の実装をみてください。 DEBOUNCE_TYPE = <アルゴリズムの名前>
* 毎回のマトリクススキャンの結果はその度デバウンスによって処理されます。 ```
* MATRIX_ROWS ではなく num_rows を使って、分割キーボードが正しくサポートされるようにします。 アルゴリズムの名前は次のいずれかです:
* ```sym_defer_g``` - キーボードごとにデバウンスします。状態が変化すると、グローバルタイマが設定されます。```DEBOUNCE``` ミリ秒の間何も変化がなければ、全ての入力の変更がプッシュされます。
# インクルードされているデバウンスメソッド間での切り替え * これは現在のデフォルトアルゴリズムです。これはメモリ使用量が最も少ない最高のパフォーマンスのアルゴリズムで、ノイズ耐性もあります。
独自の debounce.c をインクルードすることで独自のコードを使うか、またはインクルードされている他のコードに切り替えることができます * ```sym_eager_pr``` - 行ごとにデバウンスします。状態が変化すると、応答は即座に行われ、その後その行は ```DEBOUNCE``` ミリ秒の間入力されません
含まれるデバウンスメソッドは以下の通りです:
* eager_pr - 行ごとにデバウンスします。状態が変化すると、応答は即座に行われ、その後その行は ```DEBOUNCE``` ミリ秒の間入力されません。
```NUM_KEYS``` の 8ビットカウンタの更新に高い計算コストがかかる、もしくは低スキャンレートのキーボード用で、各指は通常一度に1行しか叩かないようになっています。これは ErgoDox モデルに適しています; マトリックスは90度回転しているため、その「行」は実際には「列」であり、通常の使用では各指は一度に1つの「行」にしか当たりません。 ```NUM_KEYS``` の 8ビットカウンタの更新に高い計算コストがかかる、もしくは低スキャンレートのキーボード用で、各指は通常一度に1行しか叩かないようになっています。これは ErgoDox モデルに適しています; マトリックスは90度回転しているため、その「行」は実際には「列」であり、通常の使用では各指は一度に1つの「行」にしか当たりません。
* eager_pk - キーごとにデバウンスします。状態が変化すると、応答は即座に行われ、その後そのキーは ```DEBOUNCE``` ミリ秒の間入力されません。 * ```sym_eager_pk``` - キーごとにデバウンスします。状態が変化すると、応答は即座に行われ、その後そのキーは ```DEBOUNCE``` ミリ秒の間入力されません。
* sym_g - キーボードごとにデバウンスします。状態が変化すると、グローバルタイマが設定されます。```DEBOUNCE``` ミリ秒の間何も変化がなければ、全ての入力の変更がプッシュされます。 * ```sym_defer_pk``` - キーごとにデバウンスします。状態が変化すると、キーごとのタイマが設定されます。```DEBOUNCE``` ミリ秒の間そのキーに変化がなければ、キーの状態の変更がプッシュされます。
* sym_pk - キーごとにデバウンスします。状態が変化すると、キーごとのタイマーが設定されます。```DEBOUNCE``` ミリ秒の間そのキーに変化がなければ、キーの状態の変更がプッシュされます。
### 将来実装される可能性のあるいくつかのアルゴリズム:
* ```sym_defer_pr```
* ```sym_eager_g```
* ```asym_eager_defer_pk```
### 独自のデバウンスコードの使用
独自のデバウンスアルゴリズムを実装するためのオプションがあります。次のようにします:
* ```rules.mk``` に ```DEBOUNCE_TYPE = custom``` を設定します。
* ```rules.mk``` に ```SRC += debounce.c``` を追加します。
* 独自の ```debounce.c``` を追加します。例については、```quantum/debounce``` にある現在の実装を見てください。
* デバウンスは、全てのマトリクススキャンの後で発生します。
* MATRIX_ROWS ではなく num_rows を使って、分割キーボードが正しくサポートされるようにします。
* アルゴリズムが他のキーボードにも適用できる可能性がある場合、```quantum/debounce``` に追加することを検討してください。
### 古い名前
次の既存のアルゴリズムの古い名前は引き続きサポートされますが、代わりに新しい名前を使うことを推奨します。
* sym_g - sym_defer_g の古い名前
* eager_pk - sym_eager_pk の古い名前
* sym_pk - sym_defer_pk の古い名前
* eager_pr - sym_eager_pr の古い名前

View File

@@ -0,0 +1,119 @@
# LED インジケータ
<!---
original document: 0.10.52:docs/feature_led_indicators.md
git diff 0.10.52 HEAD -- docs/feature_led_indicators.md | cat
-->
QMK は HID 仕様で定義された5つの LED の読み取りメソッドを提供します:
* Num Lock
* Caps Lock
* Scroll Lock
* Compose
* Kana
ロック LED の状態を取得するには3つの方法があります:
* `config.h` で設定オプションを指定する
* `bool led_update_kb(led_t led_state)` あるいは `_user(led_t led_state)` を実装する、または
* `led_t host_keyboard_led_state()` を呼び出す
!> `host_keyboard_led_state()``led_update_user()` が呼ばれる前に新しい値を既に反映している場合があります。
LED の状態を `uint8_t` として提供する2つの非推奨の関数があります:
* `uint8_t led_set_kb(uint8_t usb_led)``_user(uint8_t usb_led)`
* `uint8_t host_keyboard_leds()`
## 設定オプション
インジケータを設定するには、`config.h` で以下の `#define` をします:
| 定義 | 既定値 | 説明 |
|-----------------------|------------|----------------------------------|
| `LED_NUM_LOCK_PIN` | *定義なし* | `Num Lock` LED を制御するピン |
| `LED_CAPS_LOCK_PIN` | *定義なし* | `Caps Lock` LED を制御するピン |
| `LED_SCROLL_LOCK_PIN` | *定義なし* | `Scroll Lock` LED を制御するピン |
| `LED_COMPOSE_PIN` | *定義なし* | `Compose` LED を制御するピン |
| `LED_KANA_PIN` | *定義なし* | `Kana` LED を制御するピン |
| `LED_PIN_ON_STATE` | `1` | LED が "オン" の時のインジケータピンの状態 - high の場合は`1`、low の場合は`0` |
独自のキーボードを設計しているわけではない限り、通常は上記の設定オプションを変更する必要はありません。
## `led_update_*()`
設定オプションが十分な柔軟性を提供しない場合は、提供される API フックにより LED の挙動の独自の制御ができます。これらの関数はこれら5つの LED のいずれかの状態が変化すると呼ばれます。LED の状態を構造体のパラメータとして受け取ります。
慣例により、`led_update_kb()` にそのコードを実行するようフックさせるために `led_update_user()` から `true` を返し、`led_update_kb()` でコードを実行したくない場合は `false` を返します。
以下はいくつかの例です:
- レイヤー表示のような何かのために LED を使うために LED を上書きする
- `_kb()` 関数を実行したくないので、`false` を返します。これはレイヤーの挙動を上書きするためです。
- LED がオンあるいはオフになった時に音楽を再生する。
- `_kb` 関数を実行したいので、`true` を返します。これはデフォルトの LED の挙動に追加されます。
?> `led_set_*` 関数は `bool` の代わりに `void` を返すため、キーボードの LED 制御を上書きすることができません。従って、代わりに `led_update_*` を使うことをお勧めします。
### `led_update_kb()` の実装例
```c
bool led_update_kb(led_t led_state) {
bool res = led_update_user(led_state);
if(res) {
// writePin は 1 でピンを high に、0 で low に設定します。
// この例では、ピンは反転していて、
// low/0 は LED がオンになり、high/1 は LED がオフになります。
// この挙動は、LED がピンと VCC の間にあるか、ピンと GND の間にあるかどうかに依存します。
writePin(B0, !led_state.num_lock);
writePin(B1, !led_state.caps_lock);
writePin(B2, !led_state.scroll_lock);
writePin(B3, !led_state.compose);
writePin(B4, !led_state.kana);
}
return res;
}
```
### `led_update_user()` の実装例
この不完全な例は Caps Lock がオンまたはオフになった場合に音を再生します。また LED の状態を保持する必要があるため、`true` を返します。
```c
#ifdef AUDIO_ENABLE
float caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND);
float caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND);
#endif
bool led_update_user(led_t led_state) {
#ifdef AUDIO_ENABLE
static uint8_t caps_state = 0;
if (caps_state != led_state.caps_lock) {
led_state.caps_lock ? PLAY_SONG(caps_on) : PLAY_SONG(caps_off);
caps_state = led_state.caps_lock;
}
#endif
return true;
}
```
### `led_update_*` 関数のドキュメント
* キーボード/リビジョン: `bool led_update_kb(led_t led_state)`
* キーマップ: `bool led_update_user(led_t led_state)`
## `host_keyboard_led_state()`
最後に受信した LED の状態を `led_t` として取得するためにこの関数を呼びます。これは、`led_update_*` の外部から、例えば [`matrix_scan_user()`](#matrix-scanning-code) の中で LED の状態を読み取るのに便利です。
## 物理的な LED の状態の設定
一部のキーボードの実装は、物理的な LED の状態を設定するための便利なメソッドを提供しています。
### Ergodox キーボード
Ergodox の実装は、個々の LED をオンあるいはオフにするために `ergodox_right_led_1`/`2`/`3_on`/`off()` と、インデックスによってそれらをオンあるいはオフにするために `ergodox_right_led_on`/`off(uint8_t led)` を提供します。
さらに、LED の明度を指定することができます。全ての LED に同じ明度を指定するなら `ergodox_led_all_set(uint8_t n)` を使い、個別の LED の明度を指定するなら `ergodox_right_led_1`/`2`/`3_set(uint8_t n)` を使い、LED のインデックスを指定して明度を指定するには `ergodox_right_led_set(uint8_t led, uint8_t n)` を使います。
Ergodox キーボードは、最低の明度として `LED_BRIGHTNESS_LO` を、最高の輝度(これはデフォルトです)として `LED_BRIGHTNESS_HI` も定義しています。

View File

@@ -61,7 +61,7 @@ I2C IS31FL3731 RGB コントローラを使ったアドレス指定可能な LED
.... ....
} }
ここで、`Cx_y` は[データシート](http://www.issi.com/WW/pdf/31FL3731.pdf)およびヘッダファイル `drivers/issi/is31fl3731-simple.h` で定義されるマトリックス内の LED の位置です。`driver``config.h` で定義したドライバのインデックス(`0``1``2``3`のいずれか)です。 ここで、`Cx_y` は[データシート](https://www.issi.com/WW/pdf/31FL3731.pdf)およびヘッダファイル `drivers/issi/is31fl3731-simple.h` で定義されるマトリックス内の LED の位置です。`driver``config.h` で定義したドライバのインデックス(`0``1``2``3`のいずれか)です。
## キーコード ## キーコード

74
docs/ja/feature_rawhid.md Normal file
View File

@@ -0,0 +1,74 @@
# Raw HID
<!---
original document: 0.10.47:docs/feature_rawhid.md
git diff 0.10.47 HEAD -- docs/feature_rawhid.md | cat
-->
Raw HID は、HID インタフェースを介して QMK とホストコンピュータ間の双方向通信を可能にします。これには、キーマップをその場で切り替えたり、RGB LED の色とモードを変更したりなど、多くの潜在的な使用方法があります。
キーボードで raw HID を機能させるには、2つの主要なコンポーネントがあります。
## キーボードファームウェア
ファームウェアの実装はとても簡単です。
`rules.mk` に以下を追加します:
```make
RAW_ENABLE = yes
```
`keymap.c``"raw_hid.h"` を include し、以下を実装します:
```C
void raw_hid_receive(uint8_t *data, uint8_t length) {
// ここにコードを書きます。data はホストから受信したパケットです。
}
```
`"raw_hid.h"` ヘッダは、キーボードからホストにパケットを送信できる `void raw_hid_send(uint8_t *data, uint8_t length);` も宣言します。例として、全てのデータをホストに返すことで、ホストアプリケーションを構築する時のデバッグに使うこともできます。
```C
void raw_hid_receive(uint8_t *data, uint8_t length) {
raw_hid_send(data, length);
}
```
`raw_hid_receive` はホストから最大長 `RAW_EPSIZE` の可変サイズのパケットを受信することができます。一方、`raw_hid_send` はパケットを厳密に `RAW_EPSIZE` の長さで送信するため、長さ `RAW_EPSIZE` のデータを使う必要があります。
ホスト側での作業を進める前に、raw 対応のファームウェアを書き込むようにしてください。
## ホスト (Windows/macOS/Linux)
これは幾つかの掘り下げが必要になるため、より複雑な部分です。
ホストコンピュータを raw HID を使ってキーボードに接続するには、キーボードについての4つの情報が必要です。
1. Vendor ID
2. Product ID
3. Usage Page
4. Usage
前半の2つは、キーボードのメインディレクトリにあるキーボードの `config.h` で、`VENDOR_ID``PRODUCT_ID` で簡単に見つかります。
後半の2つは、キーボードのメインディレクトリにあるキーボードの `config.h` で、値を再定義することで上書きすることができます: `#define RAW_USAGE_PAGE 0xFF60``#define RAW_USAGE_ID 0x61`
デフォルトでは、**Usage Page** は `0xFF60` で、**Usage** は `0x61` です。
### ホストの構築
独自に作成したくない場合は、利用可能な HID 実装ライブラリがある任意の言語を使ってホストを構築することができます。人気のある言語でよく使われるライブラリは以下の通りです:
* Node: [node-hid](https://github.com/node-hid/node-hid)。
* C: [hidapi](https://github.com/libusb/hidapi)。
* Java: [purejavahidapi](https://github.com/nyholku/purejavahidapi) と [hid4java](https://github.com/gary-rowe/hid4java)。
* Python: [pyhidapi](https://pypi.org/project/hid/)。
これは完全なクロスプラットフォームのリストではありませんが、最初に始めるのに十分なはずです。raw HID を使うための特別な要件は無いため、どの HID ライブラリでも動作するはずです。
これで、キーボードへの HID インタフェースを開くために必要な4つの情報全てが揃いました。必要なのは、ライブラリの利用可能な関数を使って ID パラメータを使ってデバイスを開くことだけです。
Vendor ID と Product ID はデバイスを開くために実際には必要ないことに注意してください。それらは接続した多くの HID デバイスから特定のデバイスをフィルターするためだけに使われます。多くのライブラリでは、代わりに製品名と製造元名を使ってデバイスを開くオプションがあります。`node-hid` が代表的な例です。これは USB ハブが組み込まれているデバイスや、同じ製品名または同じ製造元の複数のインタフェースがある特別な HID インタフェースで問題になります。Product ID と Vendor ID を合わせると単一のインタフェースの固有名を作成できるため、この問題を防げます。したがって、ライブラリで必要が無い場合でも、この問題を防ぐためにそれらを使うことをお勧めします。
ただし、Vendor ID や Product ID と異なり、Usage Page と Usage は通信を成功させるために必要です。
言うまでもなく、使っているライブラリに関係なく、終了したらインタフェースを必ず閉じる必要があります。オペレーティングシステムと特定の環境によっては、明示的に接続が閉じられていない場合、後で他のクライアントまたは同じクライアントの他のインスタンスに接続しなおした時に問題が発生する可能性があります。

View File

@@ -7,7 +7,7 @@
[速記](https://en.wikipedia.org/wiki/Stenotype)は裁判所のレポート、字幕および耳が不自由な人のためのリアルタイムの文字起こしで最もよく使われる記述方法です。速記では単語はスペル、音声およびショートカット(短い)ストロークが混在する音節ごとに音節化されます。プロの速記者は、標準的なタイピングで通常見られる負担を掛けずに、はるかに少ないエラー(99.9%より高い精度)で、200-300 WPM に到達できます。 [速記](https://en.wikipedia.org/wiki/Stenotype)は裁判所のレポート、字幕および耳が不自由な人のためのリアルタイムの文字起こしで最もよく使われる記述方法です。速記では単語はスペル、音声およびショートカット(短い)ストロークが混在する音節ごとに音節化されます。プロの速記者は、標準的なタイピングで通常見られる負担を掛けずに、はるかに少ないエラー(99.9%より高い精度)で、200-300 WPM に到達できます。
[Open Steno Project](http://www.openstenoproject.org/)は、速記ストロークを単語とコマンドにリアルタイムに変換する Plover と呼ばれるオープンソースプログラムを構築しました。確立された辞書とサポートがあります。 [Open Steno Project](https://www.openstenoproject.org/)は、速記ストロークを単語とコマンドにリアルタイムに変換する Plover と呼ばれるオープンソースプログラムを構築しました。確立された辞書とサポートがあります。
## QWERTY キーボードを使った Plover :id=plover-with-qwerty-keyboard ## QWERTY キーボードを使った Plover :id=plover-with-qwerty-keyboard
@@ -57,7 +57,6 @@ void matrix_init_user() {
## 速記の学習 :id=learning-stenography ## 速記の学習 :id=learning-stenography
* [Learn Plover!](https://sites.google.com/site/learnplover/) * [Learn Plover!](https://sites.google.com/site/learnplover/)
* [QWERTY Steno](http://qwertysteno.com/Home/)
* [Steno Jig](https://joshuagrams.github.io/steno-jig/) * [Steno Jig](https://joshuagrams.github.io/steno-jig/)
* Plover [Learning Stenography](https://github.com/openstenoproject/plover/wiki/Learning-Stenography) wiki のより多くのリソース * Plover [Learning Stenography](https://github.com/openstenoproject/plover/wiki/Learning-Stenography) wiki のより多くのリソース

View File

@@ -89,7 +89,7 @@ BOOTLOADER = caterina
互換性のあるフラッシャ: 互換性のあるフラッシャ:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (推奨の GUI) * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (推奨の GUI)
* avr109 を使った [avrdude](http://www.nongnu.org/avrdude/) / `:avrdude` (推奨のコマンドライン) * avr109 を使った [avrdude](https://www.nongnu.org/avrdude/) / `:avrdude` (推奨のコマンドライン)
* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS) * [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
書き込み手順: 書き込み手順:
@@ -167,7 +167,7 @@ BOOTLOADER = USBasp
互換性のあるフラッシャ: 互換性のあるフラッシャ:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (推奨の GUI) * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (推奨の GUI)
* `usbasp` プログラマを使った [avrdude](http://www.nongnu.org/avrdude/) * `usbasp` プログラマを使った [avrdude](https://www.nongnu.org/avrdude/)
* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS) * [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
書き込み手順: 書き込み手順:

View File

@@ -11,15 +11,15 @@ GitHub は慣れていない人には少し注意が必要です - このガイ
[QMK GitHub ページ](https://github.com/qmk/qmk_firmware)を開くと、右上に "Fork" というボタンが見えます: [QMK GitHub ページ](https://github.com/qmk/qmk_firmware)を開くと、右上に "Fork" というボタンが見えます:
![GitHub でのフォーク](http://i.imgur.com/8Toomz4.jpg) ![GitHub でのフォーク](https://i.imgur.com/8Toomz4.jpg)
あなたが組織の一員である場合は、どのアカウントにフォークするかを選択する必要があります。ほとんどの場合、あなたの個人のアカウントにフォークしたいでしょう。フォークが完了したら(しばらく時間が掛かる場合があります)、"Clone or Download" ボタンをクリックします: あなたが組織の一員である場合は、どのアカウントにフォークするかを選択する必要があります。ほとんどの場合、あなたの個人のアカウントにフォークしたいでしょう。フォークが完了したら(しばらく時間が掛かる場合があります)、"Clone or Download" ボタンをクリックします:
![GitHub からダウンロード](http://i.imgur.com/N1NYcSz.jpg) ![GitHub からダウンロード](https://i.imgur.com/N1NYcSz.jpg)
必ず "HTTPS" を選択し、リンクを選択してコピーします: 必ず "HTTPS" を選択し、リンクを選択してコピーします:
![HTTPS リンク](http://i.imgur.com/eGO0ohO.jpg) ![HTTPS リンク](https://i.imgur.com/eGO0ohO.jpg)
ここから、`git clone --recurse-submodules ` をコマンドラインに入力し、リンクを貼り付けます: ここから、`git clone --recurse-submodules ` をコマンドラインに入力し、リンクを貼り付けます:
@@ -61,10 +61,10 @@ To https://github.com/whoeveryouare/qmk_firmware.git
あなたの変更は今では GitHub 上のフォークにあります - フォーク (`https://github.com/<whoeveryouare>/qmk_firmware`)に戻ると、"New Pull Request" ボタンをクリックすることで新しいプルリクエストを作成することができます: あなたの変更は今では GitHub 上のフォークにあります - フォーク (`https://github.com/<whoeveryouare>/qmk_firmware`)に戻ると、"New Pull Request" ボタンをクリックすることで新しいプルリクエストを作成することができます:
![New Pull Request](http://i.imgur.com/DxMHpJ8.jpg) ![New Pull Request](https://i.imgur.com/DxMHpJ8.jpg)
ここでは、コミットした内容を正確に確認することができます - 全て良いように見える場合は、"Create Pull Request" をクリックすることで最終的に承認することができます: ここでは、コミットした内容を正確に確認することができます - 全て良いように見える場合は、"Create Pull Request" をクリックすることで最終的に承認することができます:
![Create Pull Request](http://i.imgur.com/Ojydlaj.jpg) ![Create Pull Request](https://i.imgur.com/Ojydlaj.jpg)
サブミットの後で、私たちはあなたの変更について話し、変更を依頼し、最終的にそれを受け入れるでしょうQMK に貢献してくれてありがとう :) サブミットの後で、私たちはあなたの変更について話し、変更を依頼し、最終的にそれを受け入れるでしょうQMK に貢献してくれてありがとう :)

View File

@@ -9,11 +9,11 @@
## 必要事項 ## 必要事項
このリポジトリ内の `Vagrantfile` を使うには、[Vagrant](http://www.vagrantup.com/) およびサポートされるプロバイダがインストールされている必要があります: このリポジトリ内の `Vagrantfile` を使うには、[Vagrant](https://www.vagrantup.com/) およびサポートされるプロバイダがインストールされている必要があります:
* [VirtualBox](https://www.virtualbox.org/) (バージョン 5.0.12 以降) * [VirtualBox](https://www.virtualbox.org/) (バージョン 5.0.12 以降)
* 'Vagrant を使うために最もアクセスしやすいプラットフォーム' として販売 * 'Vagrant を使うために最もアクセスしやすいプラットフォーム' として販売
* [VMware Workstation](https://www.vmware.com/products/workstation) および [Vagrant VMware プラグイン](http://www.vagrantup.com/vmware) * [VMware Workstation](https://www.vmware.com/products/workstation) および [Vagrant VMware プラグイン](https://www.vagrantup.com/vmware)
* (有料) VMware プラグインには、ライセンスされた VMware Workstation/Fusion のコピーが必要です。 * (有料) VMware プラグインには、ライセンスされた VMware Workstation/Fusion のコピーが必要です。
* [Docker](https://www.docker.com/) * [Docker](https://www.docker.com/)

View File

@@ -38,7 +38,7 @@ or open the directory in your favourite text editor.
## `readme.md` ## `readme.md`
このファイルではキーボードに関する説明を記述します。[キーボード Readme テンプレート](ja/documentation_templates.md#keyboard-readmemd-template)に従って `readme.md` を記入して下さい。`readme.md` の上部に画像を配置することをお勧めします。画像は [Imgur](http://imgur.com) のような外部サービスを利用してください。 このファイルではキーボードに関する説明を記述します。[キーボード Readme テンプレート](ja/documentation_templates.md#keyboard-readmemd-template)に従って `readme.md` を記入して下さい。`readme.md` の上部に画像を配置することをお勧めします。画像は [Imgur](https://imgur.com) のような外部サービスを利用してください。
## `<keyboard>.c` ## `<keyboard>.c`

View File

@@ -170,7 +170,7 @@ Clueboard は、サブフォルダをまとめるためとキーボードのリ
リポジトリのサイズを小さく保つために、いくつかの例外を除いて、どの形式のバイナリファイルも受け入れないようになりました。外部の場所(<https://imgur.com>など)でホストして、`readme.md` でリンクすることをおすすめします。 リポジトリのサイズを小さく保つために、いくつかの例外を除いて、どの形式のバイナリファイルも受け入れないようになりました。外部の場所(<https://imgur.com>など)でホストして、`readme.md` でリンクすることをおすすめします。
ハードウェアのファイル(プレートやケース、PCB など)は [qmk.fm リポジトリ](https://github.com/qmk/qmk.fm)に提供でき、[qmk.fm](http://qmk.fm) で利用可能になります。ダウンロード出来るファイルは `/<keyboard>/`(名前は上記と同じ形式)に保存され、`http://qmk.fm/<keyboard>/` で提供されます。ページは `/_pages/<keyboard>/` から生成されて、同じ場所で提供されます( .mdファイルはJekyllを通して .htmlファイル変換されます。`lets_split` ファイルを参照して下さい。 ハードウェアのファイル(プレートやケース、PCB など)は [qmk.fm リポジトリ](https://github.com/qmk/qmk.fm)に提供でき、[qmk.fm](https://qmk.fm) で利用可能になります。ダウンロード出来るファイルは `/<keyboard>/`(名前は上記と同じ形式)に保存され、`https://qmk.fm/<keyboard>/` で提供されます。ページは `/_pages/<keyboard>/` から生成されて、同じ場所で提供されます( .mdファイルはJekyllを通して .htmlファイル変換されます。`lets_split` ファイルを参照して下さい。
## キーボードのデフォルト設定 ## キーボードのデフォルト設定
@@ -213,7 +213,7 @@ QMK が提供する機能の量を考えれば、新しいユーザーが混乱
## ライセンス ## ライセンス
QMK のコア部分は [GNU General Public License](https://www.gnu.org/licenses/licenses.en.html) でライセンスされます。AVR マイコン用のバイナリを提供する場合は、[GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) か、[GPLv3](https://www.gnu.org/licenses/gpl.html) のどちらかから選択出来ます。ARM マイコン用のバイナリを提供する場合は、 [ChibiOS](http://www.chibios.org) の GPLv3 ライセンスに準拠するため、[GPL Version 3](https://www.gnu.org/licenses/gpl.html) を選択しなければいけません。 QMK のコア部分は [GNU General Public License](https://www.gnu.org/licenses/licenses.en.html) でライセンスされます。AVR マイコン用のバイナリを提供する場合は、[GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) か、[GPLv3](https://www.gnu.org/licenses/gpl.html) のどちらかから選択出来ます。ARM マイコン用のバイナリを提供する場合は、 [ChibiOS](https://www.chibios.org) の GPLv3 ライセンスに準拠するため、[GPL Version 3](https://www.gnu.org/licenses/gpl.html) を選択しなければいけません。
[uGFX](https://ugfx.io) を使用している場合は、[uGFX License](https://ugfx.io/license.html) に準拠する必要があります。uGFX を利用したデバイスを販売するには個別に商用ライセンスを取得しなければいけません。 [uGFX](https://ugfx.io) を使用している場合は、[uGFX License](https://ugfx.io/license.html) に準拠する必要があります。uGFX を利用したデバイスを販売するには個別に商用ライセンスを取得しなければいけません。

View File

@@ -100,5 +100,5 @@
- [Wikipedia の記事](https://en.wikipedia.org/wiki/Keyboard_matrix_circuit) - [Wikipedia の記事](https://en.wikipedia.org/wiki/Keyboard_matrix_circuit)
- [Deskthority の記事](https://deskthority.net/wiki/Keyboard_matrix) - [Deskthority の記事](https://deskthority.net/wiki/Keyboard_matrix)
- [Dave Dribin による Keyboard Matrix Help (2000)](https://www.dribin.org/dave/keyboard/one_html/) - [Dave Dribin による Keyboard Matrix Help (2000)](https://www.dribin.org/dave/keyboard/one_html/)
- [PCBheaven による How Key Matrices Works](http://pcbheaven.com/wikipages/How_Key_Matrices_Works/) (アニメーションの例) - [PCBheaven による How Key Matrices Works](https://pcbheaven.com/wikipages/How_Key_Matrices_Works/) (アニメーションの例)
- [キーボードの仕組み - QMK ドキュメント](ja/how_keyboards_work.md) - [キーボードの仕組み - QMK ドキュメント](ja/how_keyboards_work.md)

View File

@@ -0,0 +1,78 @@
# `defines` グループ {#group__defines}
## 概要
メンバー | 説明
--------------------------------|---------------------------------------------
`define `[`SYSEX_BEGIN`](#group__defines_1ga1a3c39bb790dda8a368c4247caabcf79) |
`define `[`SYSEX_END`](#group__defines_1ga753706d1d28e6f96d7caf1973e80feed) |
`define `[`MIDI_STATUSMASK`](#group__defines_1gab78a1c818a5f5dab7a8946543f126c69) |
`define `[`MIDI_CHANMASK`](#group__defines_1ga239edc0a6f8405d3a8f2804f1590b909) |
`define `[`MIDI_CC`](#group__defines_1ga45f116a1daab76b3c930c2cecfaef215) |
`define `[`MIDI_NOTEON`](#group__defines_1gafd416f27bf3590868c0c1f55c30be4c7) |
`define `[`MIDI_NOTEOFF`](#group__defines_1gabed24bea2d989fd655e2ef2ad0765adc) |
`define `[`MIDI_AFTERTOUCH`](#group__defines_1ga3a322d8cfd53576a2e167c1840551b0f) |
`define `[`MIDI_PITCHBEND`](#group__defines_1gabcc799504e8064679bca03f232223af4) |
`define `[`MIDI_PROGCHANGE`](#group__defines_1gaefb3f1595ffbb9db66b46c2c919a3d42) |
`define `[`MIDI_CHANPRESSURE`](#group__defines_1gaeb3281cc7fcd0daade8ed3d2dfc33dbe) |
`define `[`MIDI_CLOCK`](#group__defines_1gafa5e4e295aafd15ab7893344599b3b89) |
`define `[`MIDI_TICK`](#group__defines_1ga3b99408ff864613765d4c3c2ceb52aa7) |
`define `[`MIDI_START`](#group__defines_1ga8233631c85823aa546f932ad8975caa4) |
`define `[`MIDI_CONTINUE`](#group__defines_1gab24430f0081e27215b0da84dd0ee745c) |
`define `[`MIDI_STOP`](#group__defines_1ga3af9271d4b1f0d22904a0b055f48cf62) |
`define `[`MIDI_ACTIVESENSE`](#group__defines_1gacd88ed42dba52bb4b2052c5656362677) |
`define `[`MIDI_RESET`](#group__defines_1ga02947f30ca62dc332fdeb10c5868323b) |
`define `[`MIDI_TC_QUARTERFRAME`](#group__defines_1gaaa072f33590e236d1bfd8f28e833ae31) |
`define `[`MIDI_SONGPOSITION`](#group__defines_1ga412f6ed33a2150051374bee334ee1705) |
`define `[`MIDI_SONGSELECT`](#group__defines_1gafcab254838b028365ae0259729e72c4e) |
`define `[`MIDI_TUNEREQUEST`](#group__defines_1ga8100b907b8c0a84e58b1c53dcd9bd795) |
`define `[`SYSEX_EDUMANUFID`](#group__defines_1ga5ef855ed955b00a2239ca16afbeb164f) |
## メンバー
#### `define `[`SYSEX_BEGIN`](#group__defines_1ga1a3c39bb790dda8a368c4247caabcf79) {#group__defines_1ga1a3c39bb790dda8a368c4247caabcf79}
#### `define `[`SYSEX_END`](#group__defines_1ga753706d1d28e6f96d7caf1973e80feed) {#group__defines_1ga753706d1d28e6f96d7caf1973e80feed}
#### `define `[`MIDI_STATUSMASK`](#group__defines_1gab78a1c818a5f5dab7a8946543f126c69) {#group__defines_1gab78a1c818a5f5dab7a8946543f126c69}
#### `define `[`MIDI_CHANMASK`](#group__defines_1ga239edc0a6f8405d3a8f2804f1590b909) {#group__defines_1ga239edc0a6f8405d3a8f2804f1590b909}
#### `define `[`MIDI_CC`](#group__defines_1ga45f116a1daab76b3c930c2cecfaef215) {#group__defines_1ga45f116a1daab76b3c930c2cecfaef215}
#### `define `[`MIDI_NOTEON`](#group__defines_1gafd416f27bf3590868c0c1f55c30be4c7) {#group__defines_1gafd416f27bf3590868c0c1f55c30be4c7}
#### `define `[`MIDI_NOTEOFF`](#group__defines_1gabed24bea2d989fd655e2ef2ad0765adc) {#group__defines_1gabed24bea2d989fd655e2ef2ad0765adc}
#### `define `[`MIDI_AFTERTOUCH`](#group__defines_1ga3a322d8cfd53576a2e167c1840551b0f) {#group__defines_1ga3a322d8cfd53576a2e167c1840551b0f}
#### `define `[`MIDI_PITCHBEND`](#group__defines_1gabcc799504e8064679bca03f232223af4) {#group__defines_1gabcc799504e8064679bca03f232223af4}
#### `define `[`MIDI_PROGCHANGE`](#group__defines_1gaefb3f1595ffbb9db66b46c2c919a3d42) {#group__defines_1gaefb3f1595ffbb9db66b46c2c919a3d42}
#### `define `[`MIDI_CHANPRESSURE`](#group__defines_1gaeb3281cc7fcd0daade8ed3d2dfc33dbe) {#group__defines_1gaeb3281cc7fcd0daade8ed3d2dfc33dbe}
#### `define `[`MIDI_CLOCK`](#group__defines_1gafa5e4e295aafd15ab7893344599b3b89) {#group__defines_1gafa5e4e295aafd15ab7893344599b3b89}
#### `define `[`MIDI_TICK`](#group__defines_1ga3b99408ff864613765d4c3c2ceb52aa7) {#group__defines_1ga3b99408ff864613765d4c3c2ceb52aa7}
#### `define `[`MIDI_START`](#group__defines_1ga8233631c85823aa546f932ad8975caa4) {#group__defines_1ga8233631c85823aa546f932ad8975caa4}
#### `define `[`MIDI_CONTINUE`](#group__defines_1gab24430f0081e27215b0da84dd0ee745c) {#group__defines_1gab24430f0081e27215b0da84dd0ee745c}
#### `define `[`MIDI_STOP`](#group__defines_1ga3af9271d4b1f0d22904a0b055f48cf62) {#group__defines_1ga3af9271d4b1f0d22904a0b055f48cf62}
#### `define `[`MIDI_ACTIVESENSE`](#group__defines_1gacd88ed42dba52bb4b2052c5656362677) {#group__defines_1gacd88ed42dba52bb4b2052c5656362677}
#### `define `[`MIDI_RESET`](#group__defines_1ga02947f30ca62dc332fdeb10c5868323b) {#group__defines_1ga02947f30ca62dc332fdeb10c5868323b}
#### `define `[`MIDI_TC_QUARTERFRAME`](#group__defines_1gaaa072f33590e236d1bfd8f28e833ae31) {#group__defines_1gaaa072f33590e236d1bfd8f28e833ae31}
#### `define `[`MIDI_SONGPOSITION`](#group__defines_1ga412f6ed33a2150051374bee334ee1705) {#group__defines_1ga412f6ed33a2150051374bee334ee1705}
#### `define `[`MIDI_SONGSELECT`](#group__defines_1gafcab254838b028365ae0259729e72c4e) {#group__defines_1gafcab254838b028365ae0259729e72c4e}
#### `define `[`MIDI_TUNEREQUEST`](#group__defines_1ga8100b907b8c0a84e58b1c53dcd9bd795) {#group__defines_1ga8100b907b8c0a84e58b1c53dcd9bd795}
#### `define `[`SYSEX_EDUMANUFID`](#group__defines_1ga5ef855ed955b00a2239ca16afbeb164f) {#group__defines_1ga5ef855ed955b00a2239ca16afbeb164f}

View File

@@ -25,4 +25,4 @@ QMK には、マイクロコントローラに依存しない GPIO 制御抽象
## 高度な設定 :id=advanced-settings ## 高度な設定 :id=advanced-settings
各マイクロコントローラは GPIO に関して複数の高度な設定を持つことができます。この抽象レイヤーは、アーキテクチャー固有の機能の使用法を制限しません。上級ユーザは、目的のデバイスのデータシートを参照し、必要なライブラリを含めてください。AVR については、標準 avr/io.h ライブラリが使われます; STM32 については ChibiOS [PAL ライブラリ](http://chibios.sourceforge.net/docs3/hal/group___p_a_l.html)が使われます。 各マイクロコントローラは GPIO に関して複数の高度な設定を持つことができます。この抽象レイヤーは、アーキテクチャー固有の機能の使用法を制限しません。上級ユーザは、目的のデバイスのデータシートを参照し、必要なライブラリを含めてください。AVR については、標準 avr/io.h ライブラリが使われます; STM32 については ChibiOS [PAL ライブラリ](https://chibios.sourceforge.net/docs3/hal/group___p_a_l.html)が使われます。

View File

@@ -0,0 +1,148 @@
# `midi_device` グループ {#group__midi__device}
<!---
original document: 0.10.9:docs/internals_midi_device.md
git diff 0.10.9 HEAD -- docs/internals_midi_device.md | cat
-->
独自の MIDI デバイスを実装する時に、関数を使います。
実際にデバイスを介してバイトを送信するために、送信関数を設定します。このメソッドは、このデバイスで例えば midi_send_cc のような送信関数を呼ぶ時に呼ばれます。
midi_device_input を使ってデバイスからの入力データを処理し、それをデバイスに関連付けられたコールバックで渡します。
デバイスのプロセス関数の最初に呼び出される関数が必要な場合、midi_device_set_pre_input_process_func を使います。通常、入力をポーリングして midi_device_input に渡します。
## 概要
メンバー | 説明
--------------------------------|---------------------------------------------
`define `[`MIDI_INPUT_QUEUE_LENGTH`](#group__midi__device_1ga4aaa419caebdca2bbdfc1331e79781a8) |
`enum `[`input_state_t`](#group__midi__device_1gac203e877d3df4275ceb8e7180a61f621) |
`public void `[`midi_device_input`](#group__midi__device_1gad8d3db8eb35d9cfa51ef036a0a9d70db)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t cnt,uint8_t * input)` | 入力バイトを処理します。この関数はバイトを解析し、指定されたデバイスに関連する適切なコールバックを呼びます。この関数は、カスタムデバイスを作成していて、MIDI 入力が必要な場合に使います。
`public void `[`midi_device_set_send_func`](#group__midi__device_1ga59f5a46bdd4452f186cc73d9e96d4673)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_var_byte_func_t send_func)` | 出力データバイトの送信に使われるコールバック関数を設定します。これは、カスタムデバイスを作成している場合のみ使われます。ロックを気にすることなく様々な MIDI 送信関数を呼び出すことができるように、コールバック関数で割り込みを無効にすることができます。
`public void `[`midi_device_set_pre_input_process_func`](#group__midi__device_1ga4de0841b87c04fc23cb56b6451f33b69)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_no_byte_func_t pre_process_func)` | midi_device_process 呼び出しの最初に呼ばれるコールバックを設定します。これは入力データをポーリングし、midi_device_input 関数を介してデータを送信できます。カスタムデバイスを作成している場合のみ、これを使う可能性があります。
`struct `[`_midi_device`](docs/api_midi_device.md#struct__midi__device) | この構造体は、MIDI デバイスの入出力関数と処理データを表します。
## メンバー
#### `define `[`MIDI_INPUT_QUEUE_LENGTH`](#group__midi__device_1ga4aaa419caebdca2bbdfc1331e79781a8) {#group__midi__device_1ga4aaa419caebdca2bbdfc1331e79781a8}
#### `enum `[`input_state_t`](#group__midi__device_1gac203e877d3df4275ceb8e7180a61f621) {#group__midi__device_1gac203e877d3df4275ceb8e7180a61f621}
値 | 説明
--------------------------------|---------------------------------------------
IDLE |
ONE_BYTE_MESSAGE |
TWO_BYTE_MESSAGE |
THREE_BYTE_MESSAGE |
SYSEX_MESSAGE |
#### `public void `[`midi_device_input`](#group__midi__device_1gad8d3db8eb35d9cfa51ef036a0a9d70db)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t cnt,uint8_t * input)` {#group__midi__device_1gad8d3db8eb35d9cfa51ef036a0a9d70db}
入力バイトを処理します。この関数はバイトを解析し、指定されたデバイスに関連する適切なコールバックを呼びます。この関数は、カスタムデバイスを作成していて、MIDI 入力が必要な場合に使います。
#### パラメータ
* `device` 入力を関連付ける MIDI デバイス
* `cnt` 処理中のバイト数
* `input` 処理するバイトデータ
#### `public void `[`midi_device_set_send_func`](#group__midi__device_1ga59f5a46bdd4452f186cc73d9e96d4673)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_var_byte_func_t send_func)` {#group__midi__device_1ga59f5a46bdd4452f186cc73d9e96d4673}
出力データバイトの送信に使われるコールバック関数を設定します。これは、カスタムデバイスを作成している場合のみ使われます。ロックを気にすることなく様々な MIDI 送信関数を呼び出すことができるように、コールバック関数で割り込みを無効にすることができます。
#### パラメータ
* `device` このコールバックを関連付ける MIDI デバイス
* `send_func` 送信を行うコールバック関数
#### `public void `[`midi_device_set_pre_input_process_func`](#group__midi__device_1ga4de0841b87c04fc23cb56b6451f33b69)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_no_byte_func_t pre_process_func)` {#group__midi__device_1ga4de0841b87c04fc23cb56b6451f33b69}
midi_device_process 呼び出しの最初に呼ばれるコールバックを設定します。これは入力データをポーリングし、midi_device_input 関数を介してデータを送信できます。カスタムデバイスを作成している場合のみ、これを使う可能性があります。
#### パラメータ
* `device` このコールバックを関連付ける MIDI デバイス
* `midi_no_byte_func_t` 実際のコールバック関数
# `_midi_device` 構造体 {#struct__midi__device}
この構造体は、MIDI デバイスの入出力関数と処理データを表します。
デバイスは、実際の物理デバイス [シリアルポート、USB ポート]、または仮想デバイスを表すことができます。この構造体を直接変更する必要はありません。
## 概要
| メンバー | 説明
--------------------------------|---------------------------------------------
`public midi_var_byte_func_t `[`send_func`](docs/api_midi_device.md#struct__midi__device_1a25d4c94b4bbccd5b98f1032b469f3ff9) |
`public midi_three_byte_func_t `[`input_cc_callback`](docs/api_midi_device.md#struct__midi__device_1a6da5236c1bc73877728df92d213a78d1) |
`public midi_three_byte_func_t `[`input_noteon_callback`](docs/api_midi_device.md#struct__midi__device_1aa10b15cf1a7fb825a5df0d2abbe34a1c) |
`public midi_three_byte_func_t `[`input_noteoff_callback`](docs/api_midi_device.md#struct__midi__device_1aaf290043078534d3a5a0ea4c840eba84) |
`public midi_three_byte_func_t `[`input_aftertouch_callback`](docs/api_midi_device.md#struct__midi__device_1acb0b4901c545cec4b28b126f2d8c315f) |
`public midi_three_byte_func_t `[`input_pitchbend_callback`](docs/api_midi_device.md#struct__midi__device_1a305fea672caeb996f2233bf8cd2bef18) |
`public midi_three_byte_func_t `[`input_songposition_callback`](docs/api_midi_device.md#struct__midi__device_1a5f3f13638b3fef3fc561ed1bf301d586) |
`public midi_two_byte_func_t `[`input_progchange_callback`](docs/api_midi_device.md#struct__midi__device_1adaf1da617c9a10a9dcad00ab1959d3da) |
`public midi_two_byte_func_t `[`input_chanpressure_callback`](docs/api_midi_device.md#struct__midi__device_1ab7ca2925c539915d43974eff604d85f7) |
`public midi_two_byte_func_t `[`input_songselect_callback`](docs/api_midi_device.md#struct__midi__device_1a89bed8a5a55376120cfc0a62b42f057f) |
`public midi_two_byte_func_t `[`input_tc_quarterframe_callback`](docs/api_midi_device.md#struct__midi__device_1ad9813e75d22e284f9f65a907d20600f0) |
`public midi_one_byte_func_t `[`input_realtime_callback`](docs/api_midi_device.md#struct__midi__device_1a9448eba4afb7e43650434748db3777be) |
`public midi_one_byte_func_t `[`input_tunerequest_callback`](docs/api_midi_device.md#struct__midi__device_1a0cb8fd53e00cf1d4202d4fa04d038e8d) |
`public midi_sysex_func_t `[`input_sysex_callback`](docs/api_midi_device.md#struct__midi__device_1afff9a0ce641762aaef24c1e6953ec9a2) |
`public midi_var_byte_func_t `[`input_fallthrough_callback`](docs/api_midi_device.md#struct__midi__device_1abb974ec6d734001b4a0e370f292be503) |
`public midi_var_byte_func_t `[`input_catchall_callback`](docs/api_midi_device.md#struct__midi__device_1aae0d535129d4fd650edc98eb3f7584f8) |
`public midi_no_byte_func_t `[`pre_input_process_callback`](docs/api_midi_device.md#struct__midi__device_1aeb0bb8923d66c23d874e177dc4265754) |
`public uint8_t `[`input_buffer`](docs/api_midi_device.md#struct__midi__device_1a7c5684857d6af4ebc4dc12da27bd6b2a) |
`public input_state_t `[`input_state`](docs/api_midi_device.md#struct__midi__device_1a69a687d2d1c449ec15a11c07a5722e39) |
`public uint16_t `[`input_count`](docs/api_midi_device.md#struct__midi__device_1a68dea8e7b6151e89c85c95caa612ee5d) |
`public uint8_t `[`input_queue_data`](docs/api_midi_device.md#struct__midi__device_1ada41de021135dc423abedcbb30f366ff) |
`public `[`byteQueue_t`](#structbyte_queue__t)` `[`input_queue`](#struct__midi__device_1a49c8538a8a02193c58e28a56eb695d8f) |
## メンバー
#### `public midi_var_byte_func_t `[`send_func`](docs/api_midi_device.md#struct__midi__device_1a25d4c94b4bbccd5b98f1032b469f3ff9) {#struct__midi__device_1a25d4c94b4bbccd5b98f1032b469f3ff9}
#### `public midi_three_byte_func_t `[`input_cc_callback`](docs/api_midi_device.md#struct__midi__device_1a6da5236c1bc73877728df92d213a78d1) {#struct__midi__device_1a6da5236c1bc73877728df92d213a78d1}
#### `public midi_three_byte_func_t `[`input_noteon_callback`](docs/api_midi_device.md#struct__midi__device_1aa10b15cf1a7fb825a5df0d2abbe34a1c) {#struct__midi__device_1aa10b15cf1a7fb825a5df0d2abbe34a1c}
#### `public midi_three_byte_func_t `[`input_noteoff_callback`](docs/api_midi_device.md#struct__midi__device_1aaf290043078534d3a5a0ea4c840eba84) {#struct__midi__device_1aaf290043078534d3a5a0ea4c840eba84}
#### `public midi_three_byte_func_t `[`input_aftertouch_callback`](docs/api_midi_device.md#struct__midi__device_1acb0b4901c545cec4b28b126f2d8c315f) {#struct__midi__device_1acb0b4901c545cec4b28b126f2d8c315f}
#### `public midi_three_byte_func_t `[`input_pitchbend_callback`](docs/api_midi_device.md#struct__midi__device_1a305fea672caeb996f2233bf8cd2bef18) {#struct__midi__device_1a305fea672caeb996f2233bf8cd2bef18}
#### `public midi_three_byte_func_t `[`input_songposition_callback`](docs/api_midi_device.md#struct__midi__device_1a5f3f13638b3fef3fc561ed1bf301d586) {#struct__midi__device_1a5f3f13638b3fef3fc561ed1bf301d586}
#### `public midi_two_byte_func_t `[`input_progchange_callback`](docs/api_midi_device.md#struct__midi__device_1adaf1da617c9a10a9dcad00ab1959d3da) {#struct__midi__device_1adaf1da617c9a10a9dcad00ab1959d3da}
#### `public midi_two_byte_func_t `[`input_chanpressure_callback`](docs/api_midi_device.md#struct__midi__device_1ab7ca2925c539915d43974eff604d85f7) {#struct__midi__device_1ab7ca2925c539915d43974eff604d85f7}
#### `public midi_two_byte_func_t `[`input_songselect_callback`](docs/api_midi_device.md#struct__midi__device_1a89bed8a5a55376120cfc0a62b42f057f) {#struct__midi__device_1a89bed8a5a55376120cfc0a62b42f057f}
#### `public midi_two_byte_func_t `[`input_tc_quarterframe_callback`](docs/api_midi_device.md#struct__midi__device_1ad9813e75d22e284f9f65a907d20600f0) {#struct__midi__device_1ad9813e75d22e284f9f65a907d20600f0}
#### `public midi_one_byte_func_t `[`input_realtime_callback`](docs/api_midi_device.md#struct__midi__device_1a9448eba4afb7e43650434748db3777be) {#struct__midi__device_1a9448eba4afb7e43650434748db3777be}
#### `public midi_one_byte_func_t `[`input_tunerequest_callback`](docs/api_midi_device.md#struct__midi__device_1a0cb8fd53e00cf1d4202d4fa04d038e8d) {#struct__midi__device_1a0cb8fd53e00cf1d4202d4fa04d038e8d}
#### `public midi_sysex_func_t `[`input_sysex_callback`](docs/api_midi_device.md#struct__midi__device_1afff9a0ce641762aaef24c1e6953ec9a2) {#struct__midi__device_1afff9a0ce641762aaef24c1e6953ec9a2}
#### `public midi_var_byte_func_t `[`input_fallthrough_callback`](docs/api_midi_device.md#struct__midi__device_1abb974ec6d734001b4a0e370f292be503) {#struct__midi__device_1abb974ec6d734001b4a0e370f292be503}
#### `public midi_var_byte_func_t `[`input_catchall_callback`](docs/api_midi_device.md#struct__midi__device_1aae0d535129d4fd650edc98eb3f7584f8) {#struct__midi__device_1aae0d535129d4fd650edc98eb3f7584f8}
#### `public midi_no_byte_func_t `[`pre_input_process_callback`](docs/api_midi_device.md#struct__midi__device_1aeb0bb8923d66c23d874e177dc4265754) {#struct__midi__device_1aeb0bb8923d66c23d874e177dc4265754}
#### `public uint8_t `[`input_buffer`](docs/api_midi_device.md#struct__midi__device_1a7c5684857d6af4ebc4dc12da27bd6b2a) {#struct__midi__device_1a7c5684857d6af4ebc4dc12da27bd6b2a}
#### `public input_state_t `[`input_state`](docs/api_midi_device.md#struct__midi__device_1a69a687d2d1c449ec15a11c07a5722e39) {#struct__midi__device_1a69a687d2d1c449ec15a11c07a5722e39}
#### `public uint16_t `[`input_count`](docs/api_midi_device.md#struct__midi__device_1a68dea8e7b6151e89c85c95caa612ee5d) {#struct__midi__device_1a68dea8e7b6151e89c85c95caa612ee5d}
#### `public uint8_t `[`input_queue_data`](docs/api_midi_device.md#struct__midi__device_1ada41de021135dc423abedcbb30f366ff) {#struct__midi__device_1ada41de021135dc423abedcbb30f366ff}
#### `public `[`byteQueue_t`](#structbyte_queue__t)` `[`input_queue`](#struct__midi__device_1a49c8538a8a02193c58e28a56eb695d8f) {#struct__midi__device_1a49c8538a8a02193c58e28a56eb695d8f}

View File

@@ -0,0 +1,36 @@
# `midi_device_setup_process` グループ {#group__midi__device__setup__process}
<!---
original document: 0.10.9:docs/internals_midi_device_setup_process.md
git diff 0.10.9 HEAD -- docs/internals_midi_device_setup_process.md | cat
-->
これらは、デバイスを初期化して実行するために使う必要があるメソッドです。
## 概要
メンバー | 説明
--------------------------------|---------------------------------------------
`public void `[`midi_device_init`](#group__midi__device__setup__process_1gaf29deddc94ea98a59daa0bde1aefd9d9)`(`[`MidiDevice`](#struct__midi__device)` * device)` | デバイスを初期化します。
`public void `[`midi_device_process`](#group__midi__device__setup__process_1gaa3d5993d0e998a1b59bbf5ab9c7b492b)`(`[`MidiDevice`](#struct__midi__device)` * device)` | 入力データを処理します。
## メンバー
#### `public void `[`midi_device_init`](#group__midi__device__setup__process_1gaf29deddc94ea98a59daa0bde1aefd9d9)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__midi__device__setup__process_1gaf29deddc94ea98a59daa0bde1aefd9d9}
デバイスを初期化します。
問題のデバイスを使う前にこれを呼び出す必要があります。
#### パラメータ
* `device` 初期化するデバイス
#### `public void `[`midi_device_process`](#group__midi__device__setup__process_1gaa3d5993d0e998a1b59bbf5ab9c7b492b)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__midi__device__setup__process_1gaa3d5993d0e998a1b59bbf5ab9c7b492b}
入力データを処理します。
このメソッドは入力処理を駆動します。入力コールバックが呼び出されることが予想される場合は、このメソッドを頻繁に呼び出す必要があります。
#### パラメータ
* `device` 処理するデバイス

View File

@@ -0,0 +1,59 @@
# `midi_util` グループ {#group__midi__util}
<!---
original document: 0.10.9:docs/internals_midi_util.md
git diff 0.10.9 HEAD -- docs/internals_midi_util.md | cat
-->
## 概要
| メンバー | 説明
--------------------------------|---------------------------------------------
| `enum `[`midi_packet_length_t`](#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e) | 可能なパケット長の値の列挙型。
| `public bool `[`midi_is_statusbyte`](#group__midi__util_1ga12e3b42ff9cbb4b4f2bc455fc8743ee5)`(uint8_t theByte)` | 指定されたバイトがステータスバイトであるかどうかを検査します。
| `public bool `[`midi_is_realtime`](#group__midi__util_1gad2f52c363e34a8000d80c983c324e2d7)`(uint8_t theByte)` | 指定されたバイトがリアルタイムメッセージであるかどうかを検査します。
| `public `[`midi_packet_length_t`](#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e)` `[`midi_packet_length`](#group__midi__util_1gaa168b43af6ae9de0debce1625e4b8175)`(uint8_t status)` | 指定されたステータスバイトに関連付けられたパケットの長さを調べます。
## メンバー
#### `enum `[`midi_packet_length_t`](#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e) {#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e}
| 値 | 説明
--------------------------------|---------------------------------------------
UNDEFINED |
ONE |
TWO |
THREE |
可能なパケット長の値の列挙型。
#### `public bool `[`midi_is_statusbyte`](#group__midi__util_1ga12e3b42ff9cbb4b4f2bc455fc8743ee5)`(uint8_t theByte)` {#group__midi__util_1ga12e3b42ff9cbb4b4f2bc455fc8743ee5}
指定されたバイトがステータスバイトであるかどうかを検査します。
#### パラメータ
* `theByte` 検査するバイト
#### 返り値
指定されたバイトが MIDI ステータスバイトの場合は true
#### `public bool `[`midi_is_realtime`](#group__midi__util_1gad2f52c363e34a8000d80c983c324e2d7)`(uint8_t theByte)` {#group__midi__util_1gad2f52c363e34a8000d80c983c324e2d7}
指定されたバイトがリアルタイムメッセージであるかどうかを検査します。
#### パラメータ
* `theByte` 検査するバイト
#### 返り値
リアルタイムメッセージの場合は true、それ以外の場合は false
#### `public `[`midi_packet_length_t`](#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e)` `[`midi_packet_length`](#group__midi__util_1gaa168b43af6ae9de0debce1625e4b8175)`(uint8_t status)` {#group__midi__util_1gaa168b43af6ae9de0debce1625e4b8175}
指定されたステータスバイトに関連付けられたパケットの長さを調べます。
#### パラメータ
* `status` ステータスバイト
#### 返り値
パケットの長さ。バイトがステータスバイトではない場合、あるいは sysex ステータスバイトの場合は、UNDEFINED を返します。

View File

@@ -0,0 +1,246 @@
# `send_functions` グループ {#group__send__functions}
<!---
original document: 0.10.9:docs/internals_send_functions.md
git diff 0.10.9 HEAD -- docs/internals_send_functions.md | cat
-->
これらは、デバイスを介して MIDI データを送信するために使う関数です。
## 概要
メンバー | 説明
--------------------------------|---------------------------------------------
`public void `[`midi_send_cc`](#group__send__functions_1gaaf884811c92df405ca8fe1a00082f960)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t val)` | 指定されたデバイスを介して、コントロールチェンジメッセージを送信します。
`public void `[`midi_send_noteon`](#group__send__functions_1ga467bcf46dbf03ec269ce565b46bc2775)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t vel)` | 指定されたデバイスを介してノートオンメッセージを送信します。
`public void `[`midi_send_noteoff`](#group__send__functions_1gaedb7d8805425eef5d47d57ddcb4c7a49)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t vel)` | 指定されたデバイスを介してノートオフメッセージを送信します。
`public void `[`midi_send_aftertouch`](#group__send__functions_1ga0014847571317a0e34b2ef46a6bc584f)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t note_num,uint8_t amt)` | 指定されたデバイスを介してアフタータッチメッセージを送信します。
`public void `[`midi_send_pitchbend`](#group__send__functions_1gae5a4a1e71611e7534be80af9ce3d3491)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,int16_t amt)` | 指定されたデバイスを介してピッチベンドメッセージを送信します。
`public void `[`midi_send_programchange`](#group__send__functions_1ga7b15588ef25e5e1ff09c2afc3151ce86)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num)` | 指定されたデバイスを介してプログラムチェンジメッセージを送信します。
`public void `[`midi_send_channelpressure`](#group__send__functions_1gaf23e69fdf812e89c0036f51f88ab2e1b)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t amt)` | 指定されたデバイスを介してチャンネルプレッシャーメッセージを送信します。
`public void `[`midi_send_clock`](#group__send__functions_1ga4e1b11a7cdb0875f6e03ce7c79c581aa)`(`[`MidiDevice`](#struct__midi__device)` * device)` | 指定されたデバイスを介してクロックメッセージを送信します。
`public void `[`midi_send_tick`](#group__send__functions_1ga2b43c7d433d940c5b907595aac947972)`(`[`MidiDevice`](#struct__midi__device)` * device)` | 指定されたデバイスを介してティックメッセージを送信します。
`public void `[`midi_send_start`](#group__send__functions_1ga1569749a8d58ccc56789289d7c7245cc)`(`[`MidiDevice`](#struct__midi__device)` * device)` | 指定されたデバイスを介してスタートメッセージを送信します。
`public void `[`midi_send_continue`](#group__send__functions_1gaed5dc29d754a27372e89ab8bc20ee120)`(`[`MidiDevice`](#struct__midi__device)` * device)` | 指定されたデバイスを介してコンティニューメッセージを送信します。
`public void `[`midi_send_stop`](#group__send__functions_1ga026e1a620276cb653ac501aa0d12a988)`(`[`MidiDevice`](#struct__midi__device)` * device)` | 指定されたデバイスを介してストップメッセージを送信します。
`public void `[`midi_send_activesense`](#group__send__functions_1ga9b6e4c6ce4719d2604187b325620db37)`(`[`MidiDevice`](#struct__midi__device)` * device)` | 指定されたデバイスを介してアクティブセンスメッセージを送信します。
`public void `[`midi_send_reset`](#group__send__functions_1ga3671e39a6d93ca9568fc493001af1b1b)`(`[`MidiDevice`](#struct__midi__device)` * device)` | 指定されたデバイスを介してリセットメッセージを送信します。
`public void `[`midi_send_tcquarterframe`](#group__send__functions_1ga5b85639910eec280bb744c934d0fd45a)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t time)` | 指定されたデバイスを介してタイムコードクォータフレームメッセージを送信します。
`public void `[`midi_send_songposition`](#group__send__functions_1gab1c9eeef3b57a8cd2e6128d18e85eb7f)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t pos)` | 指定されたデバイスを介してソングポジションメッセージを送信します。
`public void `[`midi_send_songselect`](#group__send__functions_1ga42de7838ba70d949af9a50f9facc3c50)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t song)` | 指定されたデバイスを介してソングセレクトメッセージを送信します。
`public void `[`midi_send_tunerequest`](#group__send__functions_1ga8db6c7e04d48e4d2266dd59118ca0656)`(`[`MidiDevice`](#struct__midi__device)` * device)` | 指定されたデバイスを介してチューンリクエストメッセージを送信します。
`public void `[`midi_send_byte`](#group__send__functions_1ga857e85eb90b288385642d4d991e09881)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t b)` | 指定されたデバイスを介してバイトを送信します。
`public void `[`midi_send_data`](#group__send__functions_1ga36e2f2e45369d911b76969361679054b)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t count,uint8_t byte0,uint8_t byte1,uint8_t byte2)` | 最大3バイトのデータを送信します。
`public void `[`midi_send_array`](#group__send__functions_1ga245243cb1da18d2cea18d4b18d846ead)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t count,uint8_t * array)` | フォーマットされた MIDI データの配列を送信します。
## メンバー
#### `public void `[`midi_send_cc`](#group__send__functions_1gaaf884811c92df405ca8fe1a00082f960)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t val)` {#group__send__functions_1gaaf884811c92df405ca8fe1a00082f960}
指定されたデバイスを介して、コントロールチェンジメッセージ(cc)を送信します。
#### パラメータ
* `device` 送信に使うデバイス
* `chan` 送信するチャンネル、0-15
* `num` コントロールチェンジナンバー
* `val` コントロールチェンジナンバーの値
#### `public void `[`midi_send_noteon`](#group__send__functions_1ga467bcf46dbf03ec269ce565b46bc2775)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t vel)` {#group__send__functions_1ga467bcf46dbf03ec269ce565b46bc2775}
指定されたデバイスを介してノートオンメッセージを送信します。
#### パラメータ
* `device` 送信に使うデバイス
* `chan` 送信するチャンネル、0-15
* `num` ノート番号
* `vel` ノートベロシティ
#### `public void `[`midi_send_noteoff`](#group__send__functions_1gaedb7d8805425eef5d47d57ddcb4c7a49)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t vel)` {#group__send__functions_1gaedb7d8805425eef5d47d57ddcb4c7a49}
指定されたデバイスを介してノートオフメッセージを送信します。
#### パラメータ
* `device` 送信に使うデバイス
* `chan` 送信するチャンネル、0-15
* `num` ノート番号
* `vel` ノートベロシティ
#### `public void `[`midi_send_aftertouch`](#group__send__functions_1ga0014847571317a0e34b2ef46a6bc584f)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t note_num,uint8_t amt)` {#group__send__functions_1ga0014847571317a0e34b2ef46a6bc584f}
指定されたデバイスを介してアフタータッチメッセージを送信します。
#### パラメータ
* `device` 送信に使うデバイス
* `chan` 送信するチャンネル、0-15
* `note_num` ノート番号
* `amt` アフタータッチ量
#### `public void `[`midi_send_pitchbend`](#group__send__functions_1gae5a4a1e71611e7534be80af9ce3d3491)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,int16_t amt)` {#group__send__functions_1gae5a4a1e71611e7534be80af9ce3d3491}
指定されたデバイスを介してピッチベンドメッセージを送信します。
#### パラメータ
* `device` 送信に使うデバイス
* `chan` 送信するチャンネル、0-15
* `amt` ベンド量の範囲: -8192..8191、0 はベンドしないことを意味します
#### `public void `[`midi_send_programchange`](#group__send__functions_1ga7b15588ef25e5e1ff09c2afc3151ce86)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num)` {#group__send__functions_1ga7b15588ef25e5e1ff09c2afc3151ce86}
指定されたデバイスを介してプログラムチェンジメッセージを送信します。
#### パラメータ
* `device` 送信に使うデバイス
* `chan` 送信するチャンネル、0-15
* `num` 変更先のプログラム
#### `public void `[`midi_send_channelpressure`](#group__send__functions_1gaf23e69fdf812e89c0036f51f88ab2e1b)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t amt)` {#group__send__functions_1gaf23e69fdf812e89c0036f51f88ab2e1b}
指定されたデバイスを介してチャンネルプレッシャーメッセージを送信します。
#### パラメータ
* `device` 送信に使うデバイス
* `chan` 送信するチャンネル、0-15
* `amt` チャンネルプレッシャーの量
#### `public void `[`midi_send_clock`](#group__send__functions_1ga4e1b11a7cdb0875f6e03ce7c79c581aa)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga4e1b11a7cdb0875f6e03ce7c79c581aa}
指定されたデバイスを介してクロックメッセージを送信します。
#### パラメータ
* `device` 送信に使うデバイス
#### `public void `[`midi_send_tick`](#group__send__functions_1ga2b43c7d433d940c5b907595aac947972)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga2b43c7d433d940c5b907595aac947972}
指定されたデバイスを介してティックメッセージを送信します。
#### パラメータ
* `device` 送信に使うデバイス
#### `public void `[`midi_send_start`](#group__send__functions_1ga1569749a8d58ccc56789289d7c7245cc)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga1569749a8d58ccc56789289d7c7245cc}
指定されたデバイスを介してスタートメッセージを送信します。
#### パラメータ
* `device` 送信に使うデバイス
#### `public void `[`midi_send_continue`](#group__send__functions_1gaed5dc29d754a27372e89ab8bc20ee120)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1gaed5dc29d754a27372e89ab8bc20ee120}
指定されたデバイスを介してコンティニューメッセージを送信します。
#### パラメータ
* `device` 送信に使うデバイス
#### `public void `[`midi_send_stop`](#group__send__functions_1ga026e1a620276cb653ac501aa0d12a988)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga026e1a620276cb653ac501aa0d12a988}
指定されたデバイスを介してストップメッセージを送信します。
#### パラメータ
* `device` 送信に使うデバイス
#### `public void `[`midi_send_activesense`](#group__send__functions_1ga9b6e4c6ce4719d2604187b325620db37)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga9b6e4c6ce4719d2604187b325620db37}
指定されたデバイスを介してアクティブセンスメッセージを送信します。
#### パラメータ
* `device` 送信に使うデバイス
#### `public void `[`midi_send_reset`](#group__send__functions_1ga3671e39a6d93ca9568fc493001af1b1b)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga3671e39a6d93ca9568fc493001af1b1b}
指定されたデバイスを介してリセットメッセージを送信します。
#### パラメータ
* `device` 送信に使うデバイス
#### `public void `[`midi_send_tcquarterframe`](#group__send__functions_1ga5b85639910eec280bb744c934d0fd45a)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t time)` {#group__send__functions_1ga5b85639910eec280bb744c934d0fd45a}
指定されたデバイスを介してタイムコードクォータフレームメッセージを送信します。
#### パラメータ
* `device` 送信に使うデバイス
* `time` このクォータフレームの時間。範囲は、0..16383
#### `public void `[`midi_send_songposition`](#group__send__functions_1gab1c9eeef3b57a8cd2e6128d18e85eb7f)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t pos)` {#group__send__functions_1gab1c9eeef3b57a8cd2e6128d18e85eb7f}
指定されたデバイスを介してソングポジションメッセージを送信します。
#### パラメータ
* `device` 送信に使うデバイス
* `pos` ソングポジション
#### `public void `[`midi_send_songselect`](#group__send__functions_1ga42de7838ba70d949af9a50f9facc3c50)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t song)` {#group__send__functions_1ga42de7838ba70d949af9a50f9facc3c50}
指定されたデバイスを介してソングセレクトメッセージを送信します。
#### パラメータ
* `device` 送信に使うデバイス
* `song` 選択するソング
#### `public void `[`midi_send_tunerequest`](#group__send__functions_1ga8db6c7e04d48e4d2266dd59118ca0656)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga8db6c7e04d48e4d2266dd59118ca0656}
指定されたデバイスを介してチューンリクエストメッセージを送信します。
#### パラメータ
* `device` 送信に使うデバイス
#### `public void `[`midi_send_byte`](#group__send__functions_1ga857e85eb90b288385642d4d991e09881)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t b)` {#group__send__functions_1ga857e85eb90b288385642d4d991e09881}
指定されたデバイスを介してバイトを送信します。
これは、指定された MIDI デバイスを介してデータを送信する一般的なメソッドです。これは、この API に実装されていない sysex データまたはメッセージがある場合、それらを送信するのに役立ちます。そのようなものを見つけた場合は、私たちがそれらを追加できるように、作者に連絡してください。
#### パラメータ
* `device` 送信に使うデバイス
* `b` 送信するバイト
#### `public void `[`midi_send_data`](#group__send__functions_1ga36e2f2e45369d911b76969361679054b)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t count,uint8_t byte0,uint8_t byte1,uint8_t byte2)` {#group__send__functions_1ga36e2f2e45369d911b76969361679054b}
最大3バイトのデータを送信します。
これを使って sysex を通過できるように count に4の剰余が適用されます。
#### パラメータ
* `device` 送信に使うデバイス
* `count` 送信するバイト数、4の剰余が適用されます
* `byte0` 最初のバイト
* `byte1` 2番目のバイト。cnt % 4 != 2 の場合は無視されます
* `byte2` 3番目のバイト。cnt % 4 != 3 の場合は無視されます
#### `public void `[`midi_send_array`](#group__send__functions_1ga245243cb1da18d2cea18d4b18d846ead)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t count,uint8_t * array)` {#group__send__functions_1ga245243cb1da18d2cea18d4b18d846ead}
フォーマットされた MIDI データの配列を送信します。
sysex に使うことができます。
#### パラメータ
* `device` 送信に使うデバイス
* `count` 送信するバイト数
* `array` バイトの配列

View File

@@ -0,0 +1,66 @@
# `sysex_tools` グループ {#group__sysex__tools}
<!---
original document: 0.10.9:docs/internals_sysex_tools.md
git diff 0.10.9 HEAD -- docs/internals_sysex_tools.md | cat
-->
## 概要
| メンバー | 説明
--------------------------------|---------------------------------------------
| `public uint16_t `[`sysex_encoded_length`](#group__sysex__tools_1ga061e5607030412d6e62e2390d8013f0a)`(uint16_t decoded_length)` | エンコード後のメッセージの長さを計算します。
| `public uint16_t `[`sysex_decoded_length`](#group__sysex__tools_1ga121fc227d3acc1c0ea08c9a5c26fa3b0)`(uint16_t encoded_length)` | デコード後のメッセージの長さを計算します。
| `public uint16_t `[`sysex_encode`](#group__sysex__tools_1ga54d77f8d32f92a6f329daefa2b314742)`(uint8_t * encoded,const uint8_t * source,uint16_t length)` | sysex メッセージで安全に送信できるようにデータをエンコードします。
| `public uint16_t `[`sysex_decode`](#group__sysex__tools_1gaaad1d9ba2d5eca709a0ab4ba40662229)`(uint8_t * decoded,const uint8_t * source,uint16_t length)` | エンコードされたデータをデコードします。
## メンバー
#### `public uint16_t `[`sysex_encoded_length`](#group__sysex__tools_1ga061e5607030412d6e62e2390d8013f0a)`(uint16_t decoded_length)` {#group__sysex__tools_1ga061e5607030412d6e62e2390d8013f0a}
エンコード後のメッセージの長さを計算します。
#### パラメータ
* `decoded_length` エンコードするメッセージの長さのバイト数。
#### 返り値
エンコード後のメッセージの長さのバイト数。
#### `public uint16_t `[`sysex_decoded_length`](#group__sysex__tools_1ga121fc227d3acc1c0ea08c9a5c26fa3b0)`(uint16_t encoded_length)` {#group__sysex__tools_1ga121fc227d3acc1c0ea08c9a5c26fa3b0}
デコード後のメッセージの長さを計算します。
#### パラメータ
* `encoded_length` エンコードされたメッセージの長さのバイト数。
#### 返り値
デコードされた後のメッセージの長さのバイト数。
#### `public uint16_t `[`sysex_encode`](#group__sysex__tools_1ga54d77f8d32f92a6f329daefa2b314742)`(uint8_t * encoded,const uint8_t * source,uint16_t length)` {#group__sysex__tools_1ga54d77f8d32f92a6f329daefa2b314742}
sysex メッセージで安全に送信できるようにデータをエンコードします。
#### パラメータ
* `encoded` 出力データバッファは、少なくとも sysex_encoded_length(length) バイトの長さが必要です。
* `source` エンコードされるデータの入力バッファ。
* `length` 入力バッファからエンコードするバイト数。
#### 返り値
エンコードされたバイト数。
#### `public uint16_t `[`sysex_decode`](#group__sysex__tools_1gaaad1d9ba2d5eca709a0ab4ba40662229)`(uint8_t * decoded,const uint8_t * source,uint16_t length)` {#group__sysex__tools_1gaaad1d9ba2d5eca709a0ab4ba40662229}
エンコードされたデータをデコードします。
#### パラメータ
* `decoded` 出力データバッファは、少なくとも sysex_decoded_length(length) バイトの長さが必要です。
* `source` デコードされるデータの入力バッファ。
* `length` 入力バッファからデコードするバイト数。
#### 返り値
デコードされたバイト数。

View File

@@ -277,7 +277,7 @@ High ヒューズは 0xD9 か 0x99 のどちらかになります。
avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xCB:m avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xCB:m
別のコントローラーを使用している場合や、別の設定を希望する場合は、この[AVR ヒューズ計算機](http:/www.engbedded.comfusecalc)を使用して、より適切な値を見つけることができます。 別のコントローラーを使用している場合や、別の設定を希望する場合は、この[AVR ヒューズ計算機](https://www.engbedded.com/fusecalc)を使用して、より適切な値を見つけることができます。
## ヘルプ ## ヘルプ

View File

@@ -48,7 +48,7 @@ MT(MOD_LCTL | MOD_LSFT, KC_ESC)
| `RCAG_T(kc)` | | 押したままの場合は右 Control、右 Alt と右 GUI、タップした場合は `kc` | | `RCAG_T(kc)` | | 押したままの場合は右 Control、右 Alt と右 GUI、タップした場合は `kc` |
| `C_S_T(kc)` | | 押したままの場合は左 Control と左 Shift、タップした場合は `kc` | | `C_S_T(kc)` | | 押したままの場合は左 Control と左 Shift、タップした場合は `kc` |
| `MEH_T(kc)` | | 押したままの場合は左 Control、左 Shift と左 Alt、タップした場合は `kc` | | `MEH_T(kc)` | | 押したままの場合は左 Control、左 Shift と左 Alt、タップした場合は `kc` |
| `HYPR_T(kc)` | `ALL_T(kc)` | 押したままの場合は左 Control、左 Shift、左 Alt と左 GUI、タップした場合は `kc` - より詳しくは[ここ](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)を見てください | | `HYPR_T(kc)` | `ALL_T(kc)` | 押したままの場合は左 Control、左 Shift、左 Alt と左 GUI、タップした場合は `kc` - より詳しくは[ここ](https://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)を見てください |
## 注意事項 ## 注意事項

View File

@@ -16,7 +16,7 @@ QMK は、簡単なことは簡単に、そして、難しいことを可能な
お使いのキーボードで QMK を実行できるかどうか不明ですか? お使いのキーボードで QMK を実行できるかどうか不明ですか?
もし作成したキーボードがメカニカルキーボードの場合、実行できる可能性が高いです。 もし作成したキーボードがメカニカルキーボードの場合、実行できる可能性が高いです。
QMK は[多くの趣味のキーボード](http://qmk.fm/keyboards/)をサポートしています。 QMK は[多くの趣味のキーボード](https://qmk.fm/keyboards/)をサポートしています。
現在使用しているキーボードが QMK を実行できない場合、QMK を実行できるキーボードの選択肢はたくさんあります。 現在使用しているキーボードが QMK を実行できない場合、QMK を実行できるキーボードの選択肢はたくさんあります。
## このガイドは私のためにあるのでしょうか? ## このガイドは私のためにあるのでしょうか?

View File

@@ -52,7 +52,7 @@ Linux か Unix 環境を用意するだけで、QMK に残りをインストー
MSYS2 と Git と QMK CLI のインストールが必要です。 MSYS2 と Git と QMK CLI のインストールが必要です。
[MSYS2 homepage](http://www.msys2.org) のインストール手順に従ってください。開いている MSYS2 の全ターミナル画面を閉じて、新しい MinGW 64-bit ターミナル画面を開きます。**注意: これはインストールが完了した時に開く MSYS ターミナルと同じ *ではありません*。** [MSYS2 homepage](https://www.msys2.org) のインストール手順に従ってください。開いている MSYS2 の全ターミナル画面を閉じて、新しい MinGW 64-bit ターミナル画面を開きます。**注意: これはインストールが完了した時に開く MSYS ターミナルと同じ *ではありません*。**
それから、次のように実行します: それから、次のように実行します:

View File

@@ -28,7 +28,7 @@ Eclipse のような IDE の使用は、プレーンテキストエディタの
Eclipse は Java アプリケーションであるため、実行するには Java 8 以降をインストールする必要があります。JRE または JDK を選択できますが、Java 開発を行う場合は後者が役に立ちます。 Eclipse は Java アプリケーションであるため、実行するには Java 8 以降をインストールする必要があります。JRE または JDK を選択できますが、Java 開発を行う場合は後者が役に立ちます。
# Eclipse とプラグインのインストール # Eclipse とプラグインのインストール
Eclipse は用途に応じて[いくつかのフレーバー](http://www.eclipse.org/downloads/eclipse-packages/)で提供されます。AVR スタックを構成するパッケージは無いため、Eclipse CDT (C/C++ 開発ツール)から始め、必要なプラグインをインストールする必要があります。 Eclipse は用途に応じて[いくつかのフレーバー](https://www.eclipse.org/downloads/eclipse-packages/)で提供されます。AVR スタックを構成するパッケージは無いため、Eclipse CDT (C/C++ 開発ツール)から始め、必要なプラグインをインストールする必要があります。
## Eclipse CDT のダウンロードとインストール ## Eclipse CDT のダウンロードとインストール
システムに既に Eclipse CDT がある場合は、この手順をスキップできます。ただし、より良いサポートのために最新の状態に保つことをお勧めします。 システムに既に Eclipse CDT がある場合は、この手順をスキップできます。ただし、より良いサポートのために最新の状態に保つことをお勧めします。
@@ -37,7 +37,7 @@ Eclipse は用途に応じて[いくつかのフレーバー](http://www.eclipse
インストールは非常に簡単です: [5 Steps to install Eclipse](https://eclipse.org/downloads/eclipse-packages/?show_instructions=TRUE) に従い、ステップ3で **Eclipse IDE for C/C++ Developers** を選択します。 インストールは非常に簡単です: [5 Steps to install Eclipse](https://eclipse.org/downloads/eclipse-packages/?show_instructions=TRUE) に従い、ステップ3で **Eclipse IDE for C/C++ Developers** を選択します。
あるいは、直接 [Eclipse IDE for C/C++ Developers をダウンロード](http://www.eclipse.org/downloads/eclipse-packages/)([現在のバージョンへの直接リンク](http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/neonr))し、選択した場所にパッケージを解凍することもできます (これにより `eclipse` フォルダが作成されます)。 あるいは、直接 [Eclipse IDE for C/C++ Developers をダウンロード](https://www.eclipse.org/downloads/eclipse-packages/)([現在のバージョンへの直接リンク](https://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/neonr))し、選択した場所にパッケージを解凍することもできます (これにより `eclipse` フォルダが作成されます)。
## 最初の起動 ## 最初の起動
インストールが完了したら、<kbd>Launch</kbd> ボタンをクリックします。(パッケージを手動で解凍した場合は、Eclipse をインストールしたフォルダを開き、`eclipse` 実行可能ファイルをダブルクリックします) インストールが完了したら、<kbd>Launch</kbd> ボタンをクリックします。(パッケージを手動で解凍した場合は、Eclipse をインストールしたフォルダを開き、`eclipse` 実行可能ファイルをダブルクリックします)
@@ -49,8 +49,8 @@ Workspace 選択で入力を促された場合は、Eclipse メタデータと
## 必要なプラグインをインストール ## 必要なプラグインをインストール
注意: プラグインをインストールするごとに、Eclipse を再起動する必要はありません。全てのプラグインがインストールされたら単に1回再起動します。 注意: プラグインをインストールするごとに、Eclipse を再起動する必要はありません。全てのプラグインがインストールされたら単に1回再起動します。
### [The AVR Plugin](http://avr-eclipse.sourceforge.net/) ### [The AVR Plugin](https://avr-eclipse.sourceforge.net/)
これは最も重要なプラグインで、Eclipse が AVR C コードを_理解_できるようになります。[更新サイトを使うための指示](http://avr-eclipse.sourceforge.net/wiki/index.php/Plugin_Download#Update_Site)に従い、未署名コンテンツのセキュリティ警告に同意します。 これは最も重要なプラグインで、Eclipse が AVR C コードを_理解_できるようになります。[更新サイトを使うための指示](https://avr-eclipse.sourceforge.net/wiki/index.php/Plugin_Download#Update_Site)に従い、未署名コンテンツのセキュリティ警告に同意します。
### [ANSI Escape in Console](https://marketplace.eclipse.org/content/ansi-escape-console) ### [ANSI Escape in Console](https://marketplace.eclipse.org/content/ansi-escape-console)
このプラグインは QMK makefile によって生成された色付きビルド出力を適切に表示するために必要です。 このプラグインは QMK makefile によって生成された色付きビルド出力を適切に表示するために必要です。
@@ -71,7 +71,7 @@ Workspace 選択で入力を促された場合は、Eclipse メタデータと
* _AVR-GCC Toolchain_ を選択します; * _AVR-GCC Toolchain_ を選択します;
* 残りをそのままにして、<kbd>Finish</kbd> をクリックします * 残りをそのままにして、<kbd>Finish</kbd> をクリックします
![Eclipse での QMK のインポート](http://i.imgur.com/oHYR1yW.png) ![Eclipse での QMK のインポート](https://i.imgur.com/oHYR1yW.png)
3. これでプロジェクトがロードされインデックスされます。左側の _Project Explorer_ から、簡単にファイルを参照できます。 3. これでプロジェクトがロードされインデックスされます。左側の _Project Explorer_ から、簡単にファイルを参照できます。

View File

@@ -80,7 +80,7 @@ QMK は `KC_NO` を使って、スイッチマトリックス内のスイッチ
## JSON ファイルのビルド ## JSON ファイルのビルド
JSON ファイルをビルドする最も簡単な方法は、[Keyboard Layout Editor](http://www.keyboard-layout-editor.com/) ("KLE") でレイアウトを作成することです。この Raw Data を QMK tool に入れて、Configurator が読み出して使用する JSON ファイルに変換します。KLE は numpad レイアウトをデフォルトで開くため、Getting Started の説明を削除し、残りを使います。 JSON ファイルをビルドする最も簡単な方法は、[Keyboard Layout Editor](https://www.keyboard-layout-editor.com/) ("KLE") でレイアウトを作成することです。この Raw Data を QMK tool に入れて、Configurator が読み出して使用する JSON ファイルに変換します。KLE は numpad レイアウトをデフォルトで開くため、Getting Started の説明を削除し、残りを使います。
レイアウトが望み通りのものになったら、KLE の Raw Data タブに移動し、内容をコピーします: レイアウトが望み通りのものになったら、KLE の Raw Data タブに移動し、内容をコピーします:

View File

@@ -9,7 +9,7 @@
Atmel、Cypress、Kinetis、NXP、ST、TI など多くの企業が生産する 32 ビット MCU のライン。 Atmel、Cypress、Kinetis、NXP、ST、TI など多くの企業が生産する 32 ビット MCU のライン。
## AVR ## AVR
[Atmel](http://www.microchip.com/) が生産する 8 ビット MCU のライン。AVR は TMK がサポートしていた元のプラットフォームでした。 [Atmel](https://www.microchip.com/) が生産する 8 ビット MCU のライン。AVR は TMK がサポートしていた元のプラットフォームでした。
## AZERTY ## AZERTY
標準的な Français (フランス) キーボードレイアウト。キーボードの最初の6つのキーから命名されました。 標準的な Français (フランス) キーボードレイアウト。キーボードの最初の6つのキーから命名されました。
@@ -131,7 +131,7 @@ QMK にコードを送信するリクエスト。全てのユーザが個人の
キーが既に押されている間にキーを押すことを指す用語。似たものに 2KRO、6KRO、NKRO が含まれます。 キーが既に押されている間にキーを押すことを指す用語。似たものに 2KRO、6KRO、NKRO が含まれます。
## スキャンコード ## スキャンコード
単一のキーを表す USB 経由の HID レポートの一部として送信される1バイトの数値。これらの値は、[USB-IF](http://www.usb.org/) が発行する [HID Usage Tables](https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf) に記載されています。 単一のキーを表す USB 経由の HID レポートの一部として送信される1バイトの数値。これらの値は、[USB-IF](https://www.usb.org/) が発行する [HID Usage Tables](https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf) に記載されています。
## スペースカデットシフト ## スペースカデットシフト
左または右 shift を1回以上タップすることで、様々なタイプの括弧を入力できる特別な shift キーのセット。 左または右 shift を1回以上タップすることで、様々なタイプの括弧を入力できる特別な shift キーのセット。

View File

@@ -42,7 +42,7 @@
### キー辞書形式 ### キー辞書形式
レイアウトの各キー辞書は、キーの物理プロパティを記述します。<http://keyboard-layout-editor.com> の Raw Code に精通している場合、多くの概念が同じであることが分かります。可能な限り同じキー名とレイアウトの選択を再利用しますが、keyboard-layout-editor とは異なって各キーはステートレスで、前のキーからプロパティを継承しません。 レイアウトの各キー辞書は、キーの物理プロパティを記述します。<https://keyboard-layout-editor.com> の Raw Code に精通している場合、多くの概念が同じであることが分かります。可能な限り同じキー名とレイアウトの選択を再利用しますが、keyboard-layout-editor とは異なって各キーはステートレスで、前のキーからプロパティを継承しません。
全てのキーの位置と回転は、キーボードの左上と、各キーの左上を基準にして指定されます。 全てのキーの位置と回転は、キーボードの左上と、各キーの左上を基準にして指定されます。

View File

@@ -51,6 +51,7 @@ HID Keyboard/Keypad usage ページでは 256 未満の usage が定義されて
| Norwegian | `keymap_norwegian.h` | | Norwegian | `keymap_norwegian.h` |
| Polish | `keymap_polish.h` | | Polish | `keymap_polish.h` |
| Portuguese | `keymap_portuguese.h` | | Portuguese | `keymap_portuguese.h` |
| Portuguese (macOS, ISO) | `keymap_portuguese_osx_iso.h` |
| Portuguese (Brazil) | `keymap_br_abnt2.h` | | Portuguese (Brazil) | `keymap_br_abnt2.h` |
| Romanian | `keymap_romanian.h` | | Romanian | `keymap_romanian.h` |
| Russian* | `keymap_russian.h` | | Russian* | `keymap_russian.h` |

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