Compare commits

...

125 Commits

Author SHA1 Message Date
Joel Challis
64b7cfe735 Refactor ps2avrgb i2c ws2812 to core (#7183)
* Refactor ps2avrgb i2c ws2812 to core

* Refactor jj40 to use ws2812 i2c driver

* Refactor ps2avrgb template to use ws2812 i2c driver

* Add ws2812 stub files

* clang-format and driver config

* Add ws2812 driver docs

* Fix default config values

* Update tmk_core/protocol/vusb/main.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>
2019-10-29 15:53:11 -07:00
Spaceman
908aede957 Update feature_bluetooth.md (#7193)
* Update feature_bluetooth.md

* Update feature_bluetooth.md

* Update docs/feature_bluetooth.md

Co-Authored-By: Joel Challis <git@zvecr.com>

* Update docs/feature_bluetooth.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-10-30 09:43:01 +11:00
Wermeille Bastien
cb3b5563e4 [Docs] Fix some misspells in French documentation (#7171)
* Fix some spelling mistakes

* Fix some misspell in french documentation

* Small misspell fix in French in ChangeLog
2019-10-29 15:42:19 -07:00
Toshihiro Suzuki
d624690135 [Keymap] Add keymaps for myself (#7141)
* [zinc] add toshi0383 qwerty layout

* Add dvorak like keymap

* update keymap

* update keymap

* update

* Add my keymap for reviung39

* cleanup

* fix RESET button position

* add rgb_mod to raise

* Update keyboards/reviung39/keymaps/toshi0383/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

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

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

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

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* remove unnecessary code

* improve comment

* Update keyboards/reviung39/keymaps/toshi0383/keymap.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>

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

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* remove unused function

* cleanup

* refactor using MO
2019-10-29 15:41:37 -07:00
Dominic Fleckner
f164016566 [Docs] Translated "CLI" documentation to German (#7178)
* Translated "CLI" documentation to German

> * Weise den User an, die Umgebungs-Variable `QMK_HOME` zu setzen, um die Firmware-Quelle anders einzustellen als `~/qmk_firmware`.
- I wasn't quite sure with this translation, as I didn't understand the context in the original English docs.
- The link to the CLI Configuration page is currently not working, due to it being missing in German.

* Update docs/de/cli.md - typo

* Update docs/de/cli.md - added Installation option into documentation

* Update docs/de/cli.md - changed article for CLI

* Update docs/de/cli.md Spelling

* Update docs/de/cli.md Spelling

* Update docs/de/cli.md de-anglicization

* Update docs/de/cli.md Spelling

* Update docs/de/cli.md Synonym

* Update docs/de/cli.md Added Installation option

* Cleaned up installation option duplicate

Co-Authored-By: kuchosauronad0 <22005492+kuchosauronad0@users.noreply.github.com>
2019-10-29 13:33:09 -07:00
Drashna Jaelre
0e6f78547e [Docs] Update flashing information to include :flash target (#6999)
* Update Newbs Flashing guide

For the newbs that want to start flashing

* Update flashing docs

* Misc flashing

* Attempt at flashing in french

Lets hope I didn't butcher this too badly with machine transations

* Update docs/feature_userspace.md

* Apply language suggestions from code review

* Apply suggestions from code review

* Apply additional fr lang suggestions from code review

* Apply suggestions from code review

Co-Authored-By: fauxpark <fauxpark@gmail.com>
Co-Authored-By: Noan Mousy <4sstylz@protonmail.ch>
Co-Authored-By: Xavier Hahn <xavier.hahn@gmail.com>
Co-Authored-By: Vincent LE GOFF <vince.legoff@gmail.com>
2019-10-29 13:15:03 -07:00
Christoffer Holmberg
476f556613 [Keymap] Update layout for my nyquist (#7188)
* Add layer for gaming without fancy Shift & Ctrl keys

* Add default layer select to ARRW layer

* Define layers with an enum to save fw space
2019-10-29 01:39:15 -07:00
St. John Johnson
e0e26957d4 Fix the CLI docs (#6979)
- Sort the commands alphabetically
- Add missing `json_keymap`
- Correct underscore to dash
2019-10-29 01:24:36 +00:00
Jonathan Rascher
afc5cb7f0a Fix Lily58 build with link-time optimization (#7181) 2019-10-29 01:08:48 +00:00
Joel Challis
e48fdebe5a Reduce duplication for ARM/AVR ws2812 RGB Matrix driver (#7180)
* Reduce duplication for ARM/AVR ws2812 rgb_matrix driver

* Reduce duplication for ARM/AVR ws2812 rgb_matrix driver - Fix setled_all use of r,g,b
2019-10-29 01:00:03 +00:00
Chris Alves
1b06ea0c86 [Keymap] Added new custom keymap for the DZ60 (#6948)
* Added custom dz60 keymap

* Update readme.md

* Updated pictures in README.md

* README.md fixes

* Updated mouse layout/ added ` key

* Changed bkspc key to del in mod

* Changed picture

* Updated keymap

* Removed default dz60 config.h

* Updated Readme

* Added Devorak Keymap

* Re-added Default Config File

* Updated Flash Command

* Cleaned Up Custom Config File

* Added Lock Security Layer

* Updated Readme Picture
2019-10-28 17:25:11 -07:00
J.Flanagan
c7a8cab883 [Keyboard] Add M0116b keyboard (#7162)
* initial commit

restart of m0116b development

* initial commit

restart of m0116b development

* Major and minor changes for new PCB design

Changed matrix_row_pins and matrix_sol_pins to match new PCB design
Changed layout matrix to match new PCB design
Minor changes to settings in rules.mk
Minor changes to readme.md files

* Update rules.mk

Changed settings in rules.mk

* major and minor changes

added a default keymap (copy of the m0116 keymap, just to have a default option)
changes to the info.json

* initial commit

restart of m0116b development

* Major and minor changes for new PCB design

Changed matrix_row_pins and matrix_sol_pins to match new PCB design
Changed layout matrix to match new PCB design
Minor changes to settings in rules.mk
Minor changes to readme.md files

* Update rules.mk

Changed settings in rules.mk

* major and minor changes

added a default keymap (copy of the m0116 keymap, just to have a default option)
changes to the info.json

* Update keyboards/sck/m0116b/keymaps/default/keymap.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/sck/m0116b/keymaps/default/keymap.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/sck/m0116b/keymaps/m0116/keymap.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/sck/m0116b/keymaps/m0116/keymap.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/sck/m0116b/keymaps/m0118/keymap.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/sck/m0116b/m0116b.h

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/sck/m0116b/m0116b.h

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/sck/m0116b/keymaps/m0118/keymap.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Requested changes

Changes per requests

* Changes to keymaps

Changes as discussed

corrected location of custom_keycodes declaration and changed custom keycode in keymap per request and discussion.
2019-10-28 16:57:16 -07:00
Drashna Jaelre
947e61eaeb [Keyboard] Change Corne RGB Matrix split handling (#7117)
* [Keyboard] Change Corne RGB Matrix split handling

This uses the "is_master" detection to set the led matrix, rather than a define at compile time.

This means that the same hex can be used for both halves, not just one or the other.  The caveat is that this costs ~240 bytes to do.
However, I feel that this is a good trade-off, not just lazy.

* Update documentation for RGB Matrix on the Corne
2019-10-28 16:29:00 -07:00
Yan-Fa Li
a096453259 [Keyboard] Fix matrix for Tsangan (#7159)
- 1st mod after space bar was wrong position
2019-10-28 16:26:59 -07:00
Christoffer Holmberg
e376aa284d [Keymap] Layout update for my ergodox (#7187)
* Add KC_ESC to normal location and move SE_HALF to ARRW layer

* Add `<` and `>` to SYMB layer as standalone keys
2019-10-28 16:26:13 -07:00
Nikita Titov
4fef3b23e4 [Docs] started Russian translation of Newbs Guide (partial) (#6967)
* started Russian translation

* added translation of some newbs docs

* do not translate firmware word in name and transliterate names keeping original ones in brackets

* addressed review comments

* addressed more review comments

Co-Authored-By: nabokovas <bbkv@bk.ru>
2019-10-28 16:22:58 -07:00
Xyverz
f19c8b2d5d [Keymap] Updating keymaps (#7170)
* Added WOW layer

* Initial commit for this branch. Still a work in progress.

* Added Rorschach keyboard layout.

* Simplified keymap

Removed the media layer to help simplify things. Also corrected some
keymap mistakes in the Qwerty and Colemak layers.

* Added ErgoTravel keymap.

* reverted to previous layout.

* Added Sol keyboard layout.

* Minor changes to keymap.

* more changes

* Added sol graphic by Kagerufu and Cardiactuna

* Added colemak layer because I can.

* more changes to sol layout

* Streamlined Sol layout

* minor tweaks to sol layout

* further revisions to sol keymap.

* Removing deprecated #include statements from my keymaps

* Standardizing keymap `include` lines.

* Minor change to keymap.

Swapped ESC with GRV on all alpha layers.

* Tweaks to Atreus62 Keymap

Added a layer for FPS RPG Loot Shooters.

* Fixed readme.md for Atreus keymap.

Replaced "Keymap" with "Layer" in illustrations for continuity's sake

* More readme.md clean-up

More clarification in the Atreus readme file.

* Next verse, same as the first.

* Changes to Sol layout

Bringing my Sol layout more in line with my other Orthos.

* Fixed keymap GUI.

Replaced left-hand "RGUI" with "LGUI" on all layers as it should be.

* Added ALPS64 keymap

* Formatting corrections

* fixes to config.h and keymap.c

* Fixed errors

This commit fixes a pathing issue in keyboards/orthodox/keymaps/xyverz/config.h
and removes an stupid comma at the end of each LAYOUT stanza in
keyboards/rgbkb/sol/keymaps/xyverz/keymap.c left there by me.

* Fixed orthodox keymap config.h file

I hope this one fixes the problem. *sigh*

* Making suggested changes for PR#6192

Thanks to noroadsleft, fauxpark, and drashna. Still have
more work to do, but at least these suggestions have been applied.

* Fixing build errors

Travis has shown me the error of my ways...

* More fixes and corrections

Those pesky semicolons...

* More Fixes.

* Removing unneeded code snippet.

* fixed omitted semicolons

* Code updates to my keymaps

Updating the code for my Iris, Atreus62, and Atreus keymaps.

* Fixed Atreus62 Keymap

I forgot to add in the aliases for LOWER, RAISE, and ADJUST.

* Added userspace

Also made changes to Atreus62 Keymap to turn the red LEDs off on the ProMicro

* Fixing code that disables LEDs on ProMicros
Also tidied up my ErgoTravel keymap.

* Moving userspace to new branch

Moving my userspace to a new branch for the sake of keeping things
clean on the master branch.

* Added F13-F15 to Atreus62 Layout.

* Update readme.md.

* Updated Phantom keymap to current keymap standards

* Phantom keymap updates

Further updates - tidying and removing cruft.
Thank you zvecr on Discord for the help!

* Standards Updates

Bringing my Kinesis keymap up to current code standards

* Adding a readme

* Bring GH60 code to standard

* Utilizing layouts for 60_ansi and tkl_ansi

Moving my GH60 and Phantom keymaps into layouts/community/

* Alps64 layout removal

Removing my Alps64 keymap now that I've setup my 60_ansi layout.

* Moved Clueboard layout to community/66_ansi.

* Additions to 66_ansi config.h

* Bringing keymaps up to standard.

* More updates to keymaps.

* Syntax updates

* Revert "Syntax updates"

This reverts commit a892b2d9fc.

* Moved WIP keymaps

Moved my WIP keymaps to my wip_keymaps branch to keep my master clean

* Updates requested by noroadsleft

* more changes per noroadsleft

More fixes as requested by noroadsleft. Further tidy-up and
standardization of my keymap code.
2019-10-28 16:09:01 -07:00
fauxpark
8ab7f1f39e Fix formatting for sendstring LUTs (#7176) 2019-10-28 15:54:05 -07:00
Yadunand Prem
917ab71c52 Clean macos install script (#7186) 2019-10-28 22:13:07 +00:00
fauxpark
6d7c6d4fd6 Cleanup rules.mk for 32U4 keyboards, R-S (#7182) 2019-10-28 19:08:00 +00:00
Joel Challis
8bc90ee20c Fix travis build failures for namecard2x4 (#7189) 2019-10-28 19:05:27 +00:00
Adam Perlman
1971f22285 Update split i2c docs for example of when pull-ups are required (#7143) 2019-10-28 18:10:25 +00:00
Arda Kılıçdağı
24cf6dc7f4 aranck handwired keyboard added (#7151)
* aranck handwired keyboard added

* layer enum updated

* layout optimisations and general fixes done

* Readme updated

* Readme updated

* Readme updated
2019-10-28 18:04:37 +00:00
J.Flanagan
84ac03bbab [Keyboard] Add NEISO Macro Pad (#7163)
* Initial Commit

Initial commit of the N-E-ISO Pad

* Changes to keymap.c

Minor Changes to keymap.c

* Major Changes

Changes to config.h, neiso.c, neiso.h, readme.md, rules.mk, info.json

* Updated readme.md

Changed wording of redme.md

* Initial Commit

Initial commit of the N-E-ISO Pad

* Changes to keymap.c

Minor Changes to keymap.c

* Major Changes

Changes to config.h, neiso.c, neiso.h, readme.md, rules.mk, info.json

* Updated readme.md

Changed wording of redme.md

* Update keyboards/sck/neiso/info.json

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/sck/neiso/info.json

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/sck/neiso/keymaps/default/keymap.c

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/sck/neiso/neiso.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Changes per request

Removed lines 55-60 from default/keymap.c per request
2019-10-28 17:57:15 +00:00
Yan-Fa Li
5777177cec [keyboard] yanfali fruity60 prototype (#7021)
* initial commit

* README

* Unique id

* info.json

* layotus

* br

* Move to handwired

* cleanup

* Disable command for fruity out of flash space

* Old compiler

turn off command
2019-10-28 16:47:48 +00:00
Jonathan Rascher
92be2439ec Couple more minor Lily58 keymap tweaks (#7175)
* Move grave/tilde and backslash/pipe to left hand

* Shift media keys to be aligned with home row

* Update KLE images

* Mention new media key location in readme

* Turn off a couple more features for explicitness
2019-10-28 02:53:49 +00:00
Yadunand Prem
d5316e9714 Update URL for 60-keyboard.hwdb (#7185) 2019-10-28 02:41:22 +00:00
Salicylic-acid3
85688f926a [Keyboard] Add keyboard Naked64 (#7144)
* [Keyboard] Add keyboard Naked64

Add Naekd64 keyboard.

A 64 keys Ortholinear + Alice Layout keyboard.
Salicylic-acid3

* Update keyboards/naked64/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked64/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked64/rev1/rev1.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked64/rev1/rev1.h

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked64/keymaps/default_with_setta21/keymap.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked64/keymaps/salicylic_with_setta21/keymap.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked64/keymaps/salicylic_with_setta21/keymap.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked64/keymaps/salicylic_with_setta21/keymap.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

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

Co-Authored-By: Drashna Jaelre <drashna@live.com>

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

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/naked64/keymaps/default_with_setta21/keymap.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>

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

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/naked64/keymaps/default_with_setta21/keymap.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/naked64/keymaps/salicylic/keymap.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/naked64/keymaps/salicylic/keymap.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/naked64/keymaps/salicylic_with_setta21/keymap.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/naked64/keymaps/salicylic_with_setta21/keymap.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/naked64/keymaps/salicylic_with_setta21/keymap.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/naked64/keymaps/default_with_setta21/keymap.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/naked64/rev1/rev1.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/naked64/keymaps/salicylic/keymap.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/naked64/keymaps/default_with_setta21/keymap.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked64/keymaps/default_with_setta21/keymap.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked64/keymaps/default_with_setta21/keymap.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked64/keymaps/default_with_setta21/keymap.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked64/keymaps/salicylic_with_setta21/keymap.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked64/keymaps/salicylic_with_setta21/keymap.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked64/keymaps/salicylic_with_setta21/keymap.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked64/keymaps/salicylic_with_setta21/keymap.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Modify info.json and rule.mk

rule.mk modifies comments.
info.json is changed to Layout without angle.

* Update info.json

Puts the keys in the correct sequence.
2019-10-26 18:10:50 -07:00
fauxpark
40de65eac4 Backslash-escape pipe character in keycode lists (#7157) 2019-10-26 06:10:03 +01:00
fauxpark
5d34e70cf7 Cleanup rules.mk for 32U4 keyboards, N-Q (#7147) 2019-10-25 18:32:18 -07:00
fauxpark
006ec86786 [Keyboard] Fix Print Screen key for XT to USB converter (#7039)
* Fix Print Screen key for XT to USB converter

* While I'm here, get rid of led.c as it does absolutely nothing

* Fix info.json too

* "]" key is 1.25U and stepped on the Model F XT
2019-10-25 18:23:11 -07:00
Gouty
19f73483d8 [Docs] Fixed internal links on Handwire page (#7154)
Some of the links were not playing nice on docs.qmk.fm, I think this fixes it.
2019-10-25 18:16:17 -07:00
Rys Sommefeldt
50202bc222 [Keymap] Align top and bottom layers to make it easier to map between them (#7153) 2019-10-25 18:14:21 -07:00
Rys Sommefeldt
a30ccc025e [Keymap] Personal layout for the RAMA M6-A (#7152) 2019-10-25 18:07:49 -07:00
Joel Challis
d03303ab74 Revert "Initial actions/labeler config (#7091)" (#7156)
This reverts commit 32fdf4805a.
2019-10-26 00:27:17 +01:00
Michael B. Hix
ad5ead24c3 [Keyboard] musl/add-chiron-keyboard (#7146)
* Add the Chiron keyboard

* Add link to case repo

* Update keyboards/handwired/chiron/readme.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/handwired/chiron/keymaps/default/config.h

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/handwired/chiron/rules.mk

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/handwired/chiron/rules.mk

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/handwired/chiron/rules.mk

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/handwired/chiron/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/handwired/chiron/rules.mk

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/handwired/chiron/rules.mk

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Clean up rules.mk for the configurator
2019-10-25 15:48:57 -07:00
Ethan Madden
b2a6329376 [Keymap] Fix some formatting, add blink on lock example (#7145)
* Double backspace + changed layer detection

* Blink on capslock

* updated with feedback from @drashna
2019-10-25 15:34:55 -07:00
Gouty
3fd919c536 [Docs] Update hand wire guide (#7044)
* Reorganised Hand Wire Guide

Added some images and put the "Matrix" section in a hidden <details> section

* Actually adding images this time

removed .jpg from .gitignore

* Hand wire guide updated

Incomplete, but started making the guide more general.  Will continue to add images (in imgur as requested)

* Removed some more images from gitignore

* testing image changes (temporary)

* Update hand_wire.md

* added techniques table

* Tweaking the table

* Finished soldering guide

* Fixed some links, change image scaling

* More of the same

* resizing images

* updated images

* Update hand_wire.md

* Resizing images

* Update hand_wire.md

* Update hand_wire.md

* Create ribbon_cable.jpg

* Minor updates to links

* Updated firmware and flashing guidelines

* Updated images to imgur links and re-added images to gitignore

* Implemented requested changes.  Improved wording

* Added handwire helpers info and split KB info

* Update hand_wire.md

* Removed "the" from "the QMK toolbox"

* Fixed handwire helper table and image size

* Fixed a heading
2019-10-25 11:48:59 -07:00
Daniel Shields
0f30a4d2ca Save a few bytes with build options and rgb effect removal. (#7149) 2019-10-25 19:16:46 +01:00
Joel Challis
32fdf4805a Initial actions/labeler config (#7091)
* Initial actions/labeler config

* Initial actions/labeler config - add extra from review
2019-10-25 14:34:54 +01:00
QMK Bot
581a8fa058 format code according to conventions [skip ci] 2019-10-25 06:31:02 +00:00
Álvaro A. Volpato
23048798dd [Keyboard] Add SharkPCB rev Alpha support (#7090)
* Add SharkPCB rev Alpha support

* Solve PWM pin assignment 

- Solve PWM pin configuration for the SharkPCB rev.Alpha, which backlight pin is B0

* Update shark.c copyright name

* Update shark.h copyright section

* Apply suggestions from code review

Suggestions from @zvecr and @drashna were accepted and applied for neater code. Also fixed typos and removed unused comments. See [pull request](https://github.com/qmk/qmk_firmware/pull/7090/files#diff-70c0a1f44287ae5810170b4180cdaa5d) for more information.

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

* Update PRODUCT_ID into config.h

* Update metadata info.json

Fields "keyboard_name", "keyboard_folder", "url", "maintainer" were updated
2019-10-24 23:27:43 -07:00
Theodore S Lindsey
e8453bbc12 copied atreus astar to mirrored, set PCBDOWN flag (#7137)
* copied atreus astar to mirrored, set PCBDOWN flag

* re-pointed include

* mirrored layout will always be true here
2019-10-24 22:16:24 +01:00
noroadsleft
71d64c85d6 [Keyboard] reviung34: Configurator layout fix (#7138) 2019-10-24 13:55:30 -07:00
Erkki Halinen
323635da06 [Keyboard] Add support for Sticc14 macropad (#7134)
* Push Sticc14 default keymap

* Update READMEs to conform to guidelines

* Requested changes

* Requested changes

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/handwired/sticc14/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/handwired/sticc14/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Remove useless enum and function overrides
2019-10-24 13:53:26 -07:00
fauxpark
e96cac0814 Cleanup rules.mk for 32U4 keyboards, L-M (#7120)
* Cleanup rules.mk for 32U4 keyboards, L-M

* Move some stuff to keyboard level
2019-10-24 13:50:13 -07:00
Drashna Jaelre
335dd0271e Fix Tap Dance name for consistency and to match docs (#7136) 2019-10-24 20:08:29 +01:00
Erovia
a5a31a5fc0 MILC: Use dashes instead of underscores for subcommands
The subcommand functions' name follows the Python convention of using
snake case, but looks odd on the command line.
Fix it by converting underscores to dashes, eg.: list_keyboards ->
list-keyboards.
2019-10-23 22:46:30 -07:00
J.Flanagan
4da9d2ef6f [Keyboard] Add GTM Pad macropad (#7123)
* initial commit

begin development of Grand Theft Macro Pad (2key2crawl clone)

* Minor Changes

Changes to readme.md

Changes to config.h matrix pins

Changes to gtm.h layout

Changes to rules.mk

* initial commit

begin development of Grand Theft Macro Pad (2key2crawl clone)

* Minor Changes

Changes to readme.md

Changes to config.h matrix pins

Changes to gtm.h layout

Changes to rules.mk

* Update keyboards/sck/gtm/readme.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/sck/gtm/readme.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/sck/gtm/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/sck/gtm/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/sck/gtm/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/sck/gtm/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/sck/gtm/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/sck/gtm/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/sck/gtm/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/sck/gtm/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Changes to gtm.h

Changes to layout to be correct for matrix_cols and matrix_col_pins

* Minor Changes

Removed rotary encoder index in keymaps per suggestion
2019-10-23 21:36:40 -07:00
skullydazed
9160405d39 Support for the upcoming 1UP Keyboards Sweet 16 rev2 (#7125)
* Support for the upcoming 1up Keyboards Sweet 16 rev2

* Update keyboards/1upkeyboards/sweet16/rev1/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/1upkeyboards/sweet16/rev1/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/1upkeyboards/sweet16/rev2/promicro/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/1upkeyboards/sweet16/rev2/proton_c/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/1upkeyboards/sweet16/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/1upkeyboards/sweet16/rev1/rev1.c

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/1upkeyboards/sweet16/rev1/rev1.c

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/1upkeyboards/sweet16/rev1/rev1.c

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/1upkeyboards/sweet16/rev1/rev1.c

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/1upkeyboards/sweet16/rev1/rev1.c

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/1upkeyboards/sweet16/rev1/rev1.c

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/1upkeyboards/sweet16/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/1upkeyboards/sweet16/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/1upkeyboards/sweet16/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/1upkeyboards/sweet16/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/1upkeyboards/sweet16/rev1/rules.mk

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/1upkeyboards/sweet16/rev2/promicro/rules.mk

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* tweak readme wording per @noroadsleft

* Change rev to V

* remove extraneous info.json files
2019-10-23 21:14:00 -07:00
vuhopkep
23f89ff7cf [Keyboard] add new keyboard hnah40rgb (#7083)
* add new keyboard hnah40rgb

* update

* Update hnah40rgb.c

* update
2019-10-23 16:38:44 -07:00
Eriq M. Adams
e264f0151d [Keyboard] Blackplum a.k.a IMKG68 - new 68% mechanical keyboard (#7122)
* Add blackplum firmware

blackplum firmware

* Delete blackplum.c

* Delete blackplum.h

* Delete config.h

* Delete info.json

* Delete rules.mk

* Delete keymap.c

* Update readme.md

* Delete readme.md

* Add Blackplum

* Add image: blackplum layout

* Update readme.md

* Update readme.md

* remove _WINLCK layer, replaced with custom_keycodes

* change #define LAYOUT_68 to #define LAYOUT_68_ansi

* change  DEBOUNCING_DELAY to DEBOUNCE, remove IS_COMMAND()

* change keyboard_name, maintainer, url, width height

* change some comments

* Update readme

* LAYOUTS = 68_ansi

* update layout_68_ansi

* Change LAYOUT_68 to LAYOUT_68_ansi

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Fix Bug

* remove extern keymap_config_t keymap_config;

* Update config.h

* Update config.h

* Update config.h

* Update keyboards/blackplum/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update rules.mk

* Update rules.mk

* Update readme.md

* Update readme.md
2019-10-23 16:34:44 -07:00
skullydazed
b62ee65c6d Support for the Clueboard California macropad (#7127)
* Support for the Clueboard California macropad

* Update keyboards/clueboard/california/config.h

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-10-23 14:18:12 -07:00
Salicylic-acid3
68cf2725aa [Keyboard] Naked48/60 Configurator bugfix (#7131)
Support for QMK configurator of keyboard Naked48 / 60.
Related: Pull request to configurator
[Keyboard] Add keyboard Naked48 / 60 # 549
2019-10-23 10:18:59 -07:00
noroadsleft
6d95082cbf [Keyboard] 1up60rgb: fix LAYOUT_60_iso json tree (#7126)
ISO Enter was out of sequence.
2019-10-23 08:44:20 -07:00
Pentti Laitinen
6799937a3c [Keymap] Updating Nordic ergo keymap (#7107)
* Update ergodox infinity nordic_ergo keymap

- Add missing important keys to base layer.
- Move arrow keys around as the original position was not optimal.
- Fix some code styling issues.

* Fix indentation to 4 spaces

* More code style fixes

- Formated the methods in the nordic ergo keymap.

* Fix QMK code style issues

- Change layer defines to enums.
- Split enums to multi-line.
- Remove non required switch case.
2019-10-23 00:54:14 -07:00
just-another-jxliu
51bf3ba3e6 Fix held key getting stuck when NKRO is toggled (#6570)
* Fix held key getting stuck when NKRO is toggled

* Updated file to latest qmk version and added fix to cases MAGIC_UNHOST_NKRO & MAGIC_HOST_NKRO as well.

* Revert merged quantum.c
2019-10-22 13:03:39 -07:00
noroadsleft
c8fd015618 [Keyboard] Owlet60 Updates (#7103)
* Owlet60 updates

Co-Authored-By: noroadsleft <xxiinophobia@yahoo.com>

* fix url in info.json
2019-10-22 10:59:56 -07:00
Salicylic-acid3
737bca8e51 [Keyboard] Keyboard Naked60 Update (#7106)
* [Keyboard] Keyboard Naked60 Update

Support for SPLIT_KEYBOARD
Keymap updates

* Update keyboards/naked60/readme.md

Co-Authored-By: Joel Challis <git@zvecr.com>

* Update keyboards/naked60/rev1/config.h

Co-Authored-By: Joel Challis <git@zvecr.com>

* Update keyboards/naked60/rev1/rev1.h

Co-Authored-By: Joel Challis <git@zvecr.com>

* Update keyboards/naked60/rev1/rev1.h

Co-Authored-By: Joel Challis <git@zvecr.com>
2019-10-22 10:54:53 -07:00
Michael Guterl
d99f6e95e1 [Keymap] Add userspace and personal keymaps (#7093)
* Add Planck keymap and custom keycodes to userspace

* Add Preonic keymap and extract common ortho layers and keycodes

* Add Leaf60 WKL keymap

* Add M60-A keymap

* Add Levinson keymap

* Fix links in personal readmes

* Use flash target

* Remove duplicate definition

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Remove superfluous line endings

* Planck and preonic encoder should have the same behavior

* Use higher level API

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Use layouts to reduce planck/levinson duplication

* Update flash instructions for levinson
2019-10-22 10:41:14 -07:00
fauxpark
e214f2826e Add ISO layout macro for KBD67 rev2 (#7113) 2019-10-22 06:44:50 -07:00
Josh Hinnebusch
d60b193932 update VID and PID for h87a (#7100) 2019-10-22 14:39:15 +01:00
Reid Sox-Harris
454c99d128 add bdn9/eosti keymap (#7105) 2019-10-22 14:37:29 +01:00
Max Rumpf
f87908228a Remove apostrophe from various abbreviations' plural forms (#7050)
While this was historically a valid possibility, nowadays, it reads
kinda weird, and the [Oxford Dictionaries Online suggests to avoid it](https://english.stackexchange.com/a/56010).

Thus, I removed it everywhere I found it.
2019-10-22 13:47:43 +01:00
fauxpark
2ee961c9e8 Cleanup rules.mk for 32U4 keyboards, I-K (#7097)
* Cleanup rules.mk for 32U4 keyboards, I-K

* Clean up ivy rules.mk
2019-10-21 21:43:18 -07:00
Deckweiss
c44aff5f18 [Keyboard] Added layout, configured bluetooth (Hacked Motospeed handwired) (#7084)
* Added more intuitive layout with bluetooth commands
2019-10-21 21:34:43 -07:00
halvves
4b47abc737 [Keymap] add halvves let's split keymap (#7063)
* add halvves let's split keymap

* [cr] - review requests from @fauxpark

* cleanup spacing, add transparent for spaces in util layer

* [cr] - use new core funcs / @fauxpark & @drashna

* enable EE_HANDS

* [cr] - switch to definable mask for layer state (@drashna)
2019-10-21 20:38:53 -07:00
Adam Perlman
0ab8edb523 [Keymap] Ergodox EZ and dactyl-manuform keymaps for rishka (#7051)
* Setup keymaps and userspace for Rishka

* Creates a keymap for Ergodox Ez, bdn9 and Dactyl Manuform 5x6

* Update bdn9 config with suggested change

* Add pragma to other header files

* Apply suggestions from code review

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Updates from review from fauxpark

* Updates from review

Swap to keyboard_post_init, layer_state_t and use layer state for encoder

* Updates from review

Swap to keyboard_post_init, layer_state_t and use layer state for encoder

* Add missing change from review
2019-10-21 20:37:33 -07:00
kuchosauronad0
80ded60cad Add a short explanation to Zadig the troubleshooting section (#7110)
* Add a short explanation to the troubleshooting section

While translating I noticed that the troubleshooting section could use a
little bit more explanation. @Yanfali was so kind to chime in on this on
discord and explained that this was ment for people who accidently
forget to put their board in bootloader mode, so I added this as a
possible common mistake.

Also fixed the spelling of Msys2 to MSYS2 and Halfkay to HalfKay as
these are the official spellings they use themselves.

* Update driver_installation_zadig.md

* Update driver_installation_zadig.md

English is hard.

* Update docs/driver_installation_zadig.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update docs/driver_installation_zadig.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-10-22 14:05:33 +11:00
Arda Kılıçdağı
f033d8113d [Keyboard] 40percentclub 4 pack macropad keyboard (#7088)
* 4 pack macropad layout added

* Update keyboards/40percentclub/4pack/keymaps/default/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/40percentclub/4pack/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/40percentclub/4pack/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/40percentclub/4pack/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/40percentclub/4pack/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* remove unnecessary comments, remove firmware impact numbers, align comments

* remove unnecessary readme paragraphs

* pinout changed with direct pins instead of matrix

* typo fixed on led method name

* leds are now handled by backlight feture, led.c removed, info.json added, flash instructions updated
2019-10-21 19:27:26 -07:00
Rys Sommefeldt
267be40793 [Keymap] Personal layout for the Wonderland (#7095) 2019-10-21 18:48:45 -07:00
fauxpark
af03c5f7fa Change V60 Polestar RGB timer to 3 (#7099) 2019-10-22 02:01:03 +01:00
noroadsleft
165020a670 Naked60 Configurator bugfix (#7108)
* remove extra commas

* fix label for comma key

* switch to debug linting (one key per line)
2019-10-22 00:34:37 +01:00
fauxpark
97b8ade1aa [Keyboard] Use GPIO macros for E6 LED in Planck and Preonic default keymaps (#7098) 2019-10-20 22:38:22 -07:00
Catriel Müller
1533483bb2 [Keymap] catrielmuller keymap for the dztech/dz65rgb (#7015)
* Catriel Müller - Dz65rgb personal keymap

* - Removed backslashes
- Changed IS_LED_ON to IS_HOST_LED_ON
- Removed empty unused hooks
2019-10-20 12:55:36 -07:00
fauxpark
3dbf08b655 Cleanup rules.mk for 32U4 keyboards, H (#7030)
* Cleanup rules.mk for 32U4 keyboards, H

* Change some boards incorrectly assumed to be halfkay
2019-10-20 12:51:37 -07:00
Sid Carter
bc073b817a [Keymap] updates to madhatter keymap - project keyboard alice pcb (#7092)
* change arrows keys around

* move arrows and layer tap

* mouse keys and other mods

* add readme and add media keys too
2019-10-20 12:26:41 -07:00
Salicylic-acid3
233a1e9bcd [Keyboard] Keyboard Naked48 Update (#7085)
* Keyboard Naked48 Update

Support for SPLIT_KEYBOARD
Readme updates
Keymap updates
Support for RGB matrix (salicylic keymap)

* Keymap Update

Change KC_NO to KC_TRANSPARENT.
Update the old part.
2019-10-20 12:03:46 -07:00
Jonathan Rascher
a41066beed [Keymap] Assorted personal keymap and layout updates (#7082)
* Enable PERMISSIVE_HOLD and TAPPING_FORCE_HOLD

* Fix indentation in userspace

* Shuffle around more Lily58 symbol keys

* Reformat KBD67 keymap and KLE images

* Fix Lily58 lower layer image

* Reformat Quefrency keymap and KLE images

* Fix KBD67 KLE images... again

* Add KLE links for Quefrency

* Reformat 60% layouts and KLE images

* Move Super key back to right half of Lily58

* Move Lily58 ins/del out of the way of numbers

* Fix bottom row of Lily58 KLE image
2019-10-20 11:41:36 -07:00
Romain Gehrig
a4c008fe90 [Keymap] Romain's Preonic layout (#7067)
* Add customized preonic layout

* Add a README detailing a bit the differences from the default preonic layout

* Apply suggestions from code review

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Remove unnecessary end-of-line backslashes

* Import fix for startup sound (thanks @drashna)

* Remove unnecessary layers and keycodes

* Bring back the _QWERTY layer code

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-10-20 11:20:01 -07:00
Reid Sox-Harris
4c90277236 [Keymap] add iris/eosti keymap (#7056) 2019-10-20 11:12:23 -07:00
Yet Another Developer
3d53ea439c [Keymap] Ergodash keymap for yet-another-developer (#7046)
* Initialize ergodash rev 1 keymap

./util/new_keymap.sh ergodash/rev1 yet-another-developer

* Add user space configurations referenced from drashna

* Start community layout for ergodash in ortho_5x14

* Remove unused layers

* Add userspace layers

* Add Userspace gitignore

Hide Secrets

* Remove userspace unused drashna features

* Scrap default keymap and follow drashna's template

* Add code referenced from kuchosauronad0

* Make sure that the author is named Developer

* Replace middle keys del and bksp with curly brace

* Reduce ONESHOT_TIMEOUT from 3sec to 2sec

* Remove adjust key AG_SWAP

* Disable UNICODEMAP_ENABLE, remove code causing build fail

* Increase TAPPING_TERM to 240

Reason:  Because Space is also LOWER, space sometimes not registering.
PS: I dont want to #define RETRO_TAPPING yet

* Update KC_MAKE to use :flash

* Remove TAP_ONCE, use tap_code

Signed-off-by: Developer <anotherdeveloper@icloud.com>

* Remove redundant code implementation of keyboard_post_init_user

https://github.com/qmk/qmk_firmware/pull/7046

users/yet-another-developer/leader.c
```
  static bool has_ran_yet;
  if (!has_ran_yet) {
    has_ran_yet = true;
    startup_user();
```
Comment for lines +11  – +14
 @drashna: Not needed anymore. You can use keyboard_post_init_user now.

Signed-off-by: Developer <anotherdeveloper@icloud.com>
2019-10-20 11:07:56 -07:00
Harry Wada
f64d9b0621 Fix detection of ModemManager (#7076) 2019-10-20 15:33:58 +01:00
Alan Berndt
8baed70ed1 Add pok3r-like keymap for dz60. (#7078)
* Add pok3r-like keymap for dz60.

* Replace KC_TRNS with underscores
2019-10-20 00:56:03 +11:00
vuhopkep
9bfacc7c76 [Keyboard] update encoder function, info.json data (#7035)
* update encoder function, info.json data

* Update rules.mk
2019-10-18 18:18:39 -07:00
tominabox1
c26faed2b6 [Keymap] Tominabox1 userspace creation (#7014)
* rebaselined the whole fork and added cool matrix animations

* Updated dfu bootloader rules, oleds working on test map

* Moving test branch into main

moving my _test branch files into the main since the repo is now in the dev branch, don't see any reason to keep separate folders.

* Update keymap.c

Adding DOT to number layer

* added LED sleeping

* working on getting matrix rgb to sleep upon usb suspend

uploading to github for qmk staff help

* Added master sleep on usb suspend

Unfortunately the sleep function does not work on the slave side so will probably revert this change later

* bringing hhkb config up to current with other tominabox1 configs

* Update config.h

since master side is the only one that sleeps, going to disable this for now.

* testing oled stuff

* Update rules.mk

* tinkering with oled still

* Finally fixed custom image with corne doug

* Adding keymap to dimple instead of screwing up the upstream references.

* Changed oled image to peepo ggers

* working on oled sleep

* Update keymap.c

* fixes oled wake/sleep issues

* Adding 🅱️ and BEPIS macros

* Update .gitignore

* Cleaning up and improving documentation

* Update keymap.c

* Adding my minivan keymap

* Fixed error on keymap

* fixed OLEDs not turning on and moved tapping term to the keymap file

* Changed tapping term from 200 to 250

* Revised Fkey layers, arrows, question mark locations

* Update keymap.c

* tweaked tapping term and types on CRKBD, revised layout on HHKB

* Update keymap.c

* general code cleanup, keymap displays

* Set up userspace for common keymap elements

* tapping term stuff for shift

* testing

* Fixed new tapdance for accessing number and fkey layers

* Update tominabox1.h

* stuff

* fixing function calls for userspace

* cleaning up crkbd config and moving stuff to userspace

* finally fixed oled lightup issues

* cleaning up a few maps and rules

* Removing permissive hold and returning spacefn to all boards.

* Settting up wrapper keymaps for Dimple, Minivan, and Corne

Wrappers

* small tweaks

* Update wrappers.h

* finishing wrappers on Minivan and Dimple

* Revised tapping term definition

Providing additional tapping term config for CRKBD only.

* Code cleanup and documentation

* Update readme.md

* Update readme.md

* Wrapers and continued code cleanup and documentation

* moved oled py scripts to user folder
* completed wrapper implementation of CRKBD
* added matrix startup mode - not working yet pending upstream changes
* removed unused code in tominabox1.c

* Fixing custom keycodes and tap dance indices

fixed custom keycodes and tap dance indices
Adding beginning of dimple RGB matrix definition
changed oled on corne to scrolling matrix thing
Added copy pasta

* Secondary layer tweaks

Swapping hands of numbers and symbols as well as tweaking tapping terms accordingly

* Update tominabox1.c

Continued refinement of tapping term to support better right hand symbol access.

* Fixes from pr 7014

Removed gitignore data from qmk master
Reverted changes to Drashna's crkbd keymap
Accepted changes to crkbd keymap
Added ignore to hhkb keymap - I think I need this because Teensy. Will revisit another time

* Removing hhkb keymap for rework

* Adding back hhkb keymap

Re-adding hhkb folder with ignores

* Reverting changes to Dimple default

totally did not intend to modify these

* Update keymap.c

Reverting changes to Drashna's corne map

* Accepting recommended changes

* Reduced tap hold caps delay
moved bootmagic enable to general usage
Revised tapping terms
Removed unused keycode defs

* bootmagic

* Update rules.mk

* Fixed permissions (support 7014) and bootmagic addition

Fixed permissions on Drashna's keymap and Dimple default keymap files.
Adding bootmagic to my crkbd config.

* Fixing permissions
2019-10-18 18:15:57 -07:00
Amber Holly
b23f6011c3 Remove build option firmware size impacts (#6947)
* Update rules.mk template to remove build option size impacts

* Add rules.mk cleaning script

* Update all rules.mk files to remove build option firmware size impact messages

* Remove references to feature filesize in documentation

* Revert "Update all rules.mk files to remove build option firmware size impact messages"

This reverts commit 7cfe70976b.

* Fix regex in cleanup script and exclude keymaps/ directories

* Update quantum/template/avr/rules.mk

Fixed missing tabs/spaces.

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-10-18 18:14:49 -07:00
Endemoniada
1b1e0977e0 [Keymap] Mekberg kbd6x keymap (#7061)
* First draft of my layout

* Improved layout and cleanup of files

* Update keymap and add rules

* Add keymap.h with permissive_hold setting

* Rename keymap.h to correct name config.h

* Add next/prev and special lock key to Fn layer

* Use correct modifier in MY_LOCK command

* Removed unnecessary filler defines

* Add build instructions to README

* Move RGB controls to more logical up/down key positions, move next/prev controls, remove del from Fn layer

* Fix wrong placeholders and fix up formatting

* Remove unused code

* Clarify comments on custom defines

* Update keyboards/kbdfans/kbd6x/keymaps/mekberg/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-10-18 17:37:16 -07:00
KL1RL
d263579781 [Keymap] Initial commit of KL1RL keyboard layout (#7060)
* Inital commit

* Add changes suggest by fauxpark.  Tested for normal function
2019-10-18 17:36:22 -07:00
Yang Li
5c1b7fb502 Add python-pip as package dependency for archlinux (#7041) 2019-10-18 17:22:54 -07:00
Andy Smith
5b311965f8 [Keymap] Custom Planck layout for the Planck (#7036)
* Version 1 of keymappings

* Adding updated keymappings

* Adding hash/pound symbol to layer

* Removing broken macros

* Adding to readme. Amending value of pound sign

* Changing language in readme

* Addressing PR comments. Removing unneeded code, corrected syntax

* Removing commented out code and fixing white space issues

* Small clean up to readme
2019-10-18 17:21:40 -07:00
Drashna Jaelre
22cc56bc97 [Docs] Fix incorrect spacing on Coding Conventions page (#7058) 2019-10-18 16:59:03 -07:00
Yan-Fa Li
de5cadd636 Caps lock indicator moved from keymap (#7070)
- to keyboard so it works in configurator
2019-10-18 10:32:43 -07:00
Yan-Fa Li
f66b2b1f27 Add a via compatible keymap (#7062)
* Add a via compatible keymap

* Disable VIA on default for configurator

 - use the via keymap if you want via support

* Move wilba dep to keymap avoid breaking community

 - moves via specific includes into the _via keymap
 - fixes configurator builds
2019-10-18 07:18:40 -07:00
Joel Challis
5dc91ddc60 SPLIT - Remove NO_USB_STARTUP_CHECK requirement for usb detection (#7053)
* Avoid NO_USB_STARTUP_CHECK - Disable USB as checks seem to enable it somehow

* Update quantum/split_common/split_util.c

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Also remove NO_USB_STARTUP_CHECK from vitamins_included/rev1
2019-10-17 23:37:37 +01:00
Mikkel Jeppesen
550435c1c9 [Keyboard] Move vitamins included rev1 to split_common (#7052)
* Initial work to move to split_common

* Fixed serial pin
2019-10-17 18:53:06 +01:00
Joel Challis
abfd6ed961 Move tmk_core/common/backlight to quantum/backlight (#6710)
* Move tmk_core/common/backlight to quantum/backlight

* Add guards to backlight inclusion

* Add guards to backlight inclusion

* Update backlight guards on clueboard/60

* Use full paths to avoid vpath issues
2019-10-17 17:48:58 +01:00
Drashna Jaelre
e3a21348c3 [Keymap] Drashna's Hardware Features Experimentations (#6920)
* Change RGBLight pin for Planck Light

Move it to A0, so that the SPI? pins are available for BT hackery

* Add QMK DFU bootloader info

* Add Solenoid

* Disable annoying white LED on bottom

* Enable Solenoid on Corne

* Remove bounds for animations

* Increase debounce for Ergodox EZ to reduce repeat key issues

* Set swap hands key to be a hold-tap key

This way, it's not ANNOYING and doesn't swap the hands inteniontally

* Move MT Alt in Corne keymap

* Re-Add fine tuned control of secrets

* Squash mods to single row

* Add LRA settings to haptic feedback settings for Rev6

* Fix issue with non-Planck EZ keymaps

* Add 40 Percent Nano with Analog Joystick

* Add Collide39 keymap

* Fix OLED printing to be more flavorful

* Fix up Iris GamePad and come cleanup

* Expand OLED char map further

* Add modded characters to keylogger

* Here be dragons

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Fix up rules for community layouts

* Some more OLED tweaks

* Add mod mask check function

* Change QMK DFU Audio pin to be correct

* Use manual STM config instead of CTPC for Collide 39
2019-10-16 13:11:22 -07:00
Jonathan Rascher
7662ee71f0 [Keymap] Various improvements to my Lily58 keymap (#7045)
* Fix off-by-one error in Lily58 function keys

* Swap number and symbol layers

* Move grave/tilde to the left of brackets/braces

* Add KLE links

* Move function keys to Raise layer

* Move symbols nearer to home row

* Add readme for Lily58 layout
2019-10-16 12:08:45 -07:00
MakotoKurauchi
881f27b461 [Keyboard] Cleanup helix rules options (#6952)
* add temporary test shell-spript

* Use LINK_TIME_OPTIMIZATION_ENABLE instead of Link_Time_Optimization

No change in build result.

* Helix config.h use '#pragma once'

No change in build result.

* Helix helix.h,rev?/rev?.h,pico/pico.h use '#pragma once'

No change in build result.

* Use drivers/avr/pro_micro.h instead of keyboards/helix/pro_micro.h

No change in build result.

* remove keyboards/helix/{rev2|pico}/serial_config.h

No change in build result.

* 'HELIX_ROWS' macro is now referenced only in rev1/config.h and rev2/config.h.

No change in build result.

* The contents of helix/rules.mk were distributed to subdirectories.

This is a preparation to create a new subdirectory for helix code using split_common.

No change in build result.

remove 'USE_I2C = yes', 'SUBPROJECT_rev1 = no' from keyboards/helix/rules.mk.
follow code move from keyboards/helix/rules.mk to keyboards/helix/{rev1,rev2,pico}/rules.mk.

----
 SRC += i2c.c
 SRC += serial.c
 SRC += ssd1306.c

 CUSTOM_MATRIX = yes
---

* helix/{i2c.[ch], serial.[ch], ssd1306.[ch]} move into helix/local_drivers/

No change in build result.

* Simplified 'helix/pico/keymap/*/rules.mk' using KEYBOARD_LOCAL_FEATURES_MK.

No change in build result.

 * add keyboards/helix/pico/local_features.mk
 * add 'KEYBOARD_LOCAL_FEATURES_MK := $(dir $(lastword $(MAKEFILE_LIST)))local_features.mk' into keyboards/helix/pico/rules.mk
 * remove HELIX_CUSTOMISE_MSG from keyboards/helix/pico/keymaps/*/rules.mk
 * remove HELIX= process from keyboards/helix/pico/keymaps/*/rules.mk
 * remove convert code(helix to standaerd) from keyboards/helix/pico/keymaps/*/rules.mk
 * add 'include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))' into keyboards/helix/pico/keymaps/*/rules.mk

* Simplified 'helix/rev2/keymap/*/rules.mk' using KEYBOARD_LOCAL_FEATURES_MK.

No change in build result.

* add keyboards/helix/rev2/local_features.mk
* add 'KEYBOARD_LOCAL_FEATURES_MK := $(dir $(lastword $(MAKEFILE_LIST)))local_features.mk' into keyboards/helix/rev2/rules.mk
* remove HELIX_CUSTOMISE_MSG from keyboards/helix/rev2/keymaps/*/rules.mk
* remove HELIX= process from keyboards/helix/rev2/keymaps/*/rules.mk
* remove convert code(helix to standaerd) from keyboards/helix/rev2/keymaps/*/rules.mk
* add 'include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))' into keyboards/helix/rev2/keymaps/*/rules.mk

* Added helix keyboard build NEW method.

No change in build result.

 ## Helix build
 $ make helix:default            ## no oled, no backlight, no underglow
 $ make helix/rev2/back:default  ## no oled, with backlight, no underglow
 $ make helix/rev2/under:default ## no oled, no backlight, with underglow
 $ make helix/rev2/oled:default  ## with oled, no backlight, not underglow
 $ make helix/rev2/oled/back:default  ## with oled, with backlight, no underglow
 $ make helix/rev2/back/oled:default  ## with oled, with backlight, no underglow
 $ make helix/rev2/oled/under:default ## with oled, no backlight, with underglow
 $ make helix/rev2/under/oled:default ## with oled, no backlight, with underglow

 ## Helix pico build
 $ make helix/pico:default       ## no oled, no backlight, no underglow
 $ make helix/pico/back:default  ## no oled, with backlight, no underglow
 $ make helix/pico/under:default ## no oled, no backlight, with underglow
 $ make helix/pico/oled:default  ## with oled, no backlight, not underglow

* add temporary test shell-spript

* test end remove test script. Revert "add temporary test shell-spript"

This reverts commit 5dac20cd0f.

* test end remove test script. Revert "add temporary test shell-spript"

This reverts commit ec49f63b2d.

* Extended the 'HELIX=' option. add keyword 'verbose', 'no_ani'.

No change in build result.

* update keyboards/helix/{rev2,pico}/keymaps/default/readme.md

* rename KEYBOARD_TOP_DIR to HELIX_TOP_DIR in rules.mk

* update keyboards/helix/{rev2,pico}/keymaps/default/readme_jp.md

* rm keyboards/helix/pico/oled/rules.mk

* update helix's readmes. All the ':avrdude' was replaced with ':flash'.

* remove F_CPU, ARCH, F_USB, INTERRUPT_CONTROL_ENDPOINT from helix/rules.mk

No change in build result.
2019-10-16 11:01:49 -07:00
Manassarn "Noom" Manoonchai
81f36ab74d [Keymap] Add narze keymap for usb-usb converter (#6881)
* Revert raise/backspace mod tap to just backspace

* Initialize usb_usb/narze

* Modify keys

* Add readme

* Support Right shift to )

* Add Dev layer

* Use Dev layer on holding z key

* Add Dev layer for Ergodox

* Update keyboards/converter/usb_usb/keymaps/narze/README.md

Fix the command & close the code block as suggested

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Reduce rules
2019-10-16 10:48:37 -07:00
Endemoniada
7677e8adde [Keymap] Add Endemoniada keymaps (#6875)
* Add dz60 keymap

* Add my TADA68 layout

* Fix descriptions and formatting

* Formatting fixes

* Add readme file

* Formatting

* move caps lock to correct key, add F-keys to both layers

* Add readme for dz60

* First draft of custom Let's Split layout

* Some more keys

* Finalized keymap

* Added a bunch of custom shortcuts to make layout easier to read

* Add PERMISSIVE_HOLD option to modtap behavior

* Add lock and sleep shortcuts, formatting

* Minor fixes and adjustments

* Add PERMISSIVE_HOLD option, add sleep/lock shortcuts, minor fixes

* Add sleep/lock shortcuts, minor fixes

* fixups

* Major simplification of lets_split layout into more standard raise/lower/special layers

* Remove layer songs, add to readme

* Formatting

* Switch a few keys around for reachability

* Add windows/mac specific layers

* simplify layers

* Update README

* Fix legends

* Invert numpad and put Del in upper right corner

* Disable arrow keys on Raise, add build instructions

* Move dz60 keymap to its own branch

* Remove redundant configuration

* Change volume and sleep keycodes to standard

* Removing empty rules.mk

* Changing layer defines to enum

* Adding comment to explain reason for swapping KC_TRNS and KC_NO fillers
2019-10-16 10:48:00 -07:00
hvp
162dd3fe19 [Keymap] Corne keyap with tap dance Swedish support (#6857)
* Adding profile for Corne with tap dance Swedish support.

* Remove extern keymap_config_t keymap_config as no longer needed

* Changed to use tap_code over register_code

* Removed persistent_default_layer_set

* Moved macros to hvp user space ink tap dance code

* Removed not used functions

* Moved to an ifbased include statement

* Removed not needed characters
2019-10-16 10:44:43 -07:00
nrtkbb
9b07098dbd [Keyboard] Add uzu42 keyboard (#6842)
* initial commit

* OLEDに表示するロゴをuzuのものに差し替えた

* delete undefault keymaps

* delete info.json

* delete pro_micro.h

* remove USE_Link_Time_Optimization check

* Moved constant defined for each keymap.c to rev1.h

* update layer_state_reader.c

* Rename Uzu42 to uzu42

* remove bootloader.h include

* LAYOUT_kc to LAYOUT

* delete keymap level rules.mk

* update readme.md

* remove persistent_default_layer_set function.

* try refactor to use split_common and use OLED driver

* Revert "try refactor to use split_common and use OLED driver"

This reverts commit 5a9afceacb.

* Update keyboards/uzu42/rev1/config.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/uzu42/rev1/rev1.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/uzu42/rev1/rev1.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/uzu42/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Remove lines already defined in QMK

* Update keyboards/uzu42/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/uzu42/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/uzu42/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* replaced comment block

* Update keyboards/uzu42/config.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Revert "Revert "try refactor to use split_common and use OLED driver""

This reverts commit a7849216f4.

* fix setting for RGBLED

* The default of OLED_DRIVER_ENABLE has been changed to no.

* Delete unuse block.

* Remove unnecessary keycode definitions.

* Remove unuse custom keycode.

* Remove not needed code.

* Remove not called code.

* Remove code overwritten by the core.

* Remove LAYOUT_kc macro.

* Moved the definition of the layer block to keymap.c.

* Removed unuse variable.

* Remove code overwritten by the core too.

* incorporate layer changes

* Moved src rule to keymap from rev1.

* Removed rgb_state_reader.c from lib folder and the code move to the keymap.c

* Removed layer_state_reader.c from lib folder and the code move to the keymap.c

* Removed logo_reader.c from lib folder and the code move to the keymap.c

* Removed keylogger.c from lib folder and the code move to the keymap.c

* Moved glcdfont_uzu42.c from lib folder to the default keymaps folder.

* Removed unused files.
2019-10-16 10:42:06 -07:00
Salicylic-acid3
f360c27f93 [Keyboard] Add keyboard Naked60 (#6527)
* Add Naked60

* readme Update

* Update keyboards/naked60/rules.mk

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Updated keymaps

Changed the alias.

* updated rule.mk

Unnecessary part was deleted and explanation was added to the boot loader.

* Update keyboards/naked60/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/naked60/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/naked60/rev1/rev1.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/naked60/rev1/rev1.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/naked60/rev1/config.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/naked60/rev1/config.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Updated keymaps rules.mk.

Cleaned up declarations in rules.mk.

* Updated keymap

Changed remaining aliases.

* Update rev1.c

Cleaned up declarations in rev1.c.

* Update readme

The appearance has been adjusted.

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

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked60/keymaps/default_with_nafuda/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked60/keymaps/default_with_nafuda/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked60/keymaps/salicylic/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked60/keymaps/salicylic/rules.mk

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked60/keymaps/salicylic_with_nafuda/rules.mk

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked60/keymaps/salicylic_with_nafuda/rules.mk

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked60/keymaps/salicylic_with_setta21/rules.mk

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked60/keymaps/salicylic_with_setta21/rules.mk

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked60/rev1/rev1.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked60/rules.mk

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked60/rules.mk

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked60/keymaps/default_with_nafuda/rules.mk

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked60/keymaps/salicylic/rules.mk

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked60/keymaps/default_with_nafuda/rules.mk

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked60/keymaps/default_with_setta21/rules.mk

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/naked60/keymaps/default_with_setta21/rules.mk

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Updated keymaps

The appearance has been adjusted.
Unnecessary rules.mk was deleted.

* Update keyboards/naked60/readme.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update readme

Changed to markdown format.

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

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/naked60/keymaps/salicylic/readme.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/naked60/keymaps/salicylic/readme.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-10-16 10:26:43 -07:00
Duncan Elliot
2fc3494fd9 [Keyboard] Update formatting of README for usb_usb (#7037)
Minor updates to make the README a little more readable.
2019-10-16 01:22:28 -07:00
fauxpark
63f4806d7a Fix bug in do_code16() (#6935)
* Fix bug in `do_code16()`

* Remove qk_ mods functions
2019-10-16 00:02:09 +01:00
Catriel Müller
4522519079 Milk 2% - Unicode Keymap Fix and Improvements (#7013)
* - Enabled Unicode Feature to fix the build
- Added TapDance Feature to improve the functionality of the Keyboard
- Added the ability to switch between the Unicodes Modes
- Added more Emojis thanks to the tap dance feature

* Fix Format
2019-10-15 23:29:33 +01:00
Drashna Jaelre
feb116c4f3 [Docs] Replace Switch Hitter link with Wayback Machine link (#7009)
* [Docs] Replace Switch Hitter link with Wayback Machine link

* Add QMK Configurator link as well

To appease yan
2019-10-15 23:21:05 +01:00
theVDude
5a3aefed8d Fix small hiccup in snake animation (#6858) 2019-10-15 23:13:13 +01:00
Deckweiss
eac6ccff98 Added uart config for using rn42 with at90usb1286 (#6582)
* Added uart config for using rn42 with at90usb1286

* Updated quantum/config_common.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update quantum/config_common.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update quantum/config_common.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-10-16 09:10:23 +11:00
Joel Challis
2ac4197b73 Add binary support to tinyprintf (#7024) 2019-10-15 13:33:06 +01:00
Joel Challis
cc5edb9eeb Port DEBUG_MATRIX_SCAN_RATE to core (#7029)
* Port DEBUG_MATRIX_SCAN_RATE to core

* Remove duplicate DEBUG_MATRIX_SCAN_RATE implementations

* Remove duplicate DEBUG_MATRIX_SCAN_RATE implementation from handwired/xealous

* Add console logic from ergodox_ez
2019-10-15 13:32:52 +01:00
Joel Challis
e1de0d74a6 Move running pytest to travis_test (#7005) 2019-10-14 17:57:53 +01:00
makenova
6560dffc05 update one shot keys link (#7020) 2019-10-14 01:26:03 +01:00
Joel Challis
e796d7b49e Update splittest/teensy_2 to use SPLIT_USB_DETECT (#7028) 2019-10-14 00:05:41 +01:00
fauxpark
2e7cd98c06 Cleanup rules.mk for 32U4 keyboards, G (#6971)
* Cleanup rules.mk for 32U4 keyboards, G

* Update keyboards/gray_studio/cod67/rules.mk
2019-10-12 23:57:57 +01:00
Joel Challis
a48468590a Remove i2c logic for STM32F103xB in favour of USE_I2CV1 (#6926)
* Remove i2c logic for STM32F103xB in favour of USE_I2CV1

* Remove i2c logic for STM32F103xB in favour of USE_I2CV1
2019-10-12 23:23:36 +01:00
Leo Batyuk
23178d73fc [Keymap] Add soundmonster's keymap for crkbd (#6964)
* Add soundmonster's layout for crkbd

* Incorporate feedback from review

* Remove unneeded base layer-related code
2019-10-11 22:08:03 -07:00
MechMerlin
bb43010170 Fix broken link to ps2avrgb flashing instructions (#7011) 2019-10-11 22:04:00 -07:00
MechMerlin
7becbfb44a [Keyboard] New Keyboard: BM43A (#6997)
* new keyboard bm43a

* Thanks to noroads for generating this with his online tool

* add QMK Configurator support thanks to noroads

* turn on bootmagic lite

* update readme

* remove unneeded comments
2019-10-11 21:44:38 -07:00
fauxpark
076d8babbb [CLI] qmk docs graceful shutdown on Ctrl+C (#6989) 2019-10-11 21:41:58 -07:00
Leivince John Marte
c54d2cbe02 [Keymap] Feature/keymap/projectkb/alice/devinceble (#6986)
* Added KBD6X Vimwarrior HHKB TOFU Personal Layout

* Added Readme.md for Vimwarrior HHKB Tofu Keymap

* Added DZ60 Vimwarrior WKL Tofu Keymap

* Update Rename keymaps to devinceble_hhkb_tofu and devinceble_wkl_tofu

* Update rules.mk Added BOOTLOADER config.

* [Keymap] Added Devinceble Personal Keymap for ProjectKeyboard Alice

* Update Remove Backslashes
2019-10-11 21:38:49 -07:00
Wilba
e47ab6a575 [Keyboard] wilba.tech PCB refactoring (#6982)
* Cleanup

* Refactor VIA rules.mk

* WT mono backlight refactor, VIA support

* Added WT75-C

* Fixed compile error

* Cleanup rules.mk

* Review changes

* Review changes
2019-10-11 21:37:03 -07:00
Laurent Lao
22aa2ce6b2 [Keymap] laurentlaurent's preonic keymap (#6977)
* Removed ugfx binary because of antivirus

* Created laurent's keymap

* Made QWERTY Mac and QWERTY Windows

* Rev 1.0, added _PUNC, _NAV, _EXTRA

* REV 1.1, Dynamic macros start/stop now plays a sound, Lower acts like backspace on tap

* Formatting fixes

* Added Intellisense macro, fixed formatting

* Improved ergonomics/muscle mem on punctuation lay

* Added Raise Tap to Backspace

* Mirrored Ergodox, added One-Handed

* Added layers in README.md, added Caps lock, Scroll lock

* Moved Caps to better location

* Added ErgoDox link

* Edit Readme.md with more layer switching information

* Modified _PUNC for muscle memory

* Reverted .gitignore and .vscode settings.json to reflect master

* Improved formatting according to PR review

* QMK_KEYBOARD_H def for Intellisense fixed->rev3.h

* .gitignore diff fix

* Fixing settings.json diff

* Update settings.json

* Update keyboards/preonic/keymaps/laurentlaurent/keymap.c

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-10-11 21:35:53 -07:00
1059 changed files with 28042 additions and 18965 deletions

2
.gitignore vendored
View File

@@ -60,8 +60,8 @@ util/Win_Check_Output.txt
# ignore image files
*.png
*.jpg
*.gif
*.jpg
# Do not ignore MiniDox left/right hand eeprom files
!keyboards/minidox/*.eep

View File

@@ -112,7 +112,7 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
ifeq ($(strip $(RGBLIGHT_CUSTOM_DRIVER)), yes)
OPT_DEFS += -DRGBLIGHT_CUSTOM_DRIVER
else
SRC += ws2812.c
WS2812_DRIVER_REQUIRED = yes
endif
endif
@@ -176,7 +176,7 @@ endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), WS2812)
OPT_DEFS += -DWS2812
SRC += ws2812.c
WS2812_DRIVER_REQUIRED = yes
endif
ifeq ($(strip $(RGB_MATRIX_CUSTOM_KB)), yes)
@@ -246,6 +246,11 @@ ifneq ($(strip $(BACKLIGHT_ENABLE)), no)
CIE1931_CURVE = yes
endif
COMMON_VPATH += $(QUANTUM_DIR)/backlight
SRC += $(QUANTUM_DIR)/backlight/backlight.c
OPT_DEFS += -DBACKLIGHT_ENABLE
ifeq ($(strip $(BACKLIGHT_ENABLE)), custom)
OPT_DEFS += -DBACKLIGHT_CUSTOM_DRIVER
endif
@@ -257,6 +262,26 @@ ifneq ($(strip $(BACKLIGHT_ENABLE)), no)
endif
endif
VALID_WS2812_DRIVER_TYPES := bitbang pwm spi i2c
WS2812_DRIVER ?= bitbang
ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes)
ifeq ($(filter $(WS2812_DRIVER),$(VALID_WS2812_DRIVER_TYPES)),)
$(error WS2812_DRIVER="$(WS2812_DRIVER)" is not a valid WS2812 driver)
endif
ifeq ($(strip $(WS2812_DRIVER)), bitbang)
SRC += ws2812.c
else
SRC += ws2812_$(strip $(WS2812_DRIVER)).c
endif
# add extra deps
ifeq ($(strip $(WS2812_DRIVER)), i2c)
QUANTUM_LIB_SRC += i2c_master.c
endif
endif
ifeq ($(strip $(CIE1931_CURVE)), yes)
OPT_DEFS += -DUSE_CIE1931_CURVE
LED_TABLES = yes

View File

@@ -2,3 +2,4 @@
- [:uk: English](/)
- [:cn: 中文](/zh-cn/)
- [:fr: Français](/fr-fr/)
- [:ru: Русский](/ru-ru/)

View File

@@ -98,6 +98,7 @@
* [ISP Flashing Guide](isp_flashing_guide.md)
* [ARM Debugging Guide](arm_debugging.md)
* [I2C Driver](i2c_driver.md)
* [WS2812 Driver](ws2812_driver.md)
* [GPIO Controls](internals_gpio_control.md)
* [Proton C Conversion](proton_c_conversion.md)

View File

@@ -69,6 +69,16 @@ There are some limitations to the local CLI compared to the global CLI:
# CLI Commands
## `qmk cformat`
This command formats C code using clang-format. Run it with no arguments to format all core code, or pass filenames on the command line to run it on specific files.
**Usage**:
```
qmk cformat [file1] [file2] [...] [fileN]
```
## `qmk compile`
This command allows you to compile firmware from any directory. You can compile JSON exports from <https://config.qmk.fm> or compile keymaps in the repo.
@@ -85,16 +95,6 @@ qmk compile <configuratorExport.json>
qmk compile -kb <keyboard_name> -km <keymap_name>
```
## `qmk cformat`
This command formats C code using clang-format. Run it with no arguments to format all core code, or pass filenames on the command line to run it on specific files.
**Usage**:
```
qmk cformat [file1] [file2] [...] [fileN]
```
## `qmk config`
This command lets you configure the behavior of QMK. For the full `qmk config` documentation see [CLI Configuration](cli_configuration.md).
@@ -125,14 +125,24 @@ This command examines your environment and alerts you to potential build or flas
qmk doctor
```
## `qmk list_keyboards`
## `qmk json-keymap`
Creates a keymap.c from a QMK Configurator export.
**Usage**:
```
qmk json-keymap [-o OUTPUT] filename
```
## `qmk list-keyboards`
This command lists all the keyboards currently defined in `qmk_firmware`
**Usage**:
```
qmk list_keyboards
qmk list-keyboards
```
## `qmk new-keymap`

View File

@@ -31,17 +31,17 @@ Here is an example for easy reference:
```c
/* Enums for foo */
enum foo_state {
FOO_BAR,
FOO_BAZ,
FOO_BAR,
FOO_BAZ,
};
/* Returns a value */
int foo(void) {
if (some_condition) {
return FOO_BAR;
} else {
return -1;
}
if (some_condition) {
return FOO_BAR;
} else {
return -1;
}
}
```

View File

@@ -310,13 +310,13 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i
Use these to enable or disable building certain features. The more you have enabled the bigger your firmware will be, and you run the risk of building a firmware too large for your MCU.
* `BOOTMAGIC_ENABLE`
* Virtual DIP switch configuration(+1000)
* Virtual DIP switch configuration
* `MOUSEKEY_ENABLE`
* Mouse keys(+4700)
* Mouse keys
* `EXTRAKEY_ENABLE`
* Audio control and System control(+450)
* Audio control and System control
* `CONSOLE_ENABLE`
* Console for debug(+400)
* Console for debug
* `COMMAND_ENABLE`
* Commands for debug and configuration
* `COMBO_ENABLE`
@@ -348,7 +348,7 @@ Use these to enable or disable building certain features. The more you have enab
* `NO_USB_STARTUP_CHECK`
* Disables usb suspend check after keyboard startup. Usually the keyboard waits for the host to wake it up before any tasks are performed. This is useful for split keyboards as one half will not get a wakeup call but must send commands to the master.
* `LINK_TIME_OPTIMIZATION_ENABLE`
= Enables Link Time Optimization (`LTO`) when compiling the keyboard. This makes the process take longer, but can significantly reduce the compiled size (and since the firmware is small, the added time is not noticable). However, this will automatically disable the old Macros and Functions features automatically, as these break when `LTO` is enabled. It does this by automatically defining `NO_ACTION_MACRO` and `NO_ACTION_FUNCTION`
= Enables Link Time Optimization (`LTO`) when compiling the keyboard. This makes the process take longer, but can significantly reduce the compiled size (and since the firmware is small, the added time is not noticable). However, this will automatically disable the old Macros and Functions features automatically, as these break when `LTO` is enabled. It does this by automatically defining `NO_ACTION_MACRO` and `NO_ACTION_FUNCTION`
## USB Endpoint Limitations

169
docs/de/cli.md Normal file
View File

@@ -0,0 +1,169 @@
# QMK CLI (Kommandozeile)
Diese Seite beschreibt die Einrichtung und den Umgang mit dem QMK CLI (Kommandozeile).
# Übersicht
Die QMK CLI vereinfacht das Zusammenbauen und Arbeiten mit QMK Tastaturen. Hier findest Du wichtige Befehle, um beispielsweise das Herunterladen und Kompilieren der QMK Firmware oder das Erstellen von Tastaturbelegungen (und vieles mehr) zu erleichtern.
* [Globale CLI](#globale-cli)
* [Lokale CLI](#lokale-cli)
* [CLI-Befehle](#cli-befehle)
# System-Anforderungen
Die CLI benötigt Python 3.5 oder höher. Außerdem ist es nötig, die Packages laut [`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt) zu installieren.
# Globale CLI
QMK bietet ein installierbares CLI, das Du zum Einrichten Deiner QMK Build-Umgebung verwenden kannst. Dieses ermöglicht Dir das Arbeiten mit QMK, und erleichtert das Arbeiten mit mehreren Kopien der `qmk_firmware`. Wir empfehlen, dieses CLI zu installieren und regelmäßig upzudaten.
## Installation mit Homebrew (macOS, manche Linux)
Solltest Du [Homebrew](https://brew.sh) installiert haben, kannst Du QMK per tap installieren:
```
brew tap qmk/qmk
brew install qmk
export QMK_HOME='~/qmk_firmware' # Optional: setzt den Installationsort für `qmk_firmware`
qmk setup # Dies klont `qmk/qmk_firmware` und richtet optional auch Deine Build-Umgebung ein
```
## Installation mit easy_install oder pip
Falls Du kein Homebrew hast, kannst Du QMK auch manuell installieren. Zuerst musst Du sicherstellen, dass Python 3.5 (oder höher) und pip installiert ist. Dann installiere QMK mit diesem Befehl:
```
pip3 install qmk
export QMK_HOME='~/qmk_firmware' # Optional: setzt den Installationsort für `qmk_firmware`
qmk setup # Dies klont `qmk/qmk_firmware` und richtet optional auch Deine Build-Umgebung ein
```
## Installation mit git Repo
`git clone https://github.com/qmk/qmk_cli.git && cd qmk_cli && python3 setup.py install`
## Packaging für andere Betriebssysteme
Wir suchen nach Freiwilligen, die ein `qmk`-Package für weitere Betriebssysteme erstellen und pflegen. Falls Du ein Package für Dein OS erstellen möchtest, bitte befolge diese Richtlinien:
* Verwende "Best Practices" für Dein OS, sollten sie mit diesen Richtlinien in Konflikt stehen.
* Dokumentiere den Grund in einem Kommentar, wenn Du abweichen musstest.
* Installiere mit einem [virtualenv](https://virtualenv.pypa.io/en/latest/).
* Weise den User an, die Umgebungs-Variable `QMK_HOME` zu setzen, um die Firmware-Quelle anders einzustellen als `~/qmk_firmware`.
# Lokale CLI
Wenn Du die globale CLI nicht verwenden möchtest, beinhaltet `qmk_firmware` auch eine lokale CLI. Du kannst sie hier finden: `qmk_firmware/bin/qmk`. Du kannst den `qmk`-Befehl aus irgendeinem Datei-Verzeichnis ausführen und es wird immer auf dieser Kopie von `qmk_firmware` arbeiten.
**Beispiel**:
```
$ ~/qmk_firmware/bin/qmk hello
Ψ Hello, World!
```
## Einschränkungen der lokalen CLI
Hier ein Vergleich mit der globalen CLI:
* Die lokale CLI unterstützt kein `qmk setup` oder `qmk clone`.
* Die lokale CLI arbeitet immer innerhalb der selben `qmk_firmware`-Verzeichnisstruktur, auch wenn Du mehrere Repositories geklont hast.
* Die lokale CLI läuft nicht in einer virtualenv. Daher ist es möglich, dass Abhängigkeiten (dependencies) miteinander in Konflikt kommen/stehen.
# CLI-Befehle
## `qmk compile`
Dieser Befehl erlaubt es dir, die Firmware - aus egal welchem Datei-Verzeichnis - zu compilen. Du kannst JSON-Exporte von <https://config.qmk.fm> oder Keymaps in der Repo kompilen.
**Anwendung für Konfigurations-Exports**:
```
qmk compile <configuratorExport.json>
```
**Anwendung für Keymaps**:
```
qmk compile -kb <keyboard_name> -km <keymap_name>
```
## `qmk cformat`
Dieser Befehl formatiert C-Code im clang-Format. Benutze ihn ohne Argumente, um den core-Code zu formatieren, oder benutze Namen von Dateien in der CLI, um den Befehl auf bestimmte Dateien anzuwenden.
**Anwendung**:
```
qmk cformat [file1] [file2] [...] [fileN]
```
## `qmk config`
Dieser Befehl konfiguriert das Verhalten von QMK. Für die volle `qmk config`-Dokumentation gehe zu [CLI-Konfiguration](cli_configuration.md).
**Anwendung**:
```
qmk config [-ro] [config_token1] [config_token2] [...] [config_tokenN]
```
## `qmk docs`
Dieser Befehl startet einen lokalen HTTP-Server, den Du zum Browsen oder Verbessern der Dokumentation verwenden kannst. Der Default-Port ist 8936.
**Anwendung**:
```
qmk docs [-p PORT]
```
## `qmk doctor`
Dieser Befehl untersucht Deine Umgebung und warnt Dich vor potentiellen Build- oder Flash-Problemen.
**Anwendung**:
```
qmk doctor
```
## `qmk list-keyboards`
Dieser Befehl listet alle zurzeit in `qmk_firmware` definierten Tastaturen/Keyboards auf.
**Anwendung**:
```
qmk list-keyboards
```
## `qmk new-keymap`
Dieser Befehl erstellt eine neue Keymap basierend auf einer existierenden Standard-Keymap eines bestimmten Keyboards.
**Anwendung**:
```
qmk new-keymap [-kb KEYBOARD] [-km KEYMAP]
```
## `qmk pyformat`
Dieser Befehl formatiert Python-Code in `qmk_firmware`.
**Anwendung**:
```
qmk pyformat
```
## `qmk pytest`
Dieser Befehl führt die Python Test Suite aus. Wenn Du Python-Code veränderst, solltest Du sicherstellen, dass der Test erfolgreich ausgeführt wurde.
**Anwendung**:
```
qmk pytest
```

View File

@@ -2,9 +2,9 @@
QMK presents itself to the host as a regular HID keyboard device, and as such requires no special drivers. However, in order to flash your keyboard on Windows, the bootloader device that appears when you reset the board often *does*.
There are two notable exceptions: the Caterina bootloader, usually seen on Pro Micros, and the Halfkay bootloader shipped with PJRC Teensys, appear as a serial port and a generic HID device respectively, and so do not require a driver.
There are two notable exceptions: the Caterina bootloader, usually seen on Pro Micros, and the HalfKay bootloader shipped with PJRC Teensys, appear as a serial port and a generic HID device respectively, and so do not require a driver.
We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have set up the development environment with Msys2 or WSL, the `qmk_install.sh` script will have asked if you want it to install the drivers for you.
We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have set up the development environment with MSYS2 or WSL, the `qmk_install.sh` script will have asked if you want it to install the drivers for you.
## Installation
@@ -31,7 +31,7 @@ Finally, unplug and replug the keyboard to make sure the new driver has been loa
## Recovering from Installation to Wrong Device
If you find that you can no longer type with the keyboard, you may have installed the driver onto the keyboard itself instead of the bootloader. You can easily confirm this in Zadig - a healthy keyboard has the `HidUsb` driver installed on all of its interfaces:
If you find that you can no longer type with the keyboard, you may have accidentally replaced the driver for the keyboard itself instead of for the bootloader. This can happen when the keyboard is not in the bootloader mode. You can easily confirm this in Zadig - a healthy keyboard has the `HidUsb` driver installed on all of its interfaces:
![A healthy keyboard as seen by Zadig](https://i.imgur.com/Hx0E5kC.png)
@@ -44,3 +44,5 @@ 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)
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!
?> A full reboot of your computer may sometimes be necessary at this point, to get Windows to pick up the new driver.

View File

@@ -2,18 +2,18 @@
## Bluetooth Known Supported Hardware
Currently Bluetooth support is limited to AVR based chips. For Bluetooth 2.1 Qmk has support for RN-42 HID Firmware and Bluefruit EZ Key the later of which is not produced anymore. For more recent BLE protocols currently only the Adafruit Bluefruit SPI friend is directly supported. BLE is needed to connect to iOS devices. Note iOS does not support Mouse Input.
Currently Bluetooth support is limited to AVR based chips. For Bluetooth 2.1, QMK has support for RN-42 modules and the Bluefruit EZ-Key, the latter of which is not produced anymore. For more recent BLE protocols, currently only the Adafruit Bluefruit SPI Friend is directly supported. BLE is needed to connect to iOS devices. Note iOS does not support mouse input.
|Board |Bluetooth Protocol |Connection Type |Rules.mk |Bluetooth Chip|
|Board |Bluetooth Protocol |Connection Type |rules.mk |Bluetooth Chip|
|----------------------------------------------------------------|----------------------------|----------------|---------------------------|--------------|
|[Adafruit EzKey HID]("https://www.adafruit.com/product/1535") |Bluetooth Classic | UART | BLUETOOTH = AdafruitEZKey | |
|Rover Networks RN-42 (Sparkfun Bluesmirf) |Bluetooth Classic | UART | BLUETOOTH = RN42 | RN-42 |
|[Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633)|Bluetooth Low Energy | SPI | BLUETOOTH = AdafruitBLE | nRF5182 |
|[Adafruit EZ-Key HID](https://www.adafruit.com/product/1535) |Bluetooth Classic | UART |`BLUETOOTH = AdafruitEZKey` | |
|Roving Networks RN-42 (Sparkfun Bluesmirf) |Bluetooth Classic | UART |`BLUETOOTH = RN42` | RN-42 |
|[Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633)|Bluetooth Low Energy | SPI |`BLUETOOTH = AdafruitBLE` | nRF51822 |
Not Supported Yet but possible:
* [Bluefruit LE UART Friend](https://www.adafruit.com/product/2479). [Possible tmk implementation found in](https://github.com/tmk/tmk_keyboard/issues/514)
* HC-05 boards flashed with RN-42 firmware. They apparently both use the CSR BC417 Chip. Flashing it with RN-42 firmware gives it HID capability.
* [Sparkfun Bluetooth mate](https://www.sparkfun.com/products/14839)
* Sparkfun Bluetooth Mate
* HM-13 based boards
### Adafruit BLE SPI Friend

View File

@@ -2,7 +2,7 @@
This is an integration of Peter Fleury's LCD library. This page will explain the basics. [For in depth documentation visit his page.](http://homepage.hispeed.ch/peterfleury/doxygen/avr-gcc-libraries/group__pfleury__lcd.html)
You can enable support for HD44780 Displays by setting the `HD44780_ENABLE` flag in your keyboards `rules.mk` to yes. This will use about 400 KB of extra space.
You can enable support for HD44780 Displays by setting the `HD44780_ENABLE` flag in your keyboards `rules.mk` to yes.
## Configuration
@@ -26,7 +26,7 @@ Uncomment the section labled HD44780 and change the parameters as needed.
#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
#define LCD_RS_PORT LCD_PORT //< port for RS line
#define LCD_RS_PIN 3 //< pin for RS line
@@ -39,14 +39,14 @@ Uncomment the section labled HD44780 and change the parameters as needed.
Should you need to configure other properties you can copy them from `quantum/hd44780.h` and set them in your `config.h`
## Usage
## Usage
To initialize your display, call `lcd_init()` with one of these parameters:
````
LCD_DISP_OFF : display off
LCD_DISP_ON : display on, cursor off
LCD_DISP_ON_CURSOR : display on, cursor on
LCD_DISP_ON_CURSOR_BLINK : display on, cursor on flashing
LCD_DISP_ON_CURSOR_BLINK : display on, cursor on flashing
````
This is best done in your keyboards `matrix_init_kb` or your keymaps `matrix_init_user`.
It is advised to clear the display before use.

View File

@@ -16,7 +16,7 @@ First, enable Key Lock by setting `KEY_LOCK_ENABLE = yes` in your `rules.mk`. Th
## Caveats
Key Lock is only able to hold standard action keys and [One Shot modifier](quantum_keycodes.md#one-shot-keys) keys (for example, if you have your Shift defined as `OSM(KC_LSFT)`).
Key Lock is only able to hold standard action keys and [One Shot modifier](feature_advanced_keycodes.md#one-shot-keys) keys (for example, if you have your Shift defined as `OSM(KC_LSFT)`).
This does not include any of the QMK special functions (except One Shot modifiers), or shifted versions of keys such as `KC_LPRN`. If it's in the [Basic Keycodes](keycodes_basic.md) list, it can be held.
Switching layers will not cancel the Key Lock.

View File

@@ -47,7 +47,7 @@ The 3 wires of the TRS/TRRS cable need to connect GND, VCC, and D0 (aka PDO or p
The 4 wires of the TRRS cable need to connect GND, VCC, and SCL and SDA (aka PD0/pin 3 and PD1/pin 2, respectively) between the two Pro Micros.
The pull-up resistors may be placed on either half. It is also possible to use 4 resistors and have the pull-ups in both halves, but this is unnecessary in simple use cases.
The pull-up resistors may be placed on either half. If you wish to use the halves independently, it is also possible to use 4 resistors and have the pull-ups in both halves.
![I2C wiring](https://i.imgur.com/Hbzhc6E.png)

View File

@@ -1,6 +1,6 @@
# Terminal
> This feature is currently *huge* at 4400 bytes, and should probably only be put on boards with a lot of memory, or for fun.
> This feature is currently *huge*, and should probably only be put on boards with a lot of memory, or for fun.
The terminal feature is a command-line-like interface designed to communicate through a text editor with keystrokes. It's beneficial to turn off auto-indent features in your editor.
@@ -56,7 +56,7 @@ Outputs the last 5 commands entered
1. help
2. about
3. keymap 0
4. help
4. help
5. flush-buffer
```

View File

@@ -211,15 +211,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if ( (temp_mod | temp_osm) & MOD_MASK_SHIFT )
#endif
{ //
#if defined(__arm__) // only run for ARM boards
SEND_STRING(":dfu-util");
#elif defined(BOOTLOADER_DFU) // only run for DFU boards
SEND_STRING(":dfu");
#elif defined(BOOTLOADER_HALFKAY) // only run for teensy boards
SEND_STRING(":teensy");
#elif defined(BOOTLOADER_CATERINA) // only run for Pro Micros
SEND_STRING(":avrdude");
#endif // bootloader options
SEND_STRING(":flash");
}
if ( (temp_mod | temp_osm) & MOD_MASK_CTRL) {
SEND_STRING(" -j8 --output-sync");
@@ -244,7 +236,7 @@ endif
This will add a new `KC_MAKE` keycode that can be used in any of your keymaps. And this keycode will output `make <keyboard>:<keymap>`, making frequent compiling easier. And this will work with any keyboard and any keymap as it will output the current boards info, so that you don't have to type this out every time.
Also, holding `shift` will add the appropriate flashing command (`:dfu`, `:teensy`, `:avrdude`, `:dfu-util`) for a majority of keyboards. Holding `control` will add some commands that will speed up compiling time by processing multiple files at once.
Also, holding Shift will add the flash target (`:flash`) to the command. Holding Control will add some commands that will speed up compiling time by processing multiple files at once.
And for the boards that lack a shift key, or that you want to always attempt the flashing part, you can add `FLASH_BOOTLOADER = yes` to the `rules.mk` of that keymap.

View File

@@ -99,11 +99,16 @@ or
make <keyboard>:<keymap>:avrdude
or if you want to flash multiple boards, use the following command
make <keyboard>:<keymap>:avrdude-loop
#### Caterina commands
There are a number of DFU commands that you can use to flash firmware to a DFU device:
* `: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._
When you're done flashing boards, you'll need to hit Ctrl + C or whatever the correct keystroke is for your operating system to break the loop.
## Halfkay
@@ -231,7 +236,7 @@ Flashing sequence:
There are a number of DFU commands that you can use to flash firmware to a STM32 device:
* `:dfu-util` - The default command for flashing to STM32 devices.
* `:dfu-util` - The default command for flashing to STM32 devices, and will wait until an STM32 bootloader device is present.
* `: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.
* `:st-link-cli` - This allows you to flash the firmware via ST-LINK's CLI utility, rather than dfu-util.

View File

@@ -6,9 +6,9 @@ Ce document présente les fusions de Breaking Change. Voici la liste des changem
## Formattage de code Core avec clang-format
* Tous les fichiers core (`drivers/`, `quantum/`, `tests/`, et `tmk_core/`) seront formattés avec clang-format
* Tous les fichiers core (`drivers/`, `quantum/`, `tests/`, et `tmk_core/`) seront formatés avec clang-format
* Un processus travis pour reformatter les PRs lors de la fusion a été mis en place
* Vous pouvez utiliser la nouvelle commande CLI `qmk cformat` afin de formatter avant de soumettre votre PR si vous le souhaitez.
* Vous pouvez utiliser la nouvelle commande CLI `qmk cformat` afin de formater avant de soumettre votre PR si vous le souhaitez.
## Nettoyage des descripteurs LUFA USB

View File

@@ -7,7 +7,7 @@
[![Contributeurs Github](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly)
[![Forks Github](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/)
## 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é.
@@ -23,7 +23,7 @@ Avant d'être prêt à compiler vous allez devoir [installer un environnement](g
make planck/rev4:default
Cette commande compilera la révision `rev4` du clavier `planck` avec la disposition `default`. Notez que tous les claviers n'ont pas forcément de révisions (aussi appelées sous-projects ou dossiers, ou en en Anglais «subprojects» ou «folder»). Cette option peut donc être omise:
Cette commande compilera la révision `rev4` du clavier `planck` avec la disposition `default`. Notez que tous les claviers n'ont pas forcément de révisions (aussi appelées sous-projects ou dossiers, ou en anglais «subprojects» ou «folder»). Cette option peut donc être omise:
make preonic:default

View File

@@ -23,7 +23,7 @@ Le prochain Breaking Change est planifié pour le 29 novembre.
## Quels changements seront inclus?
Pour voir une liste de candidats de breaking changes, vous pouvez regardez la liste des [labels `breaking_change`](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+label%3Abreaking_change+is%3Apr). De nouveaux changements peuvent être ajoutés entre maintenant et lorsque `future` est fermée, et un PR avec ce label n'est pas garanti d'être fusionné.
Pour voir une liste de candidats de breaking changes, vous pouvez regarder la liste des [labels `breaking_change`](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+label%3Abreaking_change+is%3Apr). De nouveaux changements peuvent être ajoutés entre maintenant et lorsque `future` est fermée, et un PR avec ce label n'est pas garanti d'être fusionné.
Si vous souhaitez que votre breaking change soit inclus dans ce tour, vous devez créer un PR avec le label `breaking_change` et faire en sorte qu'il soit accepté avant que `future` ne soit fermé. Une fois `future` fermé, aucun nouveau breaking change sera accepté.

View File

@@ -4,7 +4,7 @@ Cette page décrit comment configurer et utiliser la CLI QMK.
# Vue d'ensemble
La CLI de QMK permet de simplifier la compilation et l'intéraction avec les clavier QMK. Nous avons définis plusieurs commandes pour simplifier et rationaliser les tâches telles qu'obtenir et compiler le firmware QMK, créer de nouvelles keymaps, et plus.
La CLI de QMK permet de simplifier la compilation et l'interaction avec les claviers QMK. Nous avons défini plusieurs commandes pour simplifier et rationaliser les tâches telles qu'obtenir et compiler le firmware QMK, créer de nouvelles keymaps, et plus.
* [CLI globale](#global-cli)
* [CLI locale](#local-cli)
@@ -127,7 +127,7 @@ qmk new-keymap [-kb KEYBOARD] [-km KEYMAP]
## `qmk pyformat`
Cette commande formatte le code python dans `qmk_firmware`.
Cette commande formate le code python dans `qmk_firmware`.
**Utilisation**:
@@ -137,7 +137,7 @@ qmk pyformat
## `qmk pytest`
Cette commande démarre la suite de test python. Si vous faites des changements dans le code Python, assurez vous que les tests se lancent avec succès.
Cette commande démarre la suite de test python. Si vous faites des changements dans le code Python, assurez-vous que les tests se lancent avec succès.
**Utilisation**:

View File

@@ -41,7 +41,7 @@ user.keymap: None -> default
# CLI Documentation (`qmk config`)
La commande `qmk config` est utilisée pour intéragir avec la configuration sous-jacente. Lancée sans argument, elle affiche la configuration courante. Lorsque des arguments sont définis, ils sont considérés comme étant des jetons de configuration, qui sont des chaînes de caractère ne contenant aucun espace avec le format suivant:
La commande `qmk config` est utilisée pour interagir avec la configuration sous-jacente. Lancée sans argument, elle affiche la configuration courante. Lorsque des arguments sont définis, ils sont considérés comme étant des jetons de configuration, qui sont des chaînes de caractère ne contenant aucun espace avec le format suivant:
<subcommand|general|default>[.<key>][=<value>]
@@ -91,7 +91,7 @@ default.keymap: default -> None
## Plusieurs opérations
Vous pouvez combiner plusieures opérations d'écriture et de lecture en une seule commande. Elle seront exécutées et affichées dans l'ordre:
Vous pouvez combiner plusieurs opérations d'écriture et de lecture en une seule commande. Elles seront exécutées et affichées dans l'ordre:
```
$ qmk config compile default.keymap=default compile.keymap=None

View File

@@ -2,7 +2,7 @@
👍🎉 Premièrement, merci de prendre le temps de lire ceci et de contribuer! 🎉👍
Les contributions de tiers nous aide à améliorer et faire grandir QMK. Nous voulons rendre les pull requests et le processus de contribution utile et simple à la fois pour les contributeurs et les mainteneurs. C'est pourquoi nous avons mis en places des directives pour les contibuteurs afin que votre pull request puisse être accepté sans changement majeur.
Les contributions de tiers nous aide à améliorer et faire grandir QMK. Nous voulons rendre les pull requests et le processus de contribution utile et simple à la fois pour les contributeurs et les mainteneurs. C'est pourquoi nous avons mis en places des directives pour les contributeurs afin que votre pull request puisse être accepté sans changement majeur.
* [Aperçu du projet](#project-overview)
* [Conventions de codage](#coding-conventions)
@@ -38,7 +38,7 @@ Vous n'avez encore jamais contribué à un projet open source? Vous vous demande
0. Enregistrez-vous sur [GitHub](https://github.com).
1. Définissez une keymap à contribuer, [trouvez une issue](https://github.com/qmk/qmk_firmware/issues) que vous souhaitez corriger, ou [une fonction](https://github.com/qmk/qmk_firmware/issues?q=is%3Aopen+is%3Aissue+label%3Afeature) que vous voulez ajouter.
2. Créez un fork sur le dépôt associé avec une issue sur votre compte GitHub. Cela veut dire que vous allez avoir une copie du dépôt sous `votre-login-GitHub/qmk_firmware`.
3. Clonez le dépôt sur votre macine locale en utilisant `git clone https://github.com/login-github/repository-name.git`.
3. Clonez le dépôt sur votre machine locale en utilisant `git clone https://github.com/login-github/repository-name.git`.
4. Si vous travaillez sur une nouvelle fonctionnalité, pensez à ouvrir une issue pour parler avec nous du travail que vous souhaitez démarrer.
5. Créez une nouvelle branche pour votre correctif en utilisant `git checkout -b nom-de-branche`.
6. Faites les changements nécessaires pour corriger le problème ou ajouter la fonctionnalité.
@@ -69,7 +69,7 @@ Nous avons un certain nombre de type de changements dans QMK, chacun nécessitan
* Keymaps: Assurez-vous que `make keyboard:your_new_keymap` ne renvoie pas d'erreur.
* Claviers: Assurez-vous que `make keyboard:all` ne renvoie pas d'erreur.
* Core: Assurez-vous que `make all` ne renvoie pas d'erreur.
* Assurez-vous que les messages de commit soient compréhensibles d'eux-même. Vous devriez écrire une description simple (pas plus de 70 caractères) sur la première ligne, suivi d'une ligne vide, suivi d'un détail de votre commit, si nécessaire. Exemple:
* Assurez-vous que les messages de commit soient compréhensibles d'eux-mêmes. Vous devriez écrire une description simple (pas plus de 70 caractères) sur la première ligne, suivi d'une ligne vide, suivi d'un détail de votre commit, si nécessaire. Exemple:
```
Adjust the fronzlebop for the kerpleplork
@@ -81,11 +81,11 @@ Limited experimentation on the devices I have available shows that 7 is high eno
## Documentation
La documentation est l'une des manière 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/.
Lorsque vous donnez des exemples de code dans la documentation, essayez de suivre les conventions de nommage utilisées ailleurs dnas 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:
```c
enum my_layers {
@@ -129,16 +129,16 @@ Faites attention d'être sûr d'implémenter votre nouvelle fonctionnalité de l
* [Chat sur Discord](https://discord.gg/Uq7gcHh)
* [Ouvrir une Issue](https://github.com/qmk/qmk_firmware/issues/new)
Les PR de nouvelles fonctionnalités de de correction de bug affectent tous les claviers. Nous sommes aussi dans un processus de restructuration de QMK. Pour cette raison, il est absolument nécessaire que tout changement important ou significatif soit discuté avant que l'implémentation soit faite. Si vous ouvrez un PR sans nous avoir parlé, préparez vous à faire des refontes significatives si vous changements ne sont pas compatibles avec ce que nous avons planifié.
Les PR de nouvelles fonctionnalités de de correction de bug affectent tous les claviers. Nous sommes aussi dans un processus de restructuration de QMK. Pour cette raison, il est absolument nécessaire que tout changement important ou significatif soit discuté avant que l'implémentation soit faite. Si vous ouvrez un PR sans nous avoir parlé, préparez-vous à faire des refontes significatives si vos changements ne sont pas compatibles avec ce que nous avons planifié.
Voici quelques choses à garder en tête lorsque vous travaillez sur une fonctionnalité ou un bug fix.
* **Désactivé par défaut** - la mémoire est plutôt limitée sur la plupart des puces que QMK supporte, et il est important que les keymaps courantes ne soient pas cassées. S'il vous plaît faites que vos features doivent être **activées** plutôt que désactivées. Si vous pensez qu'elle devrait être activée par défaut, ou que cela réduit la taille du code, parlez-nous en.
* **Désactivé par défaut** - la mémoire est plutôt limitée sur la plupart des puces que QMK supporte, et il est important que les keymaps courantes ne soient pas cassées. S'il vous plaît faites que vos features doivent être **activées** plutôt que désactivées. Si vous pensez qu'elle devrait être activée par défaut, ou que cela réduit la taille du code, parlez-nous-en.
* **Compilez localement avant de soumettre** - Cela devrait aller sans dire, mais votre code doit compiler! Notre système Travis devrait relever les problèmes, mais il est généralement plus rapide de compiler quelques claviers en local plutôt que d'attendre le retour des résultats
* **Faites attention aux révisions et différentes bases de puces** - beaucoup de claviers ont des révisions qui permettent des changements de configuration mineurs, voir des bases de chip différentes. Essayez de faire que votre fonctionnalité soit supportée à la fois sur ARM et AVR, ou désactivez-là automatiquement sur les plateformes non supportées.
* **Expliquez votre fonctionnalité** - Documentez-là dans `docs/`, soit dans un nouveau fichier, ou dans une partie d'un fichier existant. Si vous ne la documentez pas, personne ne pourra bénéficier de votre dur labeur.
Nous vous demandons aussi de suivre ces ces directives:
Nous vous demandons aussi de suivre ces directives:
* Gardez un nombre de commits raisonnable, ou nous squasherons votre PR.
* Ne regroupez pas des claviers ou des keymaps avec des changements core. Soumettez vos changements core en premier.
@@ -151,4 +151,4 @@ Afin de maintenir une vision claire sur comment les choses sont architectuées d
# Que veut dire le code de conduite pour moi?
Note [Code De Conduite](https://github.com/qmk/qmk_firmware/blob/master/CODE_OF_CONDUCT.md) veut dire que vous avez la responsabilité de traiter tout le monde dans le projet avec respect et courtoisie, peut importe leur identité. Si vous êtes victime d'une attitude ou de commentaires inapropriés, tels que décrit dans notre Code de Conduite, nous sommes là pour vous et nous ferons de notre mieux pour nous assurer que le fautif soit réprimandé, tel que décrit dans notre code.
Note [Code De Conduite](https://github.com/qmk/qmk_firmware/blob/master/CODE_OF_CONDUCT.md) veut dire que vous avez la responsabilité de traiter tout le monde dans le projet avec respect et courtoisie, peu importe leur identité. Si vous êtes victime d'une attitude ou de commentaires inappropriés, tels que décrit dans notre Code de Conduite, nous sommes là pour vous et nous ferons de notre mieux pour nous assurer que le fautif soit réprimandé, tel que décrit dans notre code.

View File

@@ -1,6 +1,6 @@
# Instructions pour flasher et informations sur les bootloader
Les claviers utilisent différents types de bootloaders et certains doivent être flashés différement. Heureusement, certains projets comme la [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) ont pour objectifs de permettre de flasher les différents bootloader sans trop se faire de soucis et ça peut importe les manières de les flasher.
Les claviers utilisent différents types de bootloaders et certains doivent être flashés différement. Heureusement, certains projets comme la [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) ont pour objectifs de permettre de flasher les différents bootloader sans trop se faire de soucis et ça peu importe les manières de les flasher.
Si vous avez un bootloader sélectionné avec la variable `BOOTLOADER` dans votre fichier `rules.mk` alors QMK vas automatiquement calculer si votre fichier .hex n'est pas trop grand pour être flashé sur votre appareil, et il affichera la taille finale du firmware. Pour vérifier la taille manuellement, vous pouvez aussi compiler le firmware avec l'option `check-size`. Exemple : `make planck/rev4:default:check-size`.
@@ -49,7 +49,7 @@ QMK a un fork du bootloader LUFA DFU qui vous permet de faire un simple scan de
#define QMK_LED E6
#define QMK_SPEAKER C6
Le fabriquant et le nom du produit proviennent de vos définitions dans fichier `config.h`, et la chaîne de caractère «bootloader» est ajoutée au nom du prodruit.
Le fabricant et le nom du produit proviennent de vos définitions dans fichier `config.h`, et la chaîne de caractère «bootloader» est ajoutée au nom du produit.
Pour génerer le bootloader, utilisez la cible `bootloader`. Exemple:`make planck/rev4:default:bootloader`.
@@ -66,7 +66,7 @@ Il y a plusieurs commandes DFU que vous pouvez utiliser pour flasher le firmware
## Caterina
Les cartes arduinos et leurs clones utilisent le [bootloader Caterina](https://github.com/arduino/ArduinoCore-avr/tree/master/bootloaders/caterina) (tous les claviers utilisant un Pro Micro, ou un clone). Ils utilisent aussi le protocole avr109 pour communiquer en virtuellement en série (serial en Anglais). Les bootloaders comme le [A-Star](https://www.pololu.com/docs/0J61/9) sont basés sur Caterina.
Les cartes arduinos et leurs clones utilisent le [bootloader Caterina](https://github.com/arduino/ArduinoCore-avr/tree/master/bootloaders/caterina) (tous les claviers utilisant un Pro Micro, ou un clone). Ils utilisent aussi le protocole avr109 pour communiquer en virtuellement en série (serial en anglais). Les bootloaders comme le [A-Star](https://www.pololu.com/docs/0J61/9) sont basés sur Caterina.
Pour vérifier la compatibilité avec un bootloader Caterina, vérifiez que ce bloc est présent dans votre fichier `rules.mk`:
@@ -84,8 +84,8 @@ BOOTLOADER = caterina
Flashers compatibles:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (Interface graphique recomandée)
* [avrdude](http://www.nongnu.org/avrdude/) avec avr109 / `:avrdude` (Outil en ligne de commande recomandé)
* [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é)
* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
Séquence de flash :
@@ -99,11 +99,14 @@ ou, utilisez:
make <keyboard>:<keymap>:avrdude
ou, si vous vous voulez flasher plusieurs claviers, utilisez la commande suivante:
#### Commandes Caterina
make <keyboard>:<keymap>:avrdude-loop
Il existe un certain nombre de commandes DFU que vous pouvez utiliser pour mettre à jour le firmware sur un périphérique DFU:
Quand vous avez fini de flasher vos claviers, vous aurez besoin d'utiliser Ctrl + C ou alors la touche ayant la fonction similaire sur votre OS pour sortir de la boucle.
* `: avrdude` - Il sagit de loption normale. Le script va attendre quun appareil Caterina soit disponible. Dès que cest le cas, il flash le firmware. Il attendra de détecter un nouveau port COM pour le flasher.
* `: avrdude-loop` - Cela fonctionne de la même manière que`: avrdude`, mais une fois que chaque périphérique est flashé, il tentera de flasher à nouveau. Cela peut être utile pour flasher plusieurs claviers à la suite. _Cela implique de sortir manuellement de la boucle en appuyant sur Ctrl + C, Cmd + C ou un raccourci équivalent selon votre OS_
* `: avrdude-split-left` - Cela fonctionne de la même manière que la fonction (`: avrdude`). Toutefois, cela permet aussi de flasher le coté gauche de l'EEPROM des claviers splittés / divisés. C'est donc la méthode recommandée pour les claviers splittés avec Pro Micro.
* `: avrdude-split-right` - Cela fonctionne de la même manière que la fonction (`: avrdude`). Toutefois, cela permet aussi de flasher le coté droite de l'EEPROM des claviers splittés / divisés. C'est donc la méthode recommandée pour les claviers splittés avec Pro Micro.
## Halfkay
@@ -169,7 +172,7 @@ Séquence de flash:
## BootloadHID
BootloadHID est un bootloader pour les microcontroleurs AVR. L'utilitaire de téleversement ne demande pas de drivers au niveau du kernel et peut être lancé sans installer aucune DLLs.
BootloadHID est un bootloader pour les microcontrôleurs AVR. L'utilitaire de téleversement ne demande pas de drivers au niveau du kernel et peut être lancé sans installer aucune DLLs.
Pour vérifier la compatibilité avec le bootloader bootloadHID, vérifiez que ce bloc existe dans votre fichier `rules.mk` :
@@ -194,7 +197,7 @@ Séquence de flash
1. Entrez dans le bootloader en utilisant l'une de ces méthodes:
* Pressez la touche du keycode `RESET` (Cela ne fonctionnera pas sur certains appareils).
* Verouillez la touche «Salt» tout en branchant le clavier (Géneralement ce principe est documenté dans le fichier readme du clavier)
* Verrouillez la touche «Salt» tout en branchant le clavier (Généralement ce principe est documenté dans le fichier readme du clavier)
2. Attendez que l'OS détecte l'appareil.
3. Flasher le fichier .hex.
4. Redémarrez l'appareil en mode «application». Cela peut être fait automatiquement.
@@ -224,13 +227,13 @@ Séquence pour flasher:
3. Flasher un fichier `.bin`.h
* Vous allez recevoir un avertissement à propos de la signature DFU. Ignorez-la.
4. Réinitialisez l'appareil en mode «application». Cela peut être fait automatiquement.
* Si vous êtes en train de travailler en ligne de commande, par exemple avec un `make planck/rev6:default:dfu-util` alors soyez bien sur que l'argument `:leave` est passé aux argument DFU grâce à la variable `DFU_ARGS` à l'intérieur de votre fichier `rules.mk` (Ex:`DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave`) afin que votre appareil redémarre après avoir été flashé.
* Si vous êtes en train de travailler en ligne de commande, par exemple avec un `make planck/rev6:default:dfu-util` alors soyez bien sur que l'argument `:leave` est passé aux arguments DFU grâce à la variable `DFU_ARGS` à l'intérieur de votre fichier `rules.mk` (Ex:`DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave`) afin que votre appareil redémarre après avoir été flashé.
### Commandes STM32
Il y a différentes commandes que vous pouvez utiliser pour flasher un firmware dans un appareil STM32:
* `:dfu-util` - La commande par défaut pour flasher un appareil STM32.
* `:dfu-util-split-left` - Permet de flasher un firmware normalement, tout comme l'option précedente mais permet de configurer le coté gauche des paramètres EEPROM sur un clavier scindé.
* `:dfu-util-split-right` - Permet de flasher un firmware normalement, tout comme l'option précedente mais permet de configurer le coté droit des paramètres EEPROM sur un clavier scindé.
* `:dfu-util` - C'est l'option standard pour flasher un appareil STM32. Le script attendra qu'un bootloader STM32 soit présent.
* `:dfu-util-split-left` - Permet de flasher un firmware normalement, tout comme l'option précédente mais permet de configurer le côté gauche des paramètres EEPROM sur un clavier scindé.
* `:dfu-util-split-right` - Permet de flasher un firmware normalement, tout comme l'option précédente mais permet de configurer le côté droit des paramètres EEPROM sur un clavier scindé.
* `:st-link-cli` - Cela permet de flasher le firmware avec l'utilitaire en ligne de commande ST-LINK's plutôt que d'utiliser dfu-util.

View File

@@ -4,7 +4,7 @@ Il y a beaucoup de ressources pour trouver de l'aide avec QMK.
## Chat temps-réel
Vous trouverez des développeurs QMK et des utilisateurs sur notre [Serveur Discord](https://discord.gg/Uq7gcHh) principal. Il y a des canaux spécifiques dans le serveurs pour discuter des firmware, toolbox, hardware et configurateurs.
Vous trouverez des développeurs QMK et des utilisateurs sur notre [Serveur Discord](https://discord.gg/Uq7gcHh) principal. Il y a des canaux spécifiques dans le serveur pour discuter des firmwares, toolbox, hardware et configurateurs.
## Sous-Reddit OLKB
@@ -12,4 +12,4 @@ Le forum officiel de QMK est [/r/olkb](https://reddit.com/r/olkb) sur [reddit.co
## Tickets GitHub
Vous pouvez ouvrir un [ticket sur GitHub](https://github.com/qmk/qmk_firmware/issues). Ceci est spécialement pratique lorsque votre problème demande une discussion long terme ou un débugage.
Vous pouvez ouvrir un [ticket sur GitHub](https://github.com/qmk/qmk_firmware/issues). Ceci est spécialement pratique lorsque votre problème demande une discussion sur le long terme ou un débugage.

View File

@@ -8,11 +8,11 @@ Commencez par la [page GitHub de QMK](https://github.com/qmk/qmk_firmware), et v
![Fork on Github](http://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 quelque 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)
Faites attention à sélectionner "HTTPS", et sélectionnez le liens et copiez-le:
Faites attention à sélectionner "HTTPS", et sélectionnez le lien et copiez-le:
![HTTPS link](http://i.imgur.com/eGO0ohO.jpg)
@@ -48,7 +48,7 @@ To https://github.com/whoeveryouare/qmk_firmware.git
+ 20043e64...7da94ac5 master -> master
```
Vos changements existent maintenant dans votre fork sur GitHub. Si vous allez à cete 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)

View File

@@ -43,7 +43,7 @@ Le fichier `config.h` peut être mis à 3 endroits:
* userspace (`/users/<user>/config.h`)
* keymap (`/keyboards/<keyboard>/keymaps/<keymap>/config.h`)
Le système de compilation cherche automatiquement les fichiers de configuration dans l'ordre au dessus. Si vous souhaitez surcharger une configuration définie par un `config.h` précédent, vous devrez d'abord ajouter le code suivant.
Le système de compilation cherche automatiquement les fichiers de configuration dans l'ordre au-dessus. Si vous souhaitez surcharger une configuration définie par un `config.h` précédent, vous devrez d'abord ajouter le code suivant.
```
#pragma once
@@ -51,7 +51,7 @@ Le système de compilation cherche automatiquement les fichiers de configuration
Ensuite, pour surcharger l'option du fichier `config.h` précédent, vous devez `#undef` puis `#define` l'option à nouveau.
Voici à quoi l'ensemble du code resemble une fois regroupé:
Voici à quoi l'ensemble du code ressemble une fois regroupé:
```
#pragma once

View File

@@ -11,7 +11,7 @@ Ce document suppose les choses suivantes:
## La branche master de votre fork: Mettre à jour souvent, ne jamais commit
Il est hautement recommandé pour le développement de QMK, peu importe ce qui est fait ou où, de garder votre branche `master` à jour, mais de ne ***jamais*** commit dessus. A la place, faites tous vos changement dans une branche de développement et crééz des "pull requests" de votre branche lorsque vous développez.
Il est hautement recommandé pour le développement de QMK, peu importe ce qui est fait ou où, de garder votre branche `master` à jour, mais de ne ***jamais*** commit dessus. A la place, faites tous vos changements dans une branche de développement et crééz des "pull requests" de votre branche lorsque vous développez.
Pour réduire les chances de conflits de fusion (merge) &mdash; des cas où deux ou plus d'utilisateurs ont édité la même section d'un fichier en parallèle &mdash; gardez votre branche `master` relativement à jour et démarrez chaque nouveau développement en créant une nouvelle branche.
@@ -44,7 +44,7 @@ git pull upstream master
git push origin master
```
Cela vous change la branche courante en master, synchronise les données de réferences du dépôt QMK vers votre ordinateur. La commande pull tire les données de réferences vers votre branche courante puis les y téleverse. La commande push permet de pousser la branche courante (master) vers votre fork github.
Cela vous change la branche courante en master, synchronise les données de références du dépôt QMK vers votre ordinateur. La commande pull tire les données de références vers votre branche courante puis les y téleverse. La commande push permet de pousser la branche courante (master) vers votre fork github.
### Faire des changements
@@ -55,11 +55,11 @@ git checkout -b dev_branch
git push --set-upstream origin dev_branch
```
Ceci crée une branche nommée `dev_branch`, bascule vers cette branche, et ensuite sauvegarde cette nouvelle branche vers votre fork. L'argument `--set-upstream` demande à git d'utiliser votre fork et la branche `dev_branch` à chaque fois que vous utilisez `git push` ou `git pull` depuis cette branche. Vous ne devez l'utiliser que pour le premier "push", après celà, vous pouvez utiliser simplement `git push` ou `git pull`, sans le reste des arguments.
Ceci crée une branche nommée `dev_branch`, bascule vers cette branche, et ensuite sauvegarde cette nouvelle branche vers votre fork. L'argument `--set-upstream` demande à git d'utiliser votre fork et la branche `dev_branch` à chaque fois que vous utilisez `git push` ou `git pull` depuis cette branche. Vous ne devez l'utiliser que pour le premier "push", après cela, vous pouvez utiliser simplement `git push` ou `git pull`, sans le reste des arguments.
!> Avec `git push`, vous pouvez utiliser `-u` à la place de `--set-upstream` &mdash; `-u` est un alias pour `--set-upstream`.
Vous pouvez appeler votre branche à peu prêt comme vous voulez, toutefois il est recommandé d'utiliser un nom qui est lié aux changements que vous allez faire.
Vous pouvez appeler votre branche à peu près comme vous voulez, toutefois il est recommandé d'utiliser un nom qui est lié aux changements que vous allez faire.
Par défaut, `git checkout -b` va faire de la branche actuelle la branche de base de votre nouvelle branche. Vous pouvez définir la base de votre nouvelle branche comme étant n'importe quelle branche existante qui n'est pas la courante en utilisant la commande:
@@ -76,11 +76,11 @@ git commit -m "My commit message."
`git add` ajoute les fichiers qui ont été changés dans la *zone de staging* de Git, qui est sa "zone de chargement". Elle contient tous les changements qui vont être *validés* (committed) par `git commit`, qui sauvegarde les changements vers le dépôt. Utilisez des messages de validation descriptifs afin que vous puissiez savoir ce qui a changé d'un coup d'oeil.
!> Si vous changez beaucoup de fichiers, mais tous les fichiers font partie du même changement, vous pouvez utiliser `git add .` pour ajouter tous les fichiers changés dans le répertoire courant, plutôt que d'avoir à ajouter chaque fichiers individuellement.
!> Si vous changez beaucoup de fichiers, mais tous les fichiers font partie du même changement, vous pouvez utiliser `git add .` pour ajouter tous les fichiers changés dans le répertoire courant, plutôt que d'avoir à ajouter chaque fichier individuellement.
### Publier Vos Changements
La dernière étape est de pousser vos changements vers votre fork. pour se faire, entrez `git push`. Git publie maintenant l'état courant de `dev_branch` vers votre fork.
La dernière étape est de pousser vos changements vers votre fork. Pour ce faire, entrez `git push`. Git publie maintenant l'état courant de `dev_branch` vers votre fork.
## Résoudre Les Conflits De Merge
@@ -112,7 +112,7 @@ Maintenant que l'état actuel de la branche courante et la branche upstream sont
git rebase upstream/master
```
Ceci dit à Git d'annuler les commits de la branche courrante puis de les réappliquer sur la branche master de QMK.
Ceci dit à Git d'annuler les commits de la branche courante puis de les réappliquer sur la branche master de QMK.
```bash
$ git rebase upstream/master
@@ -133,7 +133,7 @@ You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".
```
Ceci nous dit que nous avons un conflit de merge, et nous donne le nom du fichier en conflit. Ouvez le fichier conflictuel dans votre éditeur de texte et, quelque part dans le fichier, vous trouverez quelque chose comme ça:
Ceci nous dit que nous avons un conflit de merge, et nous donne le nom du fichier en conflit. Ouvrez le fichier conflictuel dans votre éditeur de texte et, quelque part dans le fichier, vous trouverez quelque chose comme ça:
```bash
<<<<<<< HEAD

View File

@@ -20,11 +20,11 @@ Je vais le répéter, parce que c'est important
!> **FAITES ATTENTION A UTILISER LA BONNE VERSION !**
Si votre clavier est annoncé comme fonctionnant grâce à QMK mais n'est pas dans la liste, il y a des chances que le développeur ne l'ait pas encore fait, ou que nous n'avons pas encore eu le temps de le merger. Ajoutez un problème (issue) sur [qmk_firmware](https://github.com/qmk/qmk_firmware/issues) demandant le support de votre clavier, s'il n'y a pas de [Pull Request](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+is%3Apr+label%3Akeyboard) ouvert pour lui. Il y a aussi des clavier alimentés par QMK qui sont sur le compte GitHub du fabriquant, il est bon de le vérifier aussi.
Si votre clavier est annoncé comme fonctionnant grâce à QMK mais n'est pas dans la liste, il y a des chances que le développeur ne l'ait pas encore fait, ou que nous n'avons pas encore eu le temps de le merger. Ajoutez un problème (issue) sur [qmk_firmware](https://github.com/qmk/qmk_firmware/issues) demandant le support de votre clavier, s'il n'y a pas de [Pull Request](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+is%3Apr+label%3Akeyboard) ouvert pour lui. Il y a aussi des claviers alimentés par QMK qui sont sur le compte GitHub du fabricant, il est bon de le vérifier aussi.
## Sélectionner la disposition de votre clavier
Choisissez la disposition (layout) qui représente le mieux la keymap que vous voulez créer. Certains clavier n'ont pas encore assez de dispositions ou des dispositions incorrectes. Ils seront supportés dans le future.
Choisissez la disposition (layout) qui représente le mieux la keymap que vous voulez créer. Certains claviers n'ont pas encore assez de dispositions ou des dispositions incorrectes. Ils seront supportés dans le future.
## Nom de la Keymap

View File

@@ -78,7 +78,23 @@ Appuyez sur le boutton `Flash` dans QMK Toolbox. Vous verrez un résultat simila
## Flashez votre clavier à l'aide de la ligne de commande
La première chose que vous devez savoir c'est quel bootloader utilise votre clavier. Il y a quatre bootloaders principaux. Pro-Micro et les clones, utilisent CATERINA, les Teensy utilisent Halfkay, les OLKB utilisent QMK-DFU et les autres chips atmega32u4 utilisent DFU.
C'est désormais relativement simple. Lorsque vous êtes prêt à compiler et à flasher votre firmware, ouvrez la fenêtre de votre terminal et exécutez la commande de build :
make <my_keyboard>:<my_keymap>:flash
Par exemple, si votre keymap s'appelle "xyverz" et que vous fabriquez une keymap pour un clavier `planck` de version `rev5` vous devrez utiliser cette commande:
make planck/rev5:xyverz:flash
La commande va vérifier la configuration du clavier, puis tentera de le flasher en fonction du bootloader (chargeur damorçage) spécifié. Cela signifie que vous n'avez pas besoin de savoir quel bootloader votre clavier utilise. Exécutez simplement la commande et laissez-le faire le gros du travail.
Cependant, tout dépend du bootloader qui est installé sur le clavier. Si cette information nest pas configurée ou si vous tentez de flasher un clavier qui ne permet pas dêtre flashé alors vous obtiendrez cette erreur :
WARNING: This board's bootloader is not specified or is not supported by the ":flash" target at this time.
Dans ce cas, vous devrez choisir le bootloader.
Il y a cinq bootloaders principaux. Les Pro-Micro et les clones utilisent Caterina, les Teensy utilisent Halfkay, les claviers AVR dOLKB utilisent QMK-DFU, certains controleurs atmega32u4 utilisent DFU et la plupart des controlleurs ARM utilisent ARM DFU.
Vous pouvez trouver plus d'information à propos des bootloaders sur la page [Instructions de flash et information sur le Bootloader](flashing.md).
@@ -104,7 +120,7 @@ Checking file size of planck_rev5_xyverz.hex
* File size is fine - 18574/28672
```
Une fois arrivé à ce stade, le script de compilation va checher le bootloader DFU toutes les 5 secondes. Il va répéter les messages suivants jusqu'à ce que l'appareil soit trouvé ou que vous l'annuliez.
Une fois arrivé à ce stade, le script de compilation va chercher le bootloader DFU toutes les 5 secondes. Il va répéter les messages suivants jusqu'à ce que l'appareil soit trouvé ou que vous l'annuliez.
dfu-programmer: no device present.
Error: Bootloader not found. Trying again in 5s.
@@ -127,7 +143,7 @@ Une fois terminé, vous devrez mettre à zéro le contrôleur. Vous allez voir u
>>> dfu-programmer atmega32u4 reset
```
?> Si vous avez des soucis concerant ceci - comme par exemple `dfu-programmer: no device present` - merci de regarder [Foires Aux Questions de Compilation](faq_build.md).
?> Si vous avez des soucis concernant ceci - par exemple `dfu-programmer: no device present` - merci de regarder [Foires Aux Questions de Compilation](faq_build.md).
#### Commandes DFU
@@ -158,7 +174,7 @@ Checking file size of lets_split_rev2_xyverz.hex
Detecting USB port, reset your controller now..............
```
Une fois ceci fait, réinitialisez votre board et le script va détecter et flasher le firmware. La sortie devrait ressember à quelque chose comme ça:
Une fois ceci fait, réinitialisez votre board et le script va détecter et flasher le firmware. La sortie devrait ressembler à quelque chose comme ça:
```
Detected controller on USB port at /dev/ttyS15
@@ -203,15 +219,18 @@ avrdude.exe: safemode: Fuses OK (E:CB, H:D8, L:FF)
avrdude.exe done. Thank you.
```
Si vous avez un soucis, essayez de faire ceci:
Si vous avez un souci, essayez de faire ceci:
sudo make <my_keyboard>:<my_keymap>:avrdude
En addition, si vous voulez flasher plusieurs boards, utilisez la commande suivante:
#### Commandes Caterina
make <keyboard>:<keymap>:avrdude-loop
Il existe un certain nombre de commandes DFU que vous pouvez utiliser pour mettre à jour le firmware sur un périphérique DFU:
Une fois que vous avez terminé de flasher des boards, vous devrez appuyer sur Ctrl + C, ou les touches correspondantes pour votre système d'exploitation pour arrêter la boucle.
* `: avrdude` - Il sagit de loption normale. Elle attend quun appareil Caterina soit disponible, puis tente de flasher le firmware. Il attendra de détecter un autre port COM, puis il flashera à nouveau.
* `: avrdude-loop` - Cela fonctionne de la même manière que `: avrdude`, mais une fois que chaque périphérique est flashé, il tentera de flasher à nouveau. Cela peut être utile pour flasher plusieurs claviers à la suite. _Cela implique de sortir manuellement de la boucle en appuyant sur Ctrl + C, Cmd + C ou un raccourci équivalent selon votre OS_
* `: avrdude-split-left` - Cela fonctionne de la même manière que la fonction (`: avrdude`). Toutefois, cela permet aussi de flasher le coté gauche de l'EEPROM des claviers splittés / divisés. C'est donc la méthode recommandée pour les claviers splittés avec Pro Micro.
* `: avrdude-split-right` - Cela fonctionne de la même manière que la fonction (`: avrdude`). Toutefois, cela permet aussi de flasher le coté droite de l'EEPROM des claviers splittés / divisés. C'est donc la méthode recommandée pour les claviers splittés avec Pro Micro.
### HalfKay
@@ -246,45 +265,9 @@ Programming.....................................................................
Booting
```
### BootloadHID
Pour les boards basée sur Bootmapper Client(BMC)/bootloadHID/ATmega32A, une fois prêt à compiler et flasher le firmware, ouvrez votre fenêtre de terminal et lancez la commande suivante:
make <my_keyboard>:<my_keymap>:bootloaderHID
Par exemple, si votre keymap s'appelle "xyverz" et que vous compilez une keymap pour un jj40, vous utilisez cette commande:
make jj40:xyverz:bootloaderHID
Une fois le firmware compilé, vous aurez cette sortie:
```
Linking: .build/jj40_default.elf [OK]
Creating load file for flashing: .build/jj40_default.hex [OK]
Copying jj40_default.hex to qmk_firmware folder [OK]
Checking file size of jj40_default.hex [OK]
* The firmware size is fine - 21920/28672 (6752 bytes free)
```
A ce stade, le script de build va chercher le bootloader DFU toutes les 5 secondes. Il va répéter la sortie suivante jusqu'à ce que le dispositif soit trouvé ou que vous l'annuliez.
```
Error opening HIDBoot device: The specified device was not found
Trying again in 5s.
```
Une fois ce résultat atteint, réinitialisez le contrôleur. Il devrait afficher le résultat suivant:
```
Page size = 128 (0x80)
Device size = 32768 (0x8000); 30720 bytes remaining
Uploading 22016 (0x5600) bytes starting at 0 (0x0)
0x05580 ... 0x05600
```
### STM32 (ARM)
Pour la majorité des boards ARM (incluant les Proton C, Planck Rev 6, et Preonic Rev 3), lorsque vous êtes prêt à compiler et flasher votre firmware,ouvrez la fenêtre de terminal et lancez la commande de compilation:
Pour la majorité des boards ARM (incluant les Proton C, Planck Rev 6, et Preonic Rev 3), lorsque vous êtes prêt à compiler et flasher votre firmware, ouvrez la fenêtre de terminal et lancez la commande de compilation:
make <my_keyboard>:<my_keymap>:dfu-util
@@ -336,10 +319,46 @@ Transitioning to dfuMANIFEST state
Il y aun certain nombre de commandes du DFU que vous pouvez utiliser pour flasher un firmware sur un device STM32:
* `:dfu-util` - C'est l'option standard pour flasher un appareil STM32.
* `:dfu-util-wait` - Ceci fonctionne comme la commande standard, mais permet de d'avoir une pause (configurable( de 10 secondes avant de flasher le fimrware. Vous pouvez utiliser `TIME_DELAY=20` à la ligne de commande pour changer le délai.
* `:dfu-util` - C'est l'option standard pour flasher un appareil STM32. Elle attendra qu'un bootloader STM32 soit présent et tentera de lutiliser.
* `:dfu-util-left` - Ceci flasher le firmware standard, comme la commande standard (`:dfu-util`). Toutefois, elle flasher aussi les fichiers EEPROM du "côté gauche" pour les claviers scindés.
* `:dfu-util-right` - Ceci flash le firmware standard, comme la commande standard (`:dfu-util`). Toutefois, elle flash aussi les fichiers EEPROM du "côté droit" pour les claviers scindés.
* `:st-link-cli` - Cela permet de flasher le firmware avec l'utilitaire en ligne de commande ST-LINK's plutôt que d'utiliser dfu-util.
### BootloadHID
Pour les claviers basés sur Bootmapper Client(BMC)/bootloadHID/ATmega32A, si vous êtes prêts à compiler et flasher le firmware, ouvrez votre fenêtre de terminal et lancez la commande suivante :
make <my_keyboard>:<my_keymap>:bootloaderHID
Par exemple, si votre keymap s'appelle "xyverz" et que vous compilez une keymap pour un jj40, utilisez cette commande:
make jj40:xyverz:bootloaderHID
Une fois le firmware compilé, vous aurez cette sortie:
```
Linking: .build/jj40_default.elf [OK]
Creating load file for flashing: .build/jj40_default.hex [OK]
Copying jj40_default.hex to qmk_firmware folder [OK]
Checking file size of jj40_default.hex [OK]
* The firmware size is fine - 21920/28672 (6752 bytes free)
```
A ce stade, le script de build va chercher le bootloader DFU toutes les 5 secondes. Il répétera l affichage de ce message jusqu'à ce que lappareil soit trouvé ou que vous annuliez l'opération```
```
Error opening HIDBoot device: The specified device was not found
Trying again in 5s.
```
Une fois ce résultat obtenu, réinitialisez le contrôleur. Le résultat suivant devrait safficher :
```
Page size = 128 (0x80)
Device size = 32768 (0x8000); 30720 bytes remaining
Uploading 22016 (0x5600) bytes starting at 0 (0x0)
0x05580 ... 0x05600
```
## Faites l'essai!

View File

@@ -2,19 +2,19 @@
Votre clavier d'ordinateur contient un processeur, proche de celui dans votre ordinateur. Ce processeur exécute un logiciel responsable de détecter les touches appuyées et envoie des rapports à propos de l'état du clavier lorsque les touches sont appuyées et relâchées. QMK prend le rôle de ce logiciel, détectant les appuis des boutons et passant cette information à l'ordinateur hôte. Lorsque vous construisez votre keymap customisée, vous créez l'équivalent d'un programme exécutable pour votre clavier.
QMK essaie de rendre les choses simples faciles, et les choses difficiles possibles. Vous n'avez pas à savoir programmer pour créer des keymaps puissantes - vous devez seulement suivre quelques rêgles de syntaxe simples.
QMK essaie de rendre les choses simples faciles, et les choses difficiles possibles. Vous n'avez pas à savoir programmer pour créer des keymaps puissantes - vous devez seulement suivre quelques règles de syntaxe simples.
# Guide de démarrage
Avant de pouvoir construire des keymaps, vous devez installer quelques logiciels et configurer votre environnement de compilation. Ceci n'a besoin d'être fait seulement une fois, peu importe le nombre de clavier pour lesquels vous compter compiler un firmware.
Si vous préférez une approche plus proche d'une interface graphique, considérez utiliser l'outil en ligne [QMK Configurator](https://config.qmk.fm). Référez vous à [Construire votre premier firmware en utilisant l'interface graphique en ligne](newbs_building_firmware_configurator.md).
Si vous préférez une approche plus proche d'une interface graphique, considérez utiliser l'outil en ligne [QMK Configurator](https://config.qmk.fm). Référez-vous à [Construire votre premier firmware en utilisant l'interface graphique en ligne](newbs_building_firmware_configurator.md).
## Logiciels à télécharger
### Editeur de texte
Vous allez avoir besoin d'un programme qui peut éditer et sauvegarder des fichier **plain text**. Si vous êtes sur Windows, vous pouvez utiliser notepad et sur Linux vous pouvez utiliser gedit. Ces deux options sont des éditeurs de texte simples mais fonctionnels. Sur macOS, faites attention avec l'application par défaut TextEdit: elle ne sauvegardera pas les fichiers en mode "plain text" sauf si vous sélectionnez explicitement _Make Plain Text_ à partir du menu _Format_.
Vous allez avoir besoin d'un programme qui peut éditer et sauvegarder des fichiers **plain text**. Si vous êtes sur Windows, vous pouvez utiliser notepad et sur Linux vous pouvez utiliser gedit. Ces deux options sont des éditeurs de texte simples mais fonctionnels. Sur macOS, faites attention avec l'application par défaut TextEdit: elle ne sauvegardera pas les fichiers en mode "plain text" sauf si vous sélectionnez explicitement _Make Plain Text_ à partir du menu _Format_.
Vous pouvez aussi télécharger et installer un éditeur de texte dédié comme [Sublime Text](https://www.sublimetext.com/) ou [VS Code](https://code.visualstudio.com/). C'est probablement la meilleure solution peu importe la plateforme car ce sont des programmes conçus spécifiquement pour éditer du code.
@@ -33,7 +33,7 @@ QMK Toolbox est un programme graphique optionnel pour Windows et macOS qui perme
Nous avons essayé de rendre QMK aussi simple que possible à configurer. Vous avez uniquement à préparer votre environnment Linux ou Unix et laisser QMK installer le reste.
?> Si vous n'avez jamais travailé avec la lignde commande Linux/Unix, il y a un certain nombre de concepts basiques et de commandes que vous devriez apprendre. Ces ressources vous apprendrons suffisemment pour travailler avec QMK:<br>
?> Si vous n'avez jamais travaillé avec la ligne de commande Linux/Unix, il y a un certain nombre de concepts basiques et de commandes que vous devriez apprendre. Ces ressources vous apprendrons suffisemment pour travailler avec QMK:<br>
[Commandes Linux à savoir](https://www.guru99.com/must-know-linux-commands.html)<br>
[Commandes Unix de base](https://www.tjhsst.edu/~dhyatt/superap/unixcmd.html)
@@ -49,7 +49,7 @@ Vous devez installer MSYS2 et Git.
Vous devez installer Homebew. Suivez les instructions sur la [page de Homebrew](https://brew.sh).
Une fois Homebrew installé, continuez avec _Configurer QMK_. Dans cete étape, nous lancerons un script qui va installer d'autres paquets.
Une fois Homebrew installé, continuez avec _Configurer QMK_. Dans cette étape, nous lancerons un script qui va installer d'autres paquets.
### Linux

View File

@@ -4,11 +4,12 @@ Une fois votre clavier configuré avec un firmware custom, vous êtes prêt à l
## Tester
Tester votre clavier est normalement assez simple. Appuyez chaque touche de votre clavier et assurez vous qu'il envoie les touches auquel vous vous attendiez. Il existe même des programmes qui vous aideront à vérifier qu'aucune touche ne soit oubliée.
Tester votre clavier est normalement assez simple. Appuyez chaque touche de votre clavier et assurez-vous qu'il envoie les touches auquel vous vous attendiez. Il existe même des programmes qui vous aideront à vérifier qu'aucune touche ne soit oubliée.
Note: ces programmes ne sont ni fournis ni approuvés par QMK.
* [Switch Hitter](https://elitekeyboards.com/switchhitter.php) (Windows seulement)
* [QMK Configurator](https://config.qmk.fm/#/test/) (Web)
* [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 Tester](http://www.keyboardtester.com) (Web)
* [Keyboard Checker](http://keyboardchecker.com) (Web)
@@ -29,7 +30,7 @@ void keyboard_post_init_user(void) {
### Débuguer avec QMK Toolbox
Pour les plateformes compatibles, [QMK Toolbox](https://github.com/qmk/qmk_toolbox) peut être utilisé pour afficher les message de débugage pour votre clavier.
Pour les plateformes compatibles, [QMK Toolbox](https://github.com/qmk/qmk_toolbox) peut être utilisé pour afficher les messages de débugage pour votre clavier.
### Débuguer avec hid_listen
@@ -46,9 +47,9 @@ Parfois, il est utile d'afficher des messages de débugage depuis votre [code cu
Une fois fait, vous pouvez utiliser les fonctions print suivantes:
* `print("string")`: Affiche une simple chaîne de caractères.
* `uprintf("%s string", var)`: Affiche une chaîne de caractères formattée.
* `uprintf("%s string", var)`: Affiche une chaîne de caractères formatée.
* `dprint("string")` Affiche une chaîne de caractère simple, mais uniquement lorsque le mode debug est activé.
* `dprintf("%s string", var)`: Affiche une chaîne de caractère formattée, mais uniquement lorsque le mode debug est activé.
* `dprintf("%s string", var)`: Affiche une chaîne de caractère formatée, mais uniquement lorsque le mode debug est activé.
## Exemples de debugage

View File

@@ -145,7 +145,7 @@ util/docker_build.sh
There is also support for building _and_ flashing the keyboard straight from Docker by specifying the `target` as well:
```bash
util/docker_build.sh keyboard:keymap:target
# For example: util/docker_build.sh planck/rev6:default:dfu-util
# For example: util/docker_build.sh planck/rev6:default:flash
```
If you're on Linux, this should work out of the box. On Windows and macOS, it requires [Docker Machine](http://gw.tnode.com/docker/docker-machine-with-usb-support-on-windows-macos/) to be running. This is tedious to set up, so it's not recommended; use [QMK Toolbox](https://github.com/qmk/qmk_toolbox) instead.

View File

@@ -14,8 +14,8 @@ The full syntax of the `make` command is `<keyboard_folder>:<keymap>:<target>`,
The `<target>` means the following
* 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.
* `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:dfu`.
* `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`.
* `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.
You can also add extra options at the end of the make command line, after the target
@@ -31,7 +31,7 @@ Here are some examples commands
* `make all:all` builds everything (all keyboard folders, all keymaps). Running just `make` from the `root` will also run this.
* `make ergodox_infinity:algernon:clean` will clean the build output of the Ergodox Infinity keyboard.
* `make planck/rev4:default:dfu COLOR=false` builds and uploads the keymap without color output.
* `make planck/rev4:default:flash COLOR=false` builds and uploads the keymap without color output.
## `rules.mk` Options
@@ -41,8 +41,6 @@ Set these variables to `no` to disable them, and `yes` to enable them.
This allows you to hold a key and the salt key (space by default) and have access to a various EEPROM settings that persist over power loss. It's advised you keep this disabled, as the settings are often changed by accident, and produce confusing results that makes it difficult to debug. It's one of the more common problems encountered in help sessions.
Consumes about 1000 bytes.
`MOUSEKEY_ENABLE`
This gives you control over cursor movements and clicks via keycodes/custom functions.
@@ -67,8 +65,6 @@ To see the text, open `hid_listen` and enjoy looking at your printed messages.
**NOTE:** Do not include *uprint* messages in anything other than your keymap code. It must not be used within the QMK system framework. Otherwise, you will bloat other people's .hex files.
Consumes about 400 bytes.
`COMMAND_ENABLE`
This enables magic commands, typically fired with the default magic key combo `LSHIFT+RSHIFT+KEY`. Magic commands include turning on debugging messages (`MAGIC+D`) or temporarily toggling NKRO (`MAGIC+N`).
@@ -125,11 +121,9 @@ Use this to debug changes to variable values, see the [tracing variables](unit_t
This enables using the Quantum SYSEX API to send strings (somewhere?)
This consumes about 5390 bytes.
`KEY_LOCK_ENABLE`
This enables [key lock](feature_key_lock.md). This consumes an additional 260 bytes.
This enables [key lock](feature_key_lock.md).
`SPLIT_KEYBOARD`

View File

@@ -1,19 +1,18 @@
# Quantum Hand-Wiring Guide
# Hand-Wiring Guide
Parts list:
* *x* keyswitches (MX, Matias, Gateron, etc)
* *x* diodes
* Keyboard plate (metal, plastic, cardboard, etc)
* Wire (strained for wiring to the Teensy, anything for the rows/columns)
* Soldering iron set at 600ºF or 315ºC (if temperature-controlled)
* Rosin-cored solder (leaded or lead-free)
* Adequate ventilation/a fan
* Tweezers (optional)
* Wire cutters/snippers
## Preamble: How a Keyboard Matrix Works (and why we need diodes)
## How the Matrix Works (Why We Need Diodes)
The collapsible section below covers why keyboards are wired the way they are, as outlined in this guide. It isn't required reading to make your own hand wired keyboard, but provides background information.
The microcontroller (in this case, the Teensy 2.0) will be setup up via the firmware to send a logical 1 to the columns, one at a time, and read from the rows, all at once - this process is called matrix scanning. The matrix is a bunch of open switches that, by default, don't allow any current to pass through - the firmware will read this as no keys being pressed. As soon as you press one key down, the logical 1 that was coming from the column the keyswitch is attached to gets passed through the switch and to the corresponding row - check out the following 2x2 example:
<details>
<summary>Click for details</summary>
Without a matrix circuit each switch would require its own wire directly to the controller.
Simply put, when the circuit is arranged in rows and columns, if a key is pressed, a column wire makes contact with a row wire and completes a circuit. The keyboard controller detects this closed circuit and registers it as a key press.
The microcontroller will be setup up via the firmware to send a logical 1 to the columns, one at a time, and read from the rows, all at once - this process is called matrix scanning. The matrix is a bunch of open switches that, by default, don't allow any current to pass through - the firmware will read this as no keys being pressed. As soon as you press one key down, the logical 1 that was coming from the column the keyswitch is attached to gets passed through the switch and to the corresponding row - check out the following 2x2 example:
Column 0 being scanned Column 1 being scanned
x x
@@ -100,30 +99,132 @@ Things act as they should! Which will get us the following data:
The firmware can then use this correct data to detect what it should do, and eventually, what signals it needs to send to the OS.
# The Actual Hand-Wiring
Further reading:
- [Wikipedia article](https://en.wikipedia.org/wiki/Keyboard_matrix_circuit)
- [Deskthority article](https://deskthority.net/wiki/Keyboard_matrix)
- [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 keyboards work - QMK documentation](how_keyboards_work.md)
## Getting Things in Place
</details>
When starting this, you should have all of your stabilisers and keyswitches already installed (and optionally keycaps). If you're using a Cherry-type stabiliser (plate-mounted only, obviously), you'll need to install that before your keyswitches. If you're using Costar ones, you can installed them afterwards.
To make things easier on yourself, make sure all of the keyswitches are oriented the same way (if they can be - not all layouts support this). Despite this, it's important to remember that the contacts on the keyswitches are completely symmetrical. We'll be using the keyswitch's left side contact for wiring the rows, and the right side one for wiring the columns.
## Parts list
Get your soldering iron heated-up and collect the rest of the materials from the part list at the beginning of the guide. Place your keyboard so that the bottoms of the keyswitches are accessible - it may be a good idea to place it on a cloth to protect your keyswitches/keycaps.
You will need: (where *x* is the number of keys on your planned keyboard)
Before continuing, plan out where you're going to place your Teensy. If you're working with a board that has a large (6.25u) spacebar, it may be a good idea to place it in-between switches against the plate. Otherwise, you may want to trim some of the leads on the keyswitches where you plan on putting it - this will make it a little harder to solder the wire/diodes, but give you more room to place the Teensy.
* QMK compatible microcontroller board (Teensy, Pro-Micro, QMK Proton C etc.)
* *x* keyswitches (MX, Matias, Gateron, etc)
* *x* through hole diodes
* Keyboard plate and plate mount stabilisers
* Wire
* Soldering iron
* Rosin-cored solder
* Adequate ventilation/a fan
* Wire cutters/snippers
## Preparing the Diodes
Optional but useful:
It's a little easier to solder the diodes in place if you bend them at a 90º angle immediately after the black line - this will help to make sure you put them on the right way (direction matters), and in the correct position. The diodes will look like this when bent (with longer leads):
* Wire strippers/a sharp knife
* Tweezers and/or small needle nose pliers
* Soldering station/Helping hands
```
┌─────┬─┐
───┤ │ ├─┐
└─────┴─┘ │
```
## Starting the build
We'll be using the long lead at the bent end to connect it to the elbow (bent part) of the next diode, creating the row.
There are many ways to hand wire a PCB matrix, this guide will describe the fundamentals as well as some recommended ways to go about it.
As we are dealing with hand wiring, it is assumed that you already have a plate. If you are planning a completely custom layout, tools such as [ai03 Plate Generator](https://kbplate.ai03.me/) and [Swillkb Plate & Case Builder](http://builder.swillkb.com/) can help when designing one.
Start by installing the switches and stabilisers in the plate. Depending on the thickness and material this may also involve hot gluing it in place.
## Planning the matrix
If you are following a pre-existing handwire guide (e.g. for the keyboards in the [handwire firmware section](https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired) you can skip this step, just ensure you wire the matrix as described.
What you want to achieve is one leg from each switch being attached to the corresponding switches next to it (rows) and the other leg being attached to the switches above and below it (columns) and a diode to one of the legs, mosy commonly this will be the leg attached to the rows, and the diode will face away from it (Column to Row) i.e. with the wire furthest from the black line on the diode connected to the switch (as current will only travel in one direction through a diode)
It is fairly simple to plan for an ortholinear keyboard (like a Planck).
![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/)
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).
![Example ISO matrix](https://i.imgur.com/UlJ4ZDP.png)
Bear in mind that the number of rows plus the number of columns can not exceed the number of I/O pins on your controller. So the fullsize matrix shown above would be possible on a Proton C or Teensy++, but not on a regular Teensy or Pro Micro
#### Common Microcontroller Boards
| Board | Controller | # I/O | Pinout |
| :------------ |:-------------:| ------:| ------ |
| Pro Micro* | ATmega32u4 | 20 | [link](https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide/hardware-overview-pro-micro#Teensy++_2.0) |
| Teensy 2.0 | ATmega32u4 | 25 | [link](https://www.pjrc.com/teensy/pinout.html) |
| [QMK Proton C](https://qmk.fm/proton-c/) | STM32F303xC | 36 | [link 1](https://i.imgur.com/RhtrAlc.png), [2](https://deskthority.net/wiki/QMK_Proton_C) |
| Teensy++ 2.0 | AT90USB1286 | 46 | [link](https://www.pjrc.com/teensy/pinout.html#Teensy_2.0) |
*Elite C is essentially the same as a pro micro with a USB-C instead of Micro-USB
There are also a number of boards designed specifically for handwiring that mount directly to a small number of switches and offer pinouts for the rest. Though these are generally more expensive and may be more difficult to get hold of.
<img src="https://i.imgur.com/QiA3ta6.jpg" alt="Postage board mini mounted in place" width="500"/>
| Board | Controller | # I/O |
| :------------ |:-------------:| ------:|
| [Swiss helper](https://www.reddit.com/r/MechanicalKeyboards/comments/8jg5d6/hand_wiring_this_might_help/) | ATmega32u4 | 20 |
| [Postage board](https://github.com/LifeIsOnTheWire/Postage-Board/)| ATmega32u4| 25 |
| [Postage board mini](https://geekhack.org/index.php?topic=101460.0)| ATmega32u4| 25 |
## Wiring the matrix
There is no one right way to do this. What you want to achieve is good connection at all of the joints planned and no unintentional shorts.
Established materials and techniques include:
| Technique | Examples | Pros | Cons | Image
| :-----------| :------- | :------ | :--- | :---
| 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)
| 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)
| 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)
| 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)
Note that these methods can be combined. Prepare your lengths of wire before moving on to soldering.
### A note on split keyboards
If you are planning a split keyboard (e.g. Dactyl) each half will require a controller and a means of communicating between them (like a TRRS or hardwired cable). Further information can be found in the [QMK split keyboard documentation.](feature_split_keyboard.md)
### Soldering
There are a lot of soldering guides and tips available elsewhere but here are some of the most useful and relevant for hand wiring:
To ensure a strong solder joint you want a good amount of contact between the solder and the 2 peices of metal you are connecting, a good way of doing this (though not required) is looping around pins or twisting wires together before applying solder.
<img src="https://i.imgur.com/eHJjmnU.jpg" alt="Looped around rod" width="200"/> <img src="https://i.imgur.com/8nbxmmr.jpg?1" alt="Looped diode leg" width="200"/>
If your diodes are on a packaging strip and need a bend in them (either the start of a loop or for connecting to its neighbour) this can easily done by bending it over something straight like the edge of a box, table, or ruler. This also helps keep track of the direction of the diode as all the bends will be on the same side.
<img src="https://i.imgur.com/oITudbX.jpg" alt="Bent diode legs" width="200"/>
If your iron has temperature control, set it to 315ºC (600ºF).
Once heated, tin your soldering iron - this means melting a small amount of solder on the end of the iron and then quickly wiping it off on a wet sponge or wire cleaning pad, leaving a shiny silvery coating on the end which helps keep oxidisation at bay and helps solder to flow.
When you come to apply the solder, hold the soldering iron against the two surfaces for a second to heat it, then apply a small amount of solder to join the two pieces together. Heating the surfaces ensures that the solder adheres to it and that it does not cool too quickly.
Don't hold the iron on the solder/joint longer than necessary. Heat will be conducted through the surfaces and can damage components (melt switch housings etc.). Also, solder contains flux, which aids in ["wetting"](https://en.m.wikipedia.org/wiki/Wetting). The longer heat is applied to the solder the more flux will evaporate meaning you may end up with a bad solder joint with peaks which, apart from looking bad, may also increase the risk of electrical shorts.
The following collapsible section describes in detail how to solder rows using the bent diode technique and columns using short lengths of wire.
<details>
<summary>Click for details</summary>
## Soldering the Diodes
@@ -169,34 +270,52 @@ Before beginning to solder, it helps to have your wire pre-bent (if using single
If you're not using any insulation, you can try to keep the column wires elevated, and solder them near the tips of the keyswitch contacts - if the wires are sturdy enough, they won't short out to the row wiring an diodes.
## Wiring Things to the Teensy
</details>
Now that the matrix itself is complete, it's time to connect what you've done to the Teensy. You'll be needing the number of pins equal to your number of columns + your number of rows. There are some pins on the Teensy that are special, like D6 (the LED on the chip), or some of the UART, SPI, I2C, or PWM channels, but only avoid those if you're planning something in addition to a keyboard. If you're unsure about wanting to add something later, you should have enough pins in total to avoid a couple.
# Wiring up the controller
The pins you'll absolutely have to avoid are: GND, VCC, AREF, and RST - all the others are usable and accessible in the firmware.
Now that the matrix itself is complete, it's time to connect what you've done to the microcontroller board.
Place the Teensy where you plan to put it - you'll have to cut wires to length in the next step, and you'll want to make sure they reach.
Place the microcontroller where you want it to be located, give thought to mounting and case alignment. Bear in mind that the location of the USB socket can be different from the controller by using a short male to female cable if required,.
Starting with the first column on the right side, measure out how much wire you'll need to connect it to the first pin on the Teensy - it helps to pick a side that you'll be able to work down, to keep the wires from overlapping too much. It may help to leave a little bit of slack so things aren't too tight. Cut the piece of wire, and solder it to the Teensy, and then the column - you can solder it anywhere along the column, but it may be easiest at the keyswitch. Just be sure the wire doesn't separate from the keyswitch when soldering.
Find the pinout/documentation for your microcontroller board ([links here](#common-microcontroller-boards)) and make a note of all the digital I/O pins on it (note that on some controllers, like the teensy, analogue I/O can double as digital) as these are the pins you want to connect your wires to.
As you move from column to column, it'll be helpful to write the locations of the pins down. We'll use this data to setup the matrix in the future.
<details>
When you're done with the columns, start with the rows in the same process, from top to bottom, and write them all down. Again, you can solder anywhere along the row, as long as it's after the diode - soldering before the diode (on the keyswitch side) will cause that row not to work.
<summary>Specific instructions for the Teensy 2.0</summary>
As you move along, be sure that the Teensy is staying in place - recutting and soldering the wires is a pain!
There are some pins on the Teensy that are special, like D6 (the LED on the chip), or some of the UART, SPI, I2C, or PWM channels, but only avoid those if you're planning something in addition to a keyboard. If you're unsure about wanting to add something later, you should have enough pins in total to avoid a couple.
## Additional guides
The pins you'll absolutely have to avoid, as with any controller, are: GND, VCC, AREF, and RST - all the others are usable and accessible in the firmware.
</details>
Cut wires to the length of the distance from the a point on each column/row to the controller. You can solder anywhere along the row, as long as it's after the diode - soldering before the diode (on the keyswitch side) will cause that row not to work.
Ribbon cable can be used to keep this extra tidy. You may also want to consider routing the wires beneath the exisiting columns/rows.
<img src="https://i.imgur.com/z2QlKfB.jpg" alt="Ribbon Cable" width="350"/>
As you solder the wires to the controller make a note of which row/column is going to which pin on the controller as we'll use this data to setup the matrix when we create the firmware.
As you move along, be sure that the controller is staying in place - recutting and soldering the wires is a pain!
If you're more of a visual learner, or want some additional tips and something more to follow along, these two visual step by step guides may be helpful:
- [BrownFox's step by step guide](https://deskthority.net/viewtopic.php?f=7&t=6050)
- [Cribbit's modern hand wiring guide](https://geekhack.org/index.php?topic=87689.0)
# Getting Some Basic Firmware Set Up
From here, you should have a working keyboard once you program a firmware. Before we attach the Teensy permanently to the keyboard, let's quickly get some firmware loaded onto the Teensy so we can test each keyswitch.
From here, you should have a working keyboard once you program a firmware.
To start out, download [the firmware](https://github.com/qmk/qmk_firmware/) - we'll be using my (Jack's) fork of TMK called QMK/Quantum. We'll be doing a lot from the Terminal/command prompt, so get that open, along with a decent text editor like [Sublime Text](http://www.sublimetext.com/) (paid) or [Visual Studio Code](https://code.visualstudio.com) (free).
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).
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 the collapsable section below, or using the more comprehensive [getting started guide.](newbs_getting_started)
<details>
<summary>Creating and compiling your firmware locally (command line method)</summary>
To start out, download [the firmware](https://github.com/qmk/qmk_firmware/) - We'll be doing a lot from the Terminal/command prompt, so get that open, along with a decent text editor like [Sublime Text](http://www.sublimetext.com/) (paid) or [Visual Studio Code](https://code.visualstudio.com) (free).
The first thing we're going to do is create a new keyboard. In your terminal, run this command, which will ask you some questions and generate a basic keyboard project:
@@ -319,9 +438,22 @@ Once everything is installed, running `make` in the terminal should get you some
Once you have your `<project_name>.hex` file, open up the Teensy loader application, and click the file icon. From here, navigate to your `QMK/keyboards/<project_name>/` folder, and select the `<project_name>.hex` file. Plug in your keyboard and press the button on the Teensy - you should see the LED on the device turn off once you do. The Teensy Loader app will change a little, and the buttons should be clickable - click the download button (down arrow), and then the reset button (right arrow), and your keyboard should be ready to go!
</details>
## Flashing the Firmware
Install [QMK toolbox](https://github.com/qmk/qmk_toolbox).
![QMK Toolbox](https://i.imgur.com/86Cz30H.png)
Under "Local File" navigate to your newly created .hex file. Under "Microcontroller", select the corresponding one for your controller board (common ones available [here](#common-microcontroller-boards)).
Plug in your keyboard and press the reset button (or short the Reset and Ground pins if there is no button) and click the "Flash" button in QMK toolbox.
## Testing Your Firmware
Carefully flip your keyboard over, open up a new text document, and try typing - you should get the characters that you put into your keymap. Test each key, and note the ones that aren't working. Here's a quick trouble-shooting guide for non-working keys:
Use a website such as [keyboard tester](https://www.keyboardtester.com/tester.html)/[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:
0. 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. 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.
@@ -330,11 +462,25 @@ Carefully flip your keyboard over, open up a new text document, and try typing -
4. Check the solder joints on both sides of the wires going to/from the Teensy - the wires need to be fully soldered and connect to both sides.
5. Check the `<project_name>.h` file for errors and incorrectly placed `KC_NO`s - if you're unsure where they should be, instead duplicate a k*xy* variable.
6. Check to make sure you actually compiled the firmware and flashed the Teensy correctly. Unless you got error messages in the terminal, or a pop-up during flashing, you probably did everything correctly.
7. Use a multimeter to check that the switch is actually closing when actuated (completing the circuit when pressed down).
If you've done all of these things, keep in mind that sometimes you might have had multiple things affecting the keyswitch, so it doesn't hurt to test the keyswitch by shorting it out at the end.
# Securing the Teensy, Finishing Your Hardware, Getting Fancier Firmware
# Finishing up
Once you have confirmed that the keyboard is working, if you have used a seperate (non handwire specific) controller you will want to secure it in place. This can be done in many different ways e.g. hot glue, double sided sticky tape, 3D printed caddy, electrical tape.
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!
# Links to other guides:
- [matt3o's step by step guide (BrownFox build)](https://deskthority.net/viewtopic.php?f=7&t=6050) also his [website](https://matt3o.com/hand-wiring-a-custom-keyboard/) and [video guide](https://www.youtube.com/watch?v=LVzpsjFWPP4)
- [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)
- [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/)
Now that you have a working board, it's time to get things in their permanent positions. I've often used liberal amounts of hot glue to secure and insulate things, so if that's your style, start spreading that stuff like butter. Otherwise, double-sided tape is always an elegant solution, and electrical tape is a distant second. Due to the nature of these builds, a lot of this part is up to you and how you planned (or didn't plan) things out.
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 (Planck, Clueboard, Ergodox EZ, etc) to see how people use all of them. You can always stop by [the OLKB subreddit for help!](http://reddit.com/r/olkb)

View File

@@ -1,6 +1,6 @@
# Keyboards with AVR Processors
This page describes the support for for AVR processors in QMK. AVR processors include the atmega32u4, atmega32u2, at90usb1286, and other processors from Atmel Corporation. AVR processors are 8-bit MCU's that are designed to be easy to work with. The most common AVR processors in keyboards have on-board USB and plenty of GPIO for supporting large keyboard matrices. They are the most popular MCU for use in keyboards today.
This page describes the support for for AVR processors in QMK. AVR processors include the atmega32u4, atmega32u2, at90usb1286, and other processors from Atmel Corporation. AVR processors are 8-bit MCUs that are designed to be easy to work with. The most common AVR processors in keyboards have on-board USB and plenty of GPIO for supporting large keyboard matrices. They are the most popular MCU for use in keyboards today.
If you have not yet you should read the [Keyboard Guidelines](hardware_keyboard_guidelines.md) to get a sense of how keyboards fit into QMK.

View File

@@ -20,7 +20,7 @@ Support for SSD1306 based OLED displays. For more information see the [OLED Driv
## uGFX
You can make use of uGFX within QMK to drive character and graphic LCD's, LED arrays, OLED, TFT, and other display technologies. This needs to be better documented, if you are trying to do this and reading the code doesn't help please [open an issue](https://github.com/qmk/qmk_firmware/issues/new) and we can help you through the process.
You can make use of uGFX within QMK to drive character and graphic LCDs, LED arrays, OLED, TFT, and other display technologies. This needs to be better documented, if you are trying to do this and reading the code doesn't help please [open an issue](https://github.com/qmk/qmk_firmware/issues/new) and we can help you through the process.
## WS2812 (AVR Only)

View File

@@ -35,7 +35,7 @@ USB for a given key.
## 3. What the Event Input/Kernel Does
The *scancode* is mapped to a *keycode* dependent on the keyboard [60-keyboard.hwdb at Master](https://github.com/systemd/systemd/blob/master/hwdb/60-keyboard.hwdb). Without this mapping, the operating system will not receive a valid keycode and will be unable to do anything useful with that key press.
The *scancode* is mapped to a *keycode* dependent on the keyboard [60-keyboard.hwdb at Master](https://github.com/systemd/systemd/blob/master/hwdb.d/60-keyboard.hwdb). Without this mapping, the operating system will not receive a valid keycode and will be unable to do anything useful with that key press.
## 4. What the Operating System Does

View File

@@ -55,7 +55,7 @@ This is a reference only. Each group of keys links to the page documenting their
|`KC_EQUAL` |`KC_EQL` |`=` and `+` |
|`KC_LBRACKET` |`KC_LBRC` |`[` and `{` |
|`KC_RBRACKET` |`KC_RBRC` |`]` and `}` |
|`KC_BSLASH` |`KC_BSLS` |`\` and <code>&#124;</code> |
|`KC_BSLASH` |`KC_BSLS` |`\` and `\|` |
|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` and `~` |
|`KC_SCOLON` |`KC_SCLN` |`;` and `:` |
|`KC_QUOTE` |`KC_QUOT` |`'` and `"` |
@@ -106,7 +106,7 @@ This is a reference only. Each group of keys links to the page documenting their
|`KC_KP_9` |`KC_P9` |Keypad `9` and Page Up |
|`KC_KP_0` |`KC_P0` |Keypad `0` and Insert |
|`KC_KP_DOT` |`KC_PDOT` |Keypad `.` and Delete |
|`KC_NONUS_BSLASH` |`KC_NUBS` |Non-US `\` and <code>&#124;</code> |
|`KC_NONUS_BSLASH` |`KC_NUBS` |Non-US `\` and `\|` |
|`KC_APPLICATION` |`KC_APP` |Application (Windows Menu Key) |
|`KC_POWER` | |System Power (macOS) |
|`KC_KP_EQUAL` |`KC_PEQL` |Keypad `=` |
@@ -143,7 +143,7 @@ This is a reference only. Each group of keys links to the page documenting their
|`KC_KP_EQUAL_AS400` | |Keypad `=` on AS/400 keyboards |
|`KC_INT1` |`KC_RO` |JIS `\` and `_` |
|`KC_INT2` |`KC_KANA` |JIS Katakana/Hiragana |
|`KC_INT3` |`KC_JYEN` |JIS `¥` and <code>&#124;</code> |
|`KC_INT3` |`KC_JYEN` |JIS `¥` and `\|` |
|`KC_INT4` |`KC_HENK` |JIS Henkan |
|`KC_INT5` |`KC_MHEN` |JIS Muhenkan |
|`KC_INT6` | |JIS Numpad `,` |
@@ -420,29 +420,29 @@ This is a reference only. Each group of keys links to the page documenting their
## [US ANSI Shifted Symbols](keycodes_us_ansi_shifted.md)
|Key |Aliases |Description |
|------------------------|-------------------|-------------------|
|`KC_TILDE` |`KC_TILD` |`~` |
|`KC_EXCLAIM` |`KC_EXLM` |`!` |
|`KC_AT` | |`@` |
|`KC_HASH` | |`#` |
|`KC_DOLLAR` |`KC_DLR` |`$` |
|`KC_PERCENT` |`KC_PERC` |`%` |
|`KC_CIRCUMFLEX` |`KC_CIRC` |`^` |
|`KC_AMPERSAND` |`KC_AMPR` |`&` |
|`KC_ASTERISK` |`KC_ASTR` |`*` |
|`KC_LEFT_PAREN` |`KC_LPRN` |`(` |
|`KC_RIGHT_PAREN` |`KC_RPRN` |`)` |
|`KC_UNDERSCORE` |`KC_UNDS` |`_` |
|`KC_PLUS` | |`+` |
|`KC_LEFT_CURLY_BRACE` |`KC_LCBR` |`{` |
|`KC_RIGHT_CURLY_BRACE` |`KC_RCBR` |`}` |
|`KC_PIPE` | |<code>&#124;</code>|
|`KC_COLON` |`KC_COLN` |`:` |
|`KC_DOUBLE_QUOTE` |`KC_DQUO`, `KC_DQT`|`"` |
|`KC_LEFT_ANGLE_BRACKET` |`KC_LABK`, `KC_LT` |`<` |
|`KC_RIGHT_ANGLE_BRACKET`|`KC_RABK`, `KC_GT` |`>` |
|`KC_QUESTION` |`KC_QUES` |`?` |
|Key |Aliases |Description|
|------------------------|-------------------|-----------|
|`KC_TILDE` |`KC_TILD` |`~` |
|`KC_EXCLAIM` |`KC_EXLM` |`!` |
|`KC_AT` | |`@` |
|`KC_HASH` | |`#` |
|`KC_DOLLAR` |`KC_DLR` |`$` |
|`KC_PERCENT` |`KC_PERC` |`%` |
|`KC_CIRCUMFLEX` |`KC_CIRC` |`^` |
|`KC_AMPERSAND` |`KC_AMPR` |`&` |
|`KC_ASTERISK` |`KC_ASTR` |`*` |
|`KC_LEFT_PAREN` |`KC_LPRN` |`(` |
|`KC_RIGHT_PAREN` |`KC_RPRN` |`)` |
|`KC_UNDERSCORE` |`KC_UNDS` |`_` |
|`KC_PLUS` | |`+` |
|`KC_LEFT_CURLY_BRACE` |`KC_LCBR` |`{` |
|`KC_RIGHT_CURLY_BRACE` |`KC_RCBR` |`}` |
|`KC_PIPE` | |`\|` |
|`KC_COLON` |`KC_COLN` |`:` |
|`KC_DOUBLE_QUOTE` |`KC_DQUO`, `KC_DQT`|`"` |
|`KC_LEFT_ANGLE_BRACKET` |`KC_LABK`, `KC_LT` |`<` |
|`KC_RIGHT_ANGLE_BRACKET`|`KC_RABK`, `KC_GT` |`>` |
|`KC_QUESTION` |`KC_QUES` |`?` |
## [One Shot Keys](feature_advanced_keycodes.md#one-shot-keys)

View File

@@ -85,7 +85,7 @@ The basic set of keycodes are based on the [HID Keyboard/Keypad Usage Page (0x07
|`KC_EQUAL` |`KC_EQL` |`=` and `+` |
|`KC_LBRACKET` |`KC_LBRC` |`[` and `{` |
|`KC_RBRACKET` |`KC_RBRC` |`]` and `}` |
|`KC_BSLASH` |`KC_BSLS` |`\` and <code>&#124;</code> |
|`KC_BSLASH` |`KC_BSLS` |`\` and `\|` |
|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` and `~` |
|`KC_SCOLON` |`KC_SCLN` |`;` and `:` |
|`KC_QUOTE` |`KC_QUOT` |`'` and `"` |
@@ -93,7 +93,7 @@ The basic set of keycodes are based on the [HID Keyboard/Keypad Usage Page (0x07
|`KC_COMMA` |`KC_COMM` |`,` and `<` |
|`KC_DOT` | |`.` and `>` |
|`KC_SLASH` |`KC_SLSH` |`/` and `?` |
|`KC_NONUS_BSLASH`|`KC_NUBS` |Non-US `\` and <code>&#124;</code> |
|`KC_NONUS_BSLASH`|`KC_NUBS` |Non-US `\` and `\|` |
## Lock Keys
@@ -121,26 +121,26 @@ The basic set of keycodes are based on the [HID Keyboard/Keypad Usage Page (0x07
## International
|Key |Aliases |Description |
|----------|---------|-------------------------------|
|`KC_INT1` |`KC_RO` |JIS `\` and `_` |
|`KC_INT2` |`KC_KANA`|JIS Katakana/Hiragana |
|`KC_INT3` |`KC_JYEN`|JIS `¥` and <code>&#124;</code>|
|`KC_INT4` |`KC_HENK`|JIS Henkan |
|`KC_INT5` |`KC_MHEN`|JIS Muhenkan |
|`KC_INT6` | |JIS Numpad `,` |
|`KC_INT7` | |International 7 |
|`KC_INT8` | |International 8 |
|`KC_INT9` | |International 9 |
|`KC_LANG1`|`KC_HAEN`|Hangul/English |
|`KC_LANG2`|`KC_HANJ`|Hanja |
|`KC_LANG3`| |JIS Katakana |
|`KC_LANG4`| |JIS Hiragana |
|`KC_LANG5`| |JIS Zenkaku/Hankaku |
|`KC_LANG6`| |Language 6 |
|`KC_LANG7`| |Language 7 |
|`KC_LANG8`| |Language 8 |
|`KC_LANG9`| |Language 9 |
|Key |Aliases |Description |
|----------|---------|---------------------|
|`KC_INT1` |`KC_RO` |JIS `\` and `_` |
|`KC_INT2` |`KC_KANA`|JIS Katakana/Hiragana|
|`KC_INT3` |`KC_JYEN`|JIS `¥` and `\|` |
|`KC_INT4` |`KC_HENK`|JIS Henkan |
|`KC_INT5` |`KC_MHEN`|JIS Muhenkan |
|`KC_INT6` | |JIS Numpad `,` |
|`KC_INT7` | |International 7 |
|`KC_INT8` | |International 8 |
|`KC_INT9` | |International 9 |
|`KC_LANG1`|`KC_HAEN`|Hangul/English |
|`KC_LANG2`|`KC_HANJ`|Hanja |
|`KC_LANG3`| |JIS Katakana |
|`KC_LANG4`| |JIS Hiragana |
|`KC_LANG5`| |JIS Zenkaku/Hankaku |
|`KC_LANG6`| |Language 6 |
|`KC_LANG7`| |Language 7 |
|`KC_LANG8`| |Language 8 |
|`KC_LANG9`| |Language 9 |
## Commands

View File

@@ -12,26 +12,26 @@ To fix this, open Remote Desktop Connection, click on "Show Options", open the t
## Keycodes
|Key |Aliases |Description |
|------------------------|-------------------|-------------------|
|`KC_TILDE` |`KC_TILD` |`~` |
|`KC_EXCLAIM` |`KC_EXLM` |`!` |
|`KC_AT` | |`@` |
|`KC_HASH` | |`#` |
|`KC_DOLLAR` |`KC_DLR` |`$` |
|`KC_PERCENT` |`KC_PERC` |`%` |
|`KC_CIRCUMFLEX` |`KC_CIRC` |`^` |
|`KC_AMPERSAND` |`KC_AMPR` |`&` |
|`KC_ASTERISK` |`KC_ASTR` |`*` |
|`KC_LEFT_PAREN` |`KC_LPRN` |`(` |
|`KC_RIGHT_PAREN` |`KC_RPRN` |`)` |
|`KC_UNDERSCORE` |`KC_UNDS` |`_` |
|`KC_PLUS` | |`+` |
|`KC_LEFT_CURLY_BRACE` |`KC_LCBR` |`{` |
|`KC_RIGHT_CURLY_BRACE` |`KC_RCBR` |`}` |
|`KC_PIPE` | |<code>&#124;</code>|
|`KC_COLON` |`KC_COLN` |`:` |
|`KC_DOUBLE_QUOTE` |`KC_DQUO`, `KC_DQT`|`"` |
|`KC_LEFT_ANGLE_BRACKET` |`KC_LABK`, `KC_LT` |`<` |
|`KC_RIGHT_ANGLE_BRACKET`|`KC_RABK`, `KC_GT` |`>` |
|`KC_QUESTION` |`KC_QUES` |`?` |
|Key |Aliases |Description|
|------------------------|-------------------|-----------|
|`KC_TILDE` |`KC_TILD` |`~` |
|`KC_EXCLAIM` |`KC_EXLM` |`!` |
|`KC_AT` | |`@` |
|`KC_HASH` | |`#` |
|`KC_DOLLAR` |`KC_DLR` |`$` |
|`KC_PERCENT` |`KC_PERC` |`%` |
|`KC_CIRCUMFLEX` |`KC_CIRC` |`^` |
|`KC_AMPERSAND` |`KC_AMPR` |`&` |
|`KC_ASTERISK` |`KC_ASTR` |`*` |
|`KC_LEFT_PAREN` |`KC_LPRN` |`(` |
|`KC_RIGHT_PAREN` |`KC_RPRN` |`)` |
|`KC_UNDERSCORE` |`KC_UNDS` |`_` |
|`KC_PLUS` | |`+` |
|`KC_LEFT_CURLY_BRACE` |`KC_LCBR` |`{` |
|`KC_RIGHT_CURLY_BRACE` |`KC_RCBR` |`}` |
|`KC_PIPE` | |`\|` |
|`KC_COLON` |`KC_COLN` |`:` |
|`KC_DOUBLE_QUOTE` |`KC_DQUO`, `KC_DQT`|`"` |
|`KC_LEFT_ANGLE_BRACKET` |`KC_LABK`, `KC_LT` |`<` |
|`KC_RIGHT_ANGLE_BRACKET`|`KC_RABK`, `KC_GT` |`>` |
|`KC_QUESTION` |`KC_QUES` |`?` |

View File

@@ -86,7 +86,23 @@ Click the `Flash` button in QMK Toolbox. You will see output similar to the foll
## Flash your Keyboard from the Command Line
First thing you'll need to know is which bootloader that your keyboard uses. There are four main bootloaders that are used, usually. Pro-Micro and clones use CATERINA, and Teensy's use Halfkay, OLKB boards use QMK-DFU, and other atmega32u4 chips use DFU.
This has been made pretty simple compared to what it used to be. When you are ready to compile and flash your firmware, open up your terminal window and run the build command:
make <my_keyboard>:<my_keymap>:flash
For example, if your keymap is named "xyverz" and you're building a keymap for a rev5 planck, you'll use this command:
make planck/rev5:xyverz:flash
This will check the keyboard's configuration, and then attempt to flash it based on the specified bootloader. This means that you don't need to know which bootloader that your keyboard uses. Just run the command, and let the command do the heavy lifting.
However, this does rely on the bootloader being set by the keyboard. If this information is not configured, or you're using a board that doesn't have a supported target to flash it, you will see this error:
WARNING: This board's bootloader is not specified or is not supported by the ":flash" target at this time.
In this case, you'll have to fall back on specifying the bootloader.
There are five main bootloaders that are used. Pro Micro and clones use Caterina, Teensys use HalfKay, OLKB's AVR boards use QMK-DFU, other ATmega32U4 boards use DFU, and most ARM boards use ARM DFU.
You can find more information about the bootloaders in the [Flashing Instructions and Bootloader Information](flashing.md) page.
@@ -216,11 +232,14 @@ If you have any issues with this, you may need to this:
sudo make <my_keyboard>:<my_keymap>:avrdude
Additionally, if you want to flash multiple boards, use the following command:
#### Caterina commands
make <keyboard>:<keymap>:avrdude-loop
There are a number of DFU commands that you can use to flash firmware to a DFU device:
When you're done flashing boards, you'll need to hit Ctrl + C or whatever the correct keystroke is for your operating system to break the loop.
* `: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 Control+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
@@ -256,42 +275,6 @@ Programming.....................................................................
Booting
```
### BootloadHID
For Bootmapper Client(BMC)/bootloadHID/ATmega32A based boards, when you're ready to compile and flash your firmware, open up your terminal window and run the build command:
make <my_keyboard>:<my_keymap>:bootloaderHID
For example, if your keymap is named "xyverz" and you're building a keymap for a jj40, you'll use this command:
make jj40:xyverz:bootloaderHID
Once the firmware finishes compiling, it will output something like this:
```
Linking: .build/jj40_default.elf [OK]
Creating load file for flashing: .build/jj40_default.hex [OK]
Copying jj40_default.hex to qmk_firmware folder [OK]
Checking file size of jj40_default.hex [OK]
* The firmware size is fine - 21920/28672 (6752 bytes free)
```
After it gets to this point, the build script will look for the DFU bootloader every 5 seconds. It will repeat the following until the device is found or you cancel it.
```
Error opening HIDBoot device: The specified device was not found
Trying again in 5s.
```
Once it does this, you'll want to reset the controller. It should then show output similar to this:
```
Page size = 128 (0x80)
Device size = 32768 (0x8000); 30720 bytes remaining
Uploading 22016 (0x5600) bytes starting at 0 (0x0)
0x05580 ... 0x05600
```
### STM32 (ARM)
For a majority of ARM boards (including the Proton C, Planck Rev 6, and Preonic Rev 3), when you're ready to compile and flash your firmware, open up your terminal window and run the build command:
@@ -346,11 +329,47 @@ Transitioning to dfuMANIFEST state
There are a number of DFU commands that you can use to flash firmware to a STM32 device:
* `:dfu-util` - The default command for flashing to STM32 devices.
* `:dfu-util-wait` - This works like the default command, but it gives you a (configurable) 10 second timeout before it attempts to flash the firmware. You can use `TIME_DELAY=20` from the command line to change the timeout.
* Eg: `make <keyboard>:<keymap>:dfu-util TIME_DELAY=5`
* `:dfu-util` - The default command for flashing to STM32 devices, and will wait until an STM32 bootloader is present. .
* `: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.
* `:st-link-cli` - This allows you to flash the firmware via ST-LINK's CLI utility, rather than dfu-util.
### BootloadHID
For Bootmapper Client(BMC)/bootloadHID/ATmega32A based boards, when you're ready to compile and flash your firmware, open up your terminal window and run the build command:
make <my_keyboard>:<my_keymap>:bootloaderHID
For example, if your keymap is named "xyverz" and you're building a keymap for a jj40, you'll use this command:
make jj40:xyverz:bootloaderHID
Once the firmware finishes compiling, it will output something like this:
```
Linking: .build/jj40_default.elf [OK]
Creating load file for flashing: .build/jj40_default.hex [OK]
Copying jj40_default.hex to qmk_firmware folder [OK]
Checking file size of jj40_default.hex [OK]
* The firmware size is fine - 21920/28672 (6752 bytes free)
```
After it gets to this point, the build script will look for the DFU bootloader every 5 seconds. It will repeat the following until the device is found or you cancel it.
```
Error opening HIDBoot device: The specified device was not found
Trying again in 5s.
```
Once it does this, you'll want to reset the controller. It should then show output similar to this:
```
Page size = 128 (0x80)
Device size = 32768 (0x8000); 30720 bytes remaining
Uploading 22016 (0x5600) bytes starting at 0 (0x0)
0x05580 ... 0x05600
```
## Test It Out!

View File

@@ -8,7 +8,8 @@ Testing your keyboard is usually pretty straightforward. Press every single key
Note: These programs are not provided by or endorsed by QMK.
* [Switch Hitter](https://elitekeyboards.com/switchhitter.php) (Windows Only)
* [QMK Configurator](https://config.qmk.fm/#/test/) (Web Based)
* [Switch Hitter](https://web.archive.org/web/20190413233743/https://elitekeyboards.com/switchhitter.php) (Windows Only)
* [Keyboard Viewer](https://www.imore.com/how-use-keyboard-viewer-your-mac) (Mac Only)
* [Keyboard Tester](http://www.keyboardtester.com) (Web Based)
* [Keyboard Checker](http://keyboardchecker.com) (Web Based)

View File

@@ -1,16 +1,16 @@
# Glossary of QMK Terms
## ARM
A line of 32-bit MCU's produced by a number of companies, such as Atmel, Cypress, Kinetis, NXP, ST, and TI.
A line of 32-bit MCUs produced by a number of companies, such as Atmel, Cypress, Kinetis, NXP, ST, and TI.
## AVR
A line of 8-bit MCU's produced by [Atmel](http://www.microchip.com/). AVR was the original platform that TMK supported.
A line of 8-bit MCUs produced by [Atmel](http://www.microchip.com/). AVR was the original platform that TMK supported.
## AZERTY
The standard Français (French) keyboard layout. Named for the first 6 keys on the keyboard.
## Backlight
A generic term for lighting on a keyboard. The backlight is typically, but not always, an array of LED's that shine through keycaps and/or switches.
A generic term for lighting on a keyboard. The backlight is typically, but not always, an array of LEDs that shine through keycaps and/or switches.
## Bluetooth
A short range peer to peer wireless protocol. Most common wireless protocol for a keyboard.
@@ -147,7 +147,7 @@ A feature that lets you assign multiple keycodes to the same key based on how ma
A low-cost AVR development board that is commonly used for hand-wired builds. A teensy is often chosen despite costing a few dollars more due to its halfkay bootloader, which makes flashing very simple.
## Underlight
A generic term for LEDs that light the underside of the board. These LED's typically shine away from the bottom of the PCB and towards the surface the keyboard rests on.
A generic term for LEDs that light the underside of the board. These LEDs typically shine away from the bottom of the PCB and towards the surface the keyboard rests on.
## Unicode
In the larger computer world Unicode is a set of encoding schemes for representing characters in any language. As it relates to QMK it means using various OS schemes to send unicode codepoints instead of scancodes.

32
docs/ru-ru/README.md Normal file
View File

@@ -0,0 +1,32 @@
# 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/)
## Что такое QMK Firmware?
QMK (*Quantum Mechanical Keyboard*) — это сообщество, работающее над ПО с открытым исходным кодом, которое разрабатывает QMK Firmware, QMK Toolbox, qmk.fm и эту документацию. QMK Firmware — это прошивка для клавиатур, основанная на [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. Вы можете использовать ее для клавиатуры, собранной вручную или имеющей нестандартную печатную плату.
## Как скачать
Если вы собираетесь добавить раскладку, клавиатуру или новые функции в QMK, то самый простой путь реализации — это [сделать форк репозитория на GitHub](https://github.com/qmk/qmk_firmware#fork-destination-box), клонировать ваш репозиторий локально для дальнейшего внесения изменений, сделать пуш изменений, а затем открыть [пулреквест](https://github.com/qmk/qmk_firmware/pulls) из вашего форка.
Также вы можете либо скачать репозиторий ([zip](https://github.com/qmk/qmk_firmware/zipball/master), [tar](https://github.com/qmk/qmk_firmware/tarball/master)), либо клонировать его через git (`git@github.com:qmk/qmk_firmware.git`) или https (`https://github.com/qmk/qmk_firmware.git`).
## Как скомпилировать
Перед компиляцией вам необходимо [настроить окружение](ru-ru/getting_started_build_tools.md) разработчика для AVR или/и ARM. После этого используйте команду `make` со следующим синтаксисом, чтобы собрать клавиатуру и раскладку:
make planck/rev4:default
Данная команда соберет ревизию `rev4` клавиатуры `planck` с раскладкой `default`. Не все клавиатуры имеют ревизии (они также называются subprojects или folders), в этом случае она может быть опущена:
make preonic:default
## Как настроить
QMK обладает множеством [функций](ru-ru/features.md) для исследования, и [справочная документация](http://docs.qmk.fm) может стать хорошей отправной точкой для знакомства с ними. Большинством функций можно воспользоваться модифицируя [раскладку](ru-ru/keymap.md) и изменяя [коды клавиш](ru-ru/keycodes.md).

View File

@@ -0,0 +1,168 @@
# Установка инструментов для сборки
Данная страница описывает процесс установки окружения для сборки QMK. Эти инструкции относятся к процессорам AVR (таким как atmega32u4).
<!-- FIXME: Нужно написать и добавить куда-нибудь инструкции для ARM. -->
**Примечание:** Если вы здесь впервые, ознакомьтесь с [Руководством для полных новичков](ru-ru/newbs.md).
Прежде, чем продолжить, убедитесь, что у вас обновлены подмодули (сторонние библиотеки), выполнив `make git-submodule`.
## Linux
Чтобы всегда быть уверенными, что у вас установлены последние версии ПО, можно просто выполнить команду `sudo util/qmk_install.sh`. Она должна установить все необходимые зависимости. **Это выполнит `apt-get upgrade`.**
Вы также можете устанавливать все вручную, но в данной документации список требований может не всегда быть актуальным.
Текущие требования представлены ниже, но не все они могут быть необходимы, так как зависят от того, что вы делаете. Также стоит отметить, что в некоторых системах не все зависимости доступны в виде пакетов, или они могут называться по-другому.
```
build-essential
gcc
unzip
wget
zip
gcc-avr
binutils-avr
avr-libc
dfu-programmer
dfu-util
gcc-arm-none-eabi
binutils-arm-none-eabi
libnewlib-arm-none-eabi
git
```
Установите все зависимости при помощи вашего любимого менеджера пакетов.
Пример для Debian / Ubuntu:
sudo apt-get update
sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi
Пример для Fedora / Red Hat:
sudo dnf install gcc unzip wget zip dfu-util dfu-programmer avr-gcc avr-libc binutils-avr32-linux-gnu arm-none-eabi-gcc-cs arm-none-eabi-binutils-cs arm-none-eabi-newlib
Пример для Arch / Manjaro:
pacman -S base-devel gcc unzip wget zip avr-gcc avr-binutils avr-libc dfu-util arm-none-eabi-gcc arm-none-eabi-binutils arm-none-eabi-newlib git dfu-programmer dfu-util
## Nix
Если вы используете [NixOS](https://nixos.org/), или у вас установлена Nix в Linux или macOS, выполните `nix-shell` из корня репозитория, чтобы настроить окружение для сборки.
По умолчанию, это скачает компиляторы для AVR и ARM. Если вам не нужны они оба, отключите `avr` или `arm` с помощью аргумента, например:
nix-shell --arg arm false
## macOS
Если вы пользуетесь [Homebrew](https://brew.sh/), вы можете использовать следующие команды:
brew tap osx-cross/avr
brew tap PX4/homebrew-px4
brew update
brew install avr-gcc@8
brew link --force avr-gcc@8
brew install dfu-programmer
brew install dfu-util
brew install gcc-arm-none-eabi
brew install avrdude
Данный метод является рекомендуемым. Если у вас нет Homebrew, [установите его!](http://brew.sh/) Он очень сильно пригодится тем, кто работает с командной строкой. Стоит отметить, что часть с `make` и `make install` во время установки `avr-gcc@8` из Homebrew может занимать более 20 минут и сильно нагружать CPU.
## Windows с MSYS2 (рекомендуется)
Наилучшим окружение для Windows Vista и всех последующих версий (тестировалось с 7 и 10) является [MSYS2](https://www.msys2.org).
* Для установки MSYS2, скачайте его и следуйте дальнейшим указаниям отсюда: http://www.msys2.org
* Откройте ``MSYS2 MingGW 64-bit`` ярлык
* Перейдите в свой репозиторий QMK. Например, если он находится в корне вашего диска C:
* `$ cd /c/qmk_firmware`
* Запустите `util/qmk_install.sh` и следуйте подсказкам
## Windows 10 (устарело)
Это устаревшие инструкции для Windows 10. Мы рекомендуем использовать [MSYS2, как сказано выше](#windows-с-msys2-рекомендуется).
### Обновление для дизайнеров (Creators Update)
Если у вас Windows 10 с Обновлением для дизайнеров или новее, вы можете собрать прошивку и прошить ей напрямую. До Обновления для дизайнеров было возможно только собрать прошивку. Если у вас его еще нет, или вы не уверены, следуйте [этим инструкциям](https://support.microsoft.com/en-us/instantanswers/d4efb316-79f0-1aa1-9ef3-dcada78f3fa0/get-the-windows-10-creators-update).
### Подсистема Windows для Linux (Windows Subsystem for Linux, WSL)
В дополнение к Обновлению для дизайнеров вам необходима подсистема Windows для Linux, поэтому установите ее, следуя [иснтрукциям здесь](http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/). Если у вас уже есть подсистема Windows для Linux из Юбилейного обновления (Anniversary update), рекомендуется ее [обновить](https://betanews.com/2017/04/14/upgrade-windows-subsystem-for-linux/) до 16.04LTS, потому что некоторые клавиатуры не компилируются с набором инструментов из 14.04LTS. Стоит отметить, что вы четко должны понимать, что вы делаете, если выбрали метод `sudo do-release-upgrade`.
### Git
Если вы уже клонировали репозиторий в файловую систему Windows, вы можете пропустить данную секцию.
Вам нужно клонировать репозиторий в файловую систему Windows при помощи обычного Git для Windows, а **не** WSL Git. Так что, если вы ещё не установили Git, [скачайте](https://git-scm.com/download/win) и установите его. Затем [настройте его](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup). Важно указать свой адрес электронной почты и имя пользователя, особенно если вы планируете вносить свой вклад в проект.
Как только Git будет установлен, откройте командную строку Git Bash и поменяйте директорию на ту, в которую хотите клонировать QMK; обратите внимание, что вы должны использовать косую черту, и что доступ к вашему диску C осуществляется примерно так: `/c/path/to/where/you/want/to/go`. Затем выполните `git clone --recurse-submodules https://github.com/qmk/qmk_firmware`, это создаст новую папку `qmk_firmware` в текущей директории.
### Установка инструментов (Toolchain)
Установка инструментов (Toolchain) осуществляется через подсистему Windows для Linux, и процесс полностью автоматизирован. Если вы хотите выполнить установку вручную, то не существует никакой другой инструкции помимо самого скрипта. Однако, вы всегда можете открыть ишью и запросить дополнительную информацию.
1. Откройте "Bash On Ubuntu On Windows" в меню Пуск.
2. Перейдите в папку, в которую клонирована `qmk_firmware`. Обратите внимание, что пути начинаются с `/mnt/` в WSL, так что вы должны написать, например, `cd /mnt/c/path/to/qmk_firmware`.
3. Запустите `util/wsl_install.sh` и следуйте инструкциям на экране.
4. Закройте окно командной строки Bash, и откройте его снова.
5. Все готово, чтобы скомпилировать прошивку и прошить ей!
### Несколько важных вещей, которые надо запомнить
* Вы можете запустить `util/wsl_install.sh` еще раз, чтобы установить все последние обновления.
* Ваш репозиторий QMK должен находиться в файловой системе Windows, поскольку WSL не может запускать выполняемые файлы извне.
* WSL Git **не** совместим с Windows Git, поэтому используйте Windows Git Bash или Windows Git GUI для всех операций с Git.
* Вы можете изменять файлы как внутри WSL, так и просто через Windows. Но обратите внимание, что если вы изменяете makefiles или сценарии командной строки, вы должны убедиться, что используете текстовый редактор, который сохраняет файлы с переводом строки в стиле Unix (Unix line endings). В противном случае компиляция может не работать.
## Windows (Vista и новее) (устарело)
Это устаревшие инструкции для Windows Vista и более новых версий. Мы рекомендуем использовать [MSYS2, как сказано выше](#windows-с-msys2-рекомендуется).
1. Если вы когда-то устанавливали WinAVR, удалите его.
2. Установите [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Отключите smatch, но **оставьте галочку напротив опции добавления инструмента в PATH**.
3. Если вы собираетесь прошивать клавиатуры на базе Infinity, вам нужно установить dfu-util. Обратитесь к инструкциям от [Input Club](https://github.com/kiibohd/controller/wiki/Loading-DFU-Firmware).
4. Установите [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). Во время установки отключите опцию установки графического пользовательского интерфейса. **НЕ ИЗМЕНЯЙТЕ директорию для установки по умолчанию.** Скрипты зависят от расположения по умолчанию.
5. Выполните клонирование данного репозитория. [Эта ссылка скачает его в виде zip-файла, который вам нужно будет разархивировать.](https://github.com/qmk/qmk_firmware/archive/master.zip) Откройте извлеченную папку в проводнике Windows.
6. Перейдите в папку `\util`.
7. Запустите двойным щелчком пакетный файл сценария `1-setup-path-win`. Вам нужно будет согласиться с уведомлением контроля учетных записей пользователей (User Account Control, UAC). Нажмите пробел, чтобы закрыть появившееся сообщение об успешном выполнении операции в командной строке.
8. Кликните правой кнопкой по пакетному файлу сценария `2-setup-environment-win`, выберите "Запуск от имени администратора" и согласитесь с уведомлением UAC. Это может занять пару минут, и вам потребуется подтвердить установку драйвера. Как только сценарий завершит свою работу, ваше окружение будет готово!
Если у вас возникли проблемы и вам нужна помощь, будет полезно сгенерировать файл *Win_Check_Output.txt*, запустив `Win_Check.bat` в папке `\util`.
## Docker
Если это немного сложновато для вас, Docker может стать готовым решением, которое вы ищите. После установки [Docker CE](https://docs.docker.com/install/#supported-platforms) выполните следующую команду из директории `qmk_firmware`, чтобы собрать клавиатуру/раскладку:
```bash
util/docker_build.sh keyboard:keymap
# Например: util/docker_build.sh ergodox_ez:steno
```
Это скомпилирует указанную клавиатуру/раскладку и создаст для вас `.hex` или `.bin` файл с результатом, готовым к процессу прошивки, в директории QMK. Если опустить `:keymap`, будет использована раскладка `default`. Заметьте, что формат параметров такой же, как и в случае сборки командой `make`.
Вы также можете запустить скрипт без параметров. Тогда он попросит вас ввести поочередно параметры сборки. Возможно, вам это покажется более удобным:
```bash
util/docker_build.sh
# Читает параметры из пользовательского ввода (оставьте пустым для значений по умолчанию)
```
Также имеется поддержка сборки _и_ прошивки клавиатуры прямо из Docker. Для этого укажите еще один параметр `target`:
```bash
util/docker_build.sh keyboard:keymap:target
# Например: util/docker_build.sh planck/rev6:default:dfu-util
```
Если вы используете Linux, это должно работать прямо из коробки. На Windows и macOS это требует запуска [Docker Machine](http://gw.tnode.com/docker/docker-machine-with-usb-support-on-windows-macos/). Ее довольно утомительно настраивать, поэтому мы не рекомендуем это; используйте вместо этого [QMK Toolbox](https://github.com/qmk/qmk_toolbox).
!> Docker для Windows требует включения [Hyper-V](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v). Это означает, что он не работает на версиях Windows без Hyper-V, например, на Windows 7, Windows 8 и **Windows 10 Home**.
## Vagrant
Если у вас возникли проблемы при сборке прошивки, вы можете попробовать установить инструмент под названием Vagrant. Он сконфигурирует виртуальный компьютер с такими параметрами, которые подходят для сборки прошивки. У OLKB НЕТ файлов такого виртуально компьютера. Подробности о том, как настроить Vagrant, можно найти в [Руководстве по Vagrant](ru-ru/getting_started_vagrant.md).

23
docs/ru-ru/newbs.md Normal file
View File

@@ -0,0 +1,23 @@
# Руководство по QMK для полных новичков
QMK ― это мощная прошивка с открытым исходным кодом для вашей механической клавиатуры. Вы можете использовать QMK для легкой и мощной персонализации своей клавиатуры. Люди с разным уровнем умений, от совсем новичков до крутых программистов, успешно применяли QMK, чтобы персонализировать свои клавиатуры. Данное руководство поможет вам сделать то же самое, независимо от уровня вашего мастерства.
Не уверены, поддерживает ли ваша клавиатура QMK? Если это механическая клавиатура, которую вы собрали сами, шансы достаточно велики. Мы поддерживаем [большое число любительских клавиатур](https://qmk.fm/keyboards/), поэтому, даже если ваша текущая клавиатура не совместима с QMK, у вас не должно возникнуть проблем с нахождением подходящей для ваших нужд.
## Обзор
В данном руководстве 7 основных секций:
* [Первое знакомство](ru-ru/newbs_getting_started.md)
* [Собираем вашу первую прошивку с помощью командной строки](ru-ru/newbs_building_firmware.md)
* [Собираем вашу первую прошивку с помощью онлайн GUI](ru-ru/newbs_building_firmware_configurator.md)
* [Прошиваем файл прошивки](ru-ru/newbs_flashing.md)
* [Тестируем и отлаживаем](ru-ru/newbs_testing_debugging.md)
* [Лучшие практики по Git](ru-ru/newbs_best_practices.md)
* [Узнайте больше на этих ресурсах](ru-ru/newbs_learn_more_resources.md)
Данное руководство сосредоточено на помощи тем, кто никогда раньше не компилировал ПО. Приятие решений и рекомендации делаются с учетом именно этого. Существует много альтернативных методов для описанных процедур, и мы поддерживаем большинство из них. Если у вас есть сомнения о том, как выполнить задачу, вы можете [попросить у нас совета](ru-ru/getting_started_getting_help.md).
## Дополнительные ресурсы
* [Блог Томаса Баарта (Thomas Baart) об основах QMK](https://thomasbaart.nl/category/mechanical-keyboards/firmware/qmk/qmk-basics/) Созданный пользователем блог, охватывающий основы использования QMK Firmware с точки зрения нового пользователя.

View File

@@ -0,0 +1,102 @@
# Введение
У вашей компьютерной клавиатуры внутри есть процессор, похожий на тот, что внутри вашего компьютера. Этот процессор выполняет программное обеспечение, которое отвечает за обнаружение нажатий клавиш и отсылку сигналов состояния клавиатуры, когда клавиши нажимаются и отпускаются. Роль такого ПО выполняет QMK, детектируя нажатия клавиш и отсылая эту информацию главному компьютеру. Сбор собственной раскладки эквивалентен сборке выполняемой программы для вашей клавиатуры.
QMK старается дать вам большую силу, оставляя простые вещи легкими и делай сложные — возможными. Вам не надо уметь программировать, чтобы создавать мощные прошивки — вам только надо следовать нескольким простым синтаксическим правилам.
# Первое знакомство
Перед тем, как вы сможете собирать раскладки, вам необходимо установить некоторое программное обеспечение и настроить ваше окружение для сборки. Это нужно сделать только один раз, вне зависимости от того, для скольких клавиатур вы планируете компилировать прошивки.
Если вы предпочитаете графический пользовательский интерфейс, пожалуйста, рассмотрите возможность использования онлайн [QMK Конфигуратора](https://config.qmk.fm). Пожалуйста, обратитесь к [Собираем вашу первую прошивку с помощью онлайн GUI](ru-ru/newbs_building_firmware_configurator.md).
## Загрузка ПО
### Текстовый редактор
Вам понадобится программа, умеющая редактировать и сохранять **обычные текстовые** файлы. Если вы используете Windows, вы можете делать это Блокнотом, а в Linux вы можете использовать gedit. Обе программы являются простыми, но функциональными редакторами. В macOS остерегайтесь стандартного приложения TextEdit: он не будет сохранять обычные текстовые файлы, пока вы явно не выберите _Make Plain Text_ из меню _Format_.
Вы также можете скачать и установить отдельный текстовый редактор наподобие [Sublime Text](https://www.sublimetext.com/) или [VS Code](https://code.visualstudio.com/). Возможно, это наилучший вариант независимо от платформы, поскольку эти программы сделаны специально для редактирования кода.
?> Не уверены, какой выбрать текстовый редактор? Лоуренс Брэдфорд (Laurence Bradford) написал [отличное введение](https://learntocodewith.me/programming/basics/text-editors/) в тему.
### QMK Toolbox
QMK Toolbox является дополнительной графической программой для Windows и macOS, которая позволяет вам разрабатывать и отлаживать вашу клавиатуру. Вы, вероятно, посчитаете ее бесценной для легкого процесса прошивки вашей клавиатуры и просмотра отладочных сообщений, которые она отображает.
[Скачайте последний выпуск здесь.](https://github.com/qmk/qmk_toolbox/releases/latest)
* Для Windows: `qmk_toolbox.exe` (переносимое приложение) или `qmk_toolbox_install.exe` (установщик)
* Для macOS: `QMK.Toolbox.app.zip` (переносимое приложение) или `QMK.Toolbox.pkg` (установщик)
## Настройте ваше окружение
Мы постарались сделать установку QMK максимально легкой. Вам нужно только подготовить ваше Linux или Unix окружение, после этого позвольте QMK установить все остальное.
?> Если вы никогда раньше не работали с командной строкой Linux/Unix, существует несколько базовых концептов и команд, которые необходимо выучить. Эти ресурсы дадут вам достаточно знаний, чтобы работать с QMK:<br>
[Обязательные к изучению команды Linux](https://www.guru99.com/must-know-linux-commands.html)<br>
[Несколько базовых команд Unix](https://www.tjhsst.edu/~dhyatt/superap/unixcmd.html)
### Windows
Вам нужно будет установить MSYS2 и Git.
* Следуйте инструкциям по установки на [домашней странице MSYS2](https://www.msys2.org).
* Закройте все открытые терминалы MSYS2 и откройте новый терминал MSYS2 MinGW 64-bit.
* Установите Git, выполнив эту команду: `pacman -S git`.
### macOS
Вам нужно будет установить Homebrew. Следуйте инструкциям на [домашней странице Homebrew](https://brew.sh).
После установки Homebrew продолжите чтение с _Установите QMK_. На этом шаге вам надо будет запустить скрипт, который установит остальные пакеты.
### Linux
Вам нужно будет установить Git. Скорее всего, он у вас уже есть, но если нет, одна из следующих команд должна установить его:
* Debian / Ubuntu / Devuan: `apt-get install git`
* Fedora / Red Hat / CentOS: `yum install git`
* Arch: `pacman -S git`
?> Docker также является вариантом для всех платформ. [Нажмите сюда для получения подробностей.](ru-ru/getting_started_build_tools.md#docker)
## Установите QMK
Как только вы настроили ваше Linux/Unix окружение, вы готовы к загрузке QMK. Мы сделаем это при помощи Git, "клонировав" репозиторий QMK. Откройте Терминал или окно MSYS2 MinGW и оставьте его открытым до конца данного руководства. Выполните эти команды внутри него:
```shell
git clone --recurse-submodules https://github.com/qmk/qmk_firmware.git
cd qmk_firmware
```
?> Если вы уже знаете, [как пользоваться GitHub](ru-ru/getting_started_github.md), мы рекомендуем вам вместо этого создать и клонировать свой собственный форк. Если вы не понимаете, что это значит, просто проигнорируйте это сообщение.
QMK включает в себя скрипт, который поможет вам установить все оставшееся, что вам понадобится. Вы должны запустить его, набрав эту команду:
util/qmk_install.sh
## Протестируйте ваше окружение для сборки
Теперь, когда ваше окружение QMK для сборки настроено, вы можете собрать прошивку для вашей клавиатуры. Начните с попытки собрать раскладку для клавиатуры по умолчанию. У вас должно это получиться с помощью команды в этом формате:
make <keyboard>:default
Например, чтобы собрать прошивку для Clueboard 66%, вы введете:
make clueboard/66/rev3:default
Когда все закончится, вы должны увидеть большой лог, который заканчивается примерно так:
```
Linking: .build/clueboard_66_rev3_default.elf [OK]
Creating load file for flashing: .build/clueboard_66_rev3_default.hex [OK]
Copying clueboard_66_rev3_default.hex to qmk_firmware folder [OK]
Checking file size of clueboard_66_rev3_default.hex [OK]
* The firmware size is fine - 26356/28672 (2316 bytes free)
```
# Создаем вашу раскладку
Теперь вы готовы создать свою персональную раскладку! Для этого перейдите к [Собираем вашу первую прошивку](ru-ru/newbs_building_firmware.md).

View File

@@ -22,7 +22,7 @@ This section of code is called "The Main Loop" because it's responsible for loop
keyboard_task();
```
This is where all the keyboard specific functionality is dispatched. The source code for `keyboard_task()` can be found in [tmk_core/common/keyboard.c](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/tmk_core/common/keyboard.c#L216), and it is responsible for detecting changes in the matrix and turning status LED's on and off.
This is where all the keyboard specific functionality is dispatched. The source code for `keyboard_task()` can be found in [tmk_core/common/keyboard.c](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/tmk_core/common/keyboard.c#L216), and it is responsible for detecting changes in the matrix and turning status LEDs on and off.
Within `keyboard_task()` you'll find code to handle:
@@ -30,7 +30,7 @@ Within `keyboard_task()` you'll find code to handle:
* Mouse Handling
* Serial Link(s)
* Visualizer
* Keyboard status LED's (Caps Lock, Num Lock, Scroll Lock)
* Keyboard status LEDs (Caps Lock, Num Lock, Scroll Lock)
#### Matrix Scanning
@@ -175,7 +175,7 @@ FIXME: This needs to be written
FIXME: This needs to be written
#### Keyboard state LED's (Caps Lock, Num Lock, Scroll Lock)
#### Keyboard state LEDs (Caps Lock, Num Lock, Scroll Lock)
FIXME: This needs to be written

33
docs/ws2812_driver.md Normal file
View File

@@ -0,0 +1,33 @@
# WS2812 Driver
This driver powers the [RGB Lighting](feature_rgblight.md) and [RGB Matrix](feature_rgb_matrix.md) features.
Currently QMK supports the following addressable LEDs on AVR microcontrollers (however, the white LED in RGBW variants is not supported):
WS2811, WS2812, WS2812B, WS2812C, etc.
SK6812, SK6812MINI, SK6805
These LEDs are called "addressable" because instead of using a wire per color, each LED contains a small microchip that understands a special protocol sent over a single wire. The chip passes on the remaining data to the next LED, allowing them to be chained together. In this way, you can easily control the color of the individual LEDs.
## Driver configuration
### Bitbang
Default driver, the absence of configuration assumes this driver. To configure it, add this to your rules.mk:
```make
WS2812_DRIVER = bitbang
```
!> ARM does not yet support WS2182. Progress is being made, but we are not quite there, yet.
### I2C
Targeting boards where WS2812 support is offloaded to a 2nd MCU. Currently the driver is limited to AVR given the known consumers are ps2avrGB/BMC. To configure it, add this to your rules.mk:
```make
WS2812_DRIVER = i2c
```
Configure the hardware via your config.h:
```c
#define WS2812_ADDRESS 0xb0 // default: 0xb0
#define WS2812_TIMEOUT 100 // default: 100
```

View File

@@ -8,7 +8,8 @@
注意这些程序不是由QMK提供或认可的。
* [Switch Hitter](https://elitekeyboards.com/switchhitter.php) (仅Windows)
* [QMK Configurator](https://config.qmk.fm/#/test/) (网页版)
* [Switch Hitter](https://web.archive.org/web/20190413233743/https://elitekeyboards.com/switchhitter.php) (仅Windows)
* [Keyboard Viewer](https://www.imore.com/how-use-keyboard-viewer-your-mac) (仅Mac)
* [Keyboard Tester](http://www.keyboardtester.com) (网页版)
* [Keyboard Checker](http://keyboardchecker.com) (网页版)

View File

@@ -32,27 +32,17 @@
static uint8_t i2c_address;
// ChibiOS uses two initialization structure for v1 and v2/v3 i2c APIs.
// The F1 series uses the v1 api, which have to initialized this way.
#ifdef STM32F103xB
static const I2CConfig i2cconfig = {
OPMODE_I2C,
400000,
FAST_DUTY_CYCLE_2,
};
#else
// This configures the I2C clock to 400khz assuming a 72Mhz clock
// For more info : https://www.st.com/en/embedded-software/stsw-stm32126.html
static const I2CConfig i2cconfig = {
#ifdef USE_I2CV1
I2C1_OPMODE,
I2C1_CLOCK_SPEED,
I2C1_DUTY_CYCLE,
#else
// This configures the I2C clock to 400khz assuming a 72Mhz clock
// For more info : https://www.st.com/en/embedded-software/stsw-stm32126.html
STM32_TIMINGR_PRESC(I2C1_TIMINGR_PRESC) | STM32_TIMINGR_SCLDEL(I2C1_TIMINGR_SCLDEL) | STM32_TIMINGR_SDADEL(I2C1_TIMINGR_SDADEL) | STM32_TIMINGR_SCLH(I2C1_TIMINGR_SCLH) | STM32_TIMINGR_SCLL(I2C1_TIMINGR_SCLL), 0, 0
#endif
};
#endif
static i2c_status_t chibios_to_qmk(const msg_t* status) {
switch (*status) {

1
drivers/arm/ws2812.c Normal file
View File

@@ -0,0 +1 @@
#error("NOT SUPPORTED")

1
drivers/arm/ws2812_pwm.c Normal file
View File

@@ -0,0 +1 @@
#error("NOT SUPPORTED")

1
drivers/arm/ws2812_spi.c Normal file
View File

@@ -0,0 +1 @@
#error("NOT SUPPORTED")

View File

@@ -25,13 +25,17 @@
#include <avr/interrupt.h>
#include <avr/io.h>
#include <util/delay.h>
#include "debug.h"
#if !defined(LED_ARRAY) && defined(RGB_MATRIX_ENABLE)
// LED color buffer
LED_TYPE led[DRIVER_LED_TOTAL];
# define LED_ARRAY led
#endif
/*
* Forward declare internal functions
*
* The functions take a byte-array and send to the data output as WS2812 bitstream.
* The length is the number of bytes to send - three per LED.
*/
void ws2812_sendarray(uint8_t *array, uint16_t length);
void ws2812_sendarray_mask(uint8_t *array, uint16_t length, uint8_t pinmask);
#ifdef RGBW_BB_TWI
@@ -135,23 +139,6 @@ unsigned char I2C_Write(unsigned char c) {
#endif
#ifdef RGB_MATRIX_ENABLE
// Set an led in the buffer to a color
void inline ws2812_setled(int i, uint8_t r, uint8_t g, uint8_t b) {
led[i].r = r;
led[i].g = g;
led[i].b = b;
}
void ws2812_setled_all(uint8_t r, uint8_t g, uint8_t b) {
for (int i = 0; i < sizeof(led) / sizeof(led[0]); i++) {
led[i].r = r;
led[i].g = g;
led[i].b = b;
}
}
#endif
// Setleds for standard RGB
void inline ws2812_setleds(LED_TYPE *ledarray, uint16_t leds) {
// ws2812_setleds_pin(ledarray,leds, _BV(ws2812_pin));

View File

@@ -20,13 +20,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LIGHT_WS2812_H_
#define LIGHT_WS2812_H_
#include <avr/io.h>
#include <avr/interrupt.h>
//#include "ws2812_config.h"
//#include "i2cmaster.h"
#pragma once
#include "quantum/color.h"
@@ -42,33 +36,6 @@
* - Send out the LED data
* - Wait 50<35>s to reset the LEDs
*/
#ifdef RGB_MATRIX_ENABLE
void ws2812_setled(int index, uint8_t r, uint8_t g, uint8_t b);
void ws2812_setled_all(uint8_t r, uint8_t g, uint8_t b);
#endif
void ws2812_setleds(LED_TYPE *ledarray, uint16_t number_of_leds);
void ws2812_setleds_pin(LED_TYPE *ledarray, uint16_t number_of_leds, uint8_t pinmask);
void ws2812_setleds_rgbw(LED_TYPE *ledarray, uint16_t number_of_leds);
/*
* Old interface / Internal functions
*
* The functions take a byte-array and send to the data output as WS2812 bitstream.
* The length is the number of bytes to send - three per LED.
*/
void ws2812_sendarray(uint8_t *array, uint16_t length);
void ws2812_sendarray_mask(uint8_t *array, uint16_t length, uint8_t pinmask);
/*
* Internal defines
*/
#ifndef CONCAT
# define CONCAT(a, b) a##b
#endif
#ifndef CONCAT_EXP
# define CONCAT_EXP(a, b) CONCAT(a, b)
#endif
#endif /* LIGHT_WS2812_H_ */

31
drivers/avr/ws2812_i2c.c Normal file
View File

@@ -0,0 +1,31 @@
#include "ws2812.h"
#include "i2c_master.h"
#ifndef WS2812_ADDRESS
# define WS2812_ADDRESS 0xb0
#endif
#ifndef WS2812_TIMEOUT
# define WS2812_TIMEOUT 100
#endif
void ws2812_init(void) { i2c_init(); }
// Setleds for standard RGB
void ws2812_setleds(LED_TYPE *ledarray, uint16_t leds) {
static bool s_init = false;
if (!s_init) {
ws2812_init();
s_init = true;
}
i2c_transmit(WS2812_ADDRESS, (uint8_t *)ledarray, sizeof(LED_TYPE) * leds, WS2812_TIMEOUT);
}
// Setleds for SK6812RGBW
void ws2812_setleds_rgbw(LED_TYPE *ledarray, uint16_t leds) {
// not supported - for now error out if its enabled
#ifdef RGBW
# error "RGBW not supported"
#endif
}

View File

@@ -14,7 +14,7 @@
},
"LAYOUT_60_iso": {
"layout": [{"label":"\u00ac", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
"layout": [{"label":"\u00ac", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
},
"LAYOUT_60_ansi_split_bs_rshift": {

View File

@@ -4,8 +4,6 @@
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x2010
#define DEVICE_VER 0x0001
#define MANUFACTURER 1up Keyboards
#define PRODUCT Sweet16
#define DESCRIPTION 4x4 grid
@@ -14,34 +12,11 @@
#define MATRIX_ROWS 4
#define MATRIX_COLS 4
/* key matrix pins */
#define MATRIX_ROW_PINS { F4, F5, F6, F7 }
#define MATRIX_COL_PINS { D1, D0, D4, C6 }
#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* number of backlight levels */
#ifdef BACKLIGHT_PIN
#define BACKLIGHT_LEVELS 3
#endif
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
#define BACKLIGHT_LEVELS 10
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
#define RGB_DI_PIN B1
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 1
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#endif

View File

@@ -1,7 +1,7 @@
{
"keyboard_name": "Sweet 16",
"url": "",
"maintainer": "qmk",
"maintainer": "skullydazed",
"width": 4,
"height": 4,
"layouts": {

View File

@@ -25,21 +25,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
void led_set_user(uint8_t usb_led) {
#ifndef CONVERT_TO_PROTON_C
/* Map RXLED to USB_LED_NUM_LOCK */
if (usb_led & (1 << USB_LED_NUM_LOCK)) {
DDRB |= (1 << 0); PORTB &= ~(1 << 0);
} else {
DDRB &= ~(1 << 0); PORTB &= ~(1 << 0);
}
/* Map TXLED to USB_LED_CAPS_LOCK */
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
DDRD |= (1 << 5); PORTD &= ~(1 << 5);
} else {
DDRD &= ~(1 << 5); PORTD &= ~(1 << 5);
}
#endif
#ifdef ENCODER_ENABLE
#include "encoder.h"
void encoder_update_user(int8_t index, bool clockwise) {
if (index == 0) { /* First encoder */
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
}
}
#endif

View File

@@ -1,13 +1,12 @@
# Sweet 16 Macropad
A 4x4 numpad/macro pad sold by 1up Keyboards - designed by Bishop Keyboards
A 4x4 numpad/macro pad sold by 1up Keyboards.
Keyboard Maintainer: QMK Community
Hardware Supported: Sweet16 Keyboard PCB
Hardware Availability: [1up Keyboards](https://1upkeyboards.com/)
* Keyboard Maintainer: skullydazed
* Hardware Supported: Sweet16 Keyboard PCB
* Hardware Availability: [1up Keyboards](https://1upkeyboards.com/)
Make example for this keyboard (after setting up your build environment):
make 1upkeyboards/sweet16:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
Revisions:
* [v1](./v1/)- The original macropad, designed by Bishop Keyboards
* [v2/promicro](./v2/promicro)- The second macropad built with a Pro Micro, designed by Clueboard
* [v2/proton_c](./v2/proton_c)- The second macropad built with a Proton C, designed by Clueboard

View File

@@ -1,27 +1,12 @@
# MCU name
MCU = atmega32u4
# 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
# Build Options
# comment out to disable the options.
#
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
DEFAULT_FOLDER = 1upkeyboards/sweet16/v1
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no
RGBLIGHT_ENABLE = yes
EXTRAFLAGS += -flto
RGBLIGHT_ENABLE = no

View File

@@ -0,0 +1,28 @@
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define PRODUCT_ID 0x2010
#define DEVICE_VER 0x0001
/* key matrix pins */
#define MATRIX_ROW_PINS { F4, F5, F6, F7 }
#define MATRIX_COL_PINS { D1, D0, D4, C6 }
#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
/* Underglow options */
#define RGB_DI_PIN B1
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 1
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#endif

View File

@@ -0,0 +1,13 @@
# Sweet16 V1
A 4x4 numpad/macro pad sold by 1up Keyboards - designed by Bishop Keyboards
* Keyboard Maintainer: QMK Community
* Hardware Supported: Sweet16 V1 PCB
* Hardware Availability: [1up Keyboards](https://1upkeyboards.com/)
Make example for this keyboard (after setting up your build environment):
make 1upkeyboards/sweet16/v1:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View File

@@ -0,0 +1,5 @@
MCU = atmega32u4
BOOTLOADER = caterina
LINK_TIME_OPTIMIZATION_ENABLE=yes
RGBLIGHT_ENABLE = yes
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality

View File

@@ -0,0 +1,21 @@
#include "v1.h"
void led_set_kb(uint8_t usb_led) {
#ifndef CONVERT_TO_PROTON_C
/* Map RXLED to USB_LED_NUM_LOCK */
if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) {
setPinOutput(B0);
writePinLow(B0);
} else {
setPinInput(B0);
}
/* Map TXLED to USB_LED_CAPS_LOCK */
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
setPinOutput(D5);
writePinLow(D5);
} else {
setPinInput(D5);
}
#endif
}

View File

@@ -0,0 +1,30 @@
#pragma once
#include "quantum.h"
// Any changes to the layout names and/or definitions must also be made to info.json
#define LAYOUT_ortho_4x4( \
K00, K01, K02, K03, \
K10, K11, K12, K13, \
K20, K21, K22, K23, \
K30, K31, K32, K33 \
) { \
{ K00, K01, K02, K03 }, \
{ K10, K11, K12, K13 }, \
{ K20, K21, K22, K23 }, \
{ K30, K31, K32, K33 } \
}
#define LAYOUT_numpad_4x4( \
K00, K01, K02, K03, \
K10, K11, K12, \
K20, K21, K22, K23, \
K31, K32 \
) { \
{ K00, K01, K02, K03 }, \
{ K10, K11, K12, KC_NO }, \
{ K20, K21, K22, K23 }, \
{ KC_NO, K31, K32, KC_NO } \
}

View File

@@ -0,0 +1,31 @@
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define PRODUCT_ID 0x2011
#define DEVICE_VER 0x0001
/* key matrix pins */
#define MATRIX_ROW_PINS { D4, D1, E6, B5 }
#define MATRIX_COL_PINS { F7, F6, D2, D3 }
#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION ROW2COL
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
/* Encoder pins */
#define ENCODERS_PAD_A { F4 }
#define ENCODERS_PAD_B { F5 }
#define ENCODER_RESOLUTION 4
/* Underglow options */
#define RGB_DI_PIN F4
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 1
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8

View File

@@ -0,0 +1,8 @@
#include "promicro.h"
#include "encoder.h"
#ifdef ENCODER_ENABLED
void encoder_update_kb(int8_t index, bool clockwise) {
encoder_update_user(index, clockwise);
}
#endif

View File

@@ -0,0 +1,30 @@
#pragma once
#include "quantum.h"
// Any changes to the layout names and/or definitions must also be made to info.json
#define LAYOUT_ortho_4x4( \
K00, K01, K02, K03, \
K10, K11, K12, K13, \
K20, K21, K22, K23, \
K30, K31, K32, K33 \
) { \
{ K00, K01, K02, K03 }, \
{ K10, K11, K12, K13 }, \
{ K20, K21, K22, K23 }, \
{ K30, K31, K32, K33 } \
}
#define LAYOUT_numpad_4x4( \
K00, K01, K02, K03, \
K10, K11, K12, \
K20, K21, K22, K23, \
K31, K32 \
) { \
{ K00, K01, K02, K03 }, \
{ K10, K11, K12, KC_NO }, \
{ K20, K21, K22, K23 }, \
{ KC_NO, K31, K32, KC_NO } \
}

View File

@@ -0,0 +1,13 @@
# Sweet16 V2 (Pro Micro)
A 4x4 numpad/macro pad sold by 1up Keyboards - designed by Clueboard
* Keyboard Maintainer: skullydazed
* Hardware Supported: Sweet16 V2 PCB, Pro Micro
* Hardware Availability: [1up Keyboards](https://1upkeyboards.com/)
Make example for this keyboard (after setting up your build environment):
make 1upkeyboards/sweet16/v2/promicro:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View File

@@ -0,0 +1,10 @@
MCU = atmega32u4
BOOTLOADER = caterina
LINK_TIME_OPTIMIZATION_ENABLE=yes
## Features
CONSOLE_ENABLE = yes
## On a Pro Micro you have to choose between underglow and the rotary encoder.
RGBLIGHT_ENABLE = no
ENCODER_ENABLE = yes

View File

@@ -0,0 +1,20 @@
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define PRODUCT_ID 0x2011
#define DEVICE_VER 0x0001
/* key matrix pins */
#define MATRIX_ROW_PINS { B5, B7, B2, B0 }
#define MATRIX_COL_PINS { B8, A0, A10, A9 }
#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION ROW2COL
/* Encoder pins */
#define ENCODERS_PAD_A { A2 }
#define ENCODERS_PAD_B { A1 }
#define ENCODER_RESOLUTION 4

View File

@@ -0,0 +1 @@
#include "proton_c.h"

View File

@@ -0,0 +1,30 @@
#pragma once
#include "quantum.h"
// Any changes to the layout names and/or definitions must also be made to info.json
#define LAYOUT_ortho_4x4( \
K00, K01, K02, K03, \
K10, K11, K12, K13, \
K20, K21, K22, K23, \
K30, K31, K32, K33 \
) { \
{ K00, K01, K02, K03 }, \
{ K10, K11, K12, K13 }, \
{ K20, K21, K22, K23 }, \
{ K30, K31, K32, K33 } \
}
#define LAYOUT_numpad_4x4( \
K00, K01, K02, K03, \
K10, K11, K12, \
K20, K21, K22, K23, \
K31, K32 \
) { \
{ K00, K01, K02, K03 }, \
{ K10, K11, K12, KC_NO }, \
{ K20, K21, K22, K23 }, \
{ KC_NO, K31, K32, KC_NO } \
}

View File

@@ -0,0 +1,13 @@
# Sweet16 V2 (Proton C)
A 4x4 numpad/macro pad sold by 1up Keyboards - designed by Clueboard
* Keyboard Maintainer: skullydazed
* Hardware Supported: Sweet16 V2 PCB, Proton C
* Hardware Availability: [1up Keyboards](https://1upkeyboards.com/)
Make example for this keyboard (after setting up your build environment):
make 1upkeyboards/sweet16/v2/proton_c:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View File

@@ -0,0 +1,6 @@
MCU = STM32F303
## Features
CONSOLE_ENABLE = yes
ENCODER_ENABLE = yes
AUDIO_ENABLE = yes

View File

@@ -0,0 +1,2 @@
#define UNICODE_SELECTED_MODES UC_LNX, UC_OSX, UC_WIN, UC_WINC
#define TAPPING_TERM 300

View File

@@ -1,31 +1,53 @@
#include QMK_KEYBOARD_H
enum custom_keycodes {
DISSA,
SHRUG
enum tapdance_keycodes {
TD_KEY_1,
TD_KEY_2,
};
void dance_key_one (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
send_unicode_hex_string("00AF 005C 005F 0028 30C4 0029 005F 002F 00AF"); // ¯\_(ツ)_/¯
SEND_STRING(SS_TAP(X_ENTER));
reset_tap_dance (state);
} else if (state->count == 2) {
cycle_unicode_input_mode(+1);
reset_tap_dance (state);
}
}
void dance_key_two (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
send_unicode_hex_string("0CA0 005F 0CA0"); // ಠ_ಠ
SEND_STRING(SS_TAP(X_ENTER));
reset_tap_dance (state);
} else if (state->count == 2) {
send_unicode_hex_string("0028 30CE 0CA0 75CA 0CA0 0029 30CE 5F61 253B 2501 253B"); // (ノಠ痊ಠ)ノ彡┻━┻
SEND_STRING(SS_TAP(X_ENTER));
reset_tap_dance (state);
} else if (state->count == 3) {
send_unicode_hex_string("256D 2229 256E 0028 002D 005F 002D 0029 256D 2229 256E"); // ╭∩╮(-_-)╭∩╮
SEND_STRING(SS_TAP(X_ENTER));
reset_tap_dance (state);
} else if (state->count == 4) {
send_unicode_hex_string("0028 3065 FFE3 0020 00B3 FFE3 0029 3065"); // (づ ̄ ³ ̄)づ
SEND_STRING(SS_TAP(X_ENTER));
reset_tap_dance (state);
} else if (state->count == 5) {
send_unicode_hex_string("0028 FE3A FE39 FE3A 0029"); // (︺︹︺)
SEND_STRING(SS_TAP(X_ENTER));
reset_tap_dance (state);
}
}
qk_tap_dance_action_t tap_dance_actions[] = {
[TD_KEY_1] = ACTION_TAP_DANCE_FN(dance_key_one),
[TD_KEY_2] = ACTION_TAP_DANCE_FN(dance_key_two),
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
SHRUG,
DISSA
)
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case SHRUG:
if (record->event.pressed) {
send_unicode_hex_string("00AF 005C 005F 0028 30C4 0029 005F 002F 00AF");
} else {
}
break;
case DISSA:
if (record->event.pressed) {
send_unicode_hex_string("0CA0 005F 0CA0");
} else {
}
break;
}
return true;
[0] = LAYOUT(
TD(TD_KEY_1),
TD(TD_KEY_2)
),
};

View File

@@ -1,2 +1,39 @@
# Emoji Keymap
![Picture](https://i.imgur.com/1zEZ9Lq.png)
# Unicode Setup
Unicode input in QMK works by inputting a sequence of characters to the
OS, sort of like a macro. Unfortunately, the way this is done differs
for each platform. Specifically, each platform requires a different
combination of keys to trigger Unicode input. Therefore, a
corresponding input mode has to be set in QMK.
Documentation: [Feature Unicode](https://beta.docs.qmk.fm/features/feature_unicode#input-modes)
On this keymap the default unicode mode it's `UC_LNX`.
You can change it permanently tapping 2 times the KeyOne to select the next mode.
## Unicode Mode List
- UC_LNX
- UC_OSX
- UC_WIN
- UC_WINC
# Keymap
To add more functionality to this Minimal Keyboard,
it's implemented the tap dance feature, so pressing the same key
multiples times will produce different emojis.
## Key One
- 1 Tap: `¯\_(ツ)_/¯`
- 2 Taps: Switch Unicode Input Type
## Key Two
- 1 Tap: `ಠ_ಠ`
- 2 Taps: `(ノಠ痊ಠ)ノ彡┻━┻`
- 3 Taps: `╭∩╮(-_-)╭∩╮`
- 4 Taps: `(づ ̄ ³ ̄)づ`
- 5 Taps: `(︺︹︺)`

View File

@@ -0,0 +1,2 @@
UNICODE_ENABLE = yes # Unicode
TAP_DANCE_ENABLE = yes # Tap Dance

View File

@@ -0,0 +1,54 @@
/* Copyright 2019 Arda Kilicdagi
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "4pack.h"
// Optional override functions below.
// You can leave any or all of these undefined.
// These are only required if you want to perform custom actions.
void matrix_init_kb(void) {
// put your keyboard start-up code here
// runs once when the firmware starts up
setPinOutput(F4); // cathodes
setPinOutput(F5); // cathodes
// Do the rest
matrix_init_user();
}
/*
void matrix_scan_kb(void) {
// put your looping keyboard code here
// runs every cycle (a lot)
matrix_scan_user();
}
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
// put your per-action keyboard code here
// runs for every action, just before processing by the firmware
return process_record_user(keycode, record);
}
void led_set_kb(uint8_t usb_led) {
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
led_set_user(usb_led);
}
*/

View File

@@ -0,0 +1,33 @@
/* Copyright 2019 Arda Kilicdagi
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "quantum.h"
/* This a shortcut to help you visually see your layout.
*
* The first section contains all of the arguments representing the physical
* layout of the board and position of the keys.
*
* The second converts the arguments into a two-dimensional array which
* represents the switch matrix.
*/
#define LAYOUT( \
k00, k01, k02, k03 \
) \
{ \
{ k00, k01, k02, k03 }, \
}

View File

@@ -0,0 +1,257 @@
/*
Copyright 2019 Arda Kilicdagi
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x0000
#define DEVICE_VER 0x0001
#define MANUFACTURER 40percentclub
#define PRODUCT 4pack
#define DESCRIPTION A 1x4 custom macropad
/* key matrix size */
#define MATRIX_ROWS 1
#define MATRIX_COLS 4
/*
* Keyboard Matrix Assignments
*
* Change this to how you wired your keyboard
* COLS: AVR pins used for columns, left to right
* ROWS: AVR pins used for rows, top to bottom
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
*/
// #define MATRIX_ROW_PINS { B0 } // B0 equivalents the ground pin
// #define MATRIX_COL_PINS { E6, D7, C6, D4 }
#define DIRECT_PINS { \
{ E6, D7, C6, D4 } \
}
#define UNUSED_PINS
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
/*
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
*/
// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
// #define BACKLIGHT_PIN B7
// #define BACKLIGHT_BREATHING
// #define BACKLIGHT_LEVELS 3
#define BACKLIGHT_LED_COUNT 2
#undef BACKLIGHT_PIN
#define BACKLIGHT_PINS { F6, F7 }
// #define RGB_DI_PIN E2
// #ifdef RGB_DI_PIN
// #define RGBLED_NUM 16
// #define RGBLIGHT_HUE_STEP 8
// #define RGBLIGHT_SAT_STEP 8
// #define RGBLIGHT_VAL_STEP 8
// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
// /*== all animations enable ==*/
// #define RGBLIGHT_ANIMATIONS
// /*== or choose animations ==*/
// #define RGBLIGHT_EFFECT_BREATHING
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
// #define RGBLIGHT_EFFECT_SNAKE
// #define RGBLIGHT_EFFECT_KNIGHT
// #define RGBLIGHT_EFFECT_CHRISTMAS
// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
// #define RGBLIGHT_EFFECT_RGB_TEST
// #define RGBLIGHT_EFFECT_ALTERNATING
// /*== customize breathing effect ==*/
// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
// /*==== use exp() and sin() ====*/
// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
// #endif
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
*/
// #define GRAVE_ESC_CTRL_OVERRIDE
/*
* Force NKRO
*
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
* makefile for this to work.)
*
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
* until the next keyboard reset.
*
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
* fully operational during normal computer usage.
*
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
* power-up.
*
*/
//#define FORCE_NKRO
/*
* Magic Key Options
*
* Magic keys are hotkey commands that allow control over firmware functions of
* the keyboard. They are best used in combination with the HID Listen program,
* found here: https://www.pjrc.com/teensy/hid_listen.html
*
* The options below allow the magic key functionality to be changed. This is
* useful if your keyboard/keypad is missing keys and you want magic key support.
*
*/
/* key combination for magic key command */
/* defined by default; to change, uncomment and set to the combination you want */
// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
/* control how magic key switches layers */
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
/* override magic key keymap */
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
//#define MAGIC_KEY_HELP H
//#define MAGIC_KEY_HELP_ALT SLASH
//#define MAGIC_KEY_DEBUG D
//#define MAGIC_KEY_DEBUG_MATRIX X
//#define MAGIC_KEY_DEBUG_KBD K
//#define MAGIC_KEY_DEBUG_MOUSE M
//#define MAGIC_KEY_VERSION V
//#define MAGIC_KEY_STATUS S
//#define MAGIC_KEY_CONSOLE C
//#define MAGIC_KEY_LAYER0 0
//#define MAGIC_KEY_LAYER0_ALT GRAVE
//#define MAGIC_KEY_LAYER1 1
//#define MAGIC_KEY_LAYER2 2
//#define MAGIC_KEY_LAYER3 3
//#define MAGIC_KEY_LAYER4 4
//#define MAGIC_KEY_LAYER5 5
//#define MAGIC_KEY_LAYER6 6
//#define MAGIC_KEY_LAYER7 7
//#define MAGIC_KEY_LAYER8 8
//#define MAGIC_KEY_LAYER9 9
//#define MAGIC_KEY_BOOTLOADER B
//#define MAGIC_KEY_BOOTLOADER_ALT ESC
//#define MAGIC_KEY_LOCK CAPS
//#define MAGIC_KEY_EEPROM E
//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
//#define MAGIC_KEY_NKRO N
//#define MAGIC_KEY_SLEEP_LED Z
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
/*
* MIDI options
*/
/* Prevent use of disabled MIDI features in the keymap */
//#define MIDI_ENABLE_STRICT 1
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
//#define MIDI_BASIC
/* enable advanced MIDI features:
- MIDI notes can be added to the keymap
- Octave shift and transpose
- Virtual sustain, portamento, and modulation wheel
- etc.
*/
//#define MIDI_ADVANCED
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
/*
* HD44780 LCD Display Configuration
*/
/*
#define LCD_LINES 2 //< number of visible lines of the display
#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
#if LCD_IO_MODE
#define LCD_PORT PORTB //< port for the LCD lines
#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
#define LCD_RS_PORT LCD_PORT //< port for RS line
#define LCD_RS_PIN 3 //< pin for RS line
#define LCD_RW_PORT LCD_PORT //< port for RW line
#define LCD_RW_PIN 2 //< pin for RW line
#define LCD_E_PORT LCD_PORT //< port for Enable line
#define LCD_E_PIN 1 //< pin for Enable line
#endif
*/
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0

View File

@@ -0,0 +1,12 @@
{
"keyboard_name": "4pack",
"url": "",
"maintainer": "qmk",
"width": 4,
"height": 1,
"layouts": {
"LAYOUT": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}]
}
}
}

View File

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

View File

@@ -0,0 +1,26 @@
/* Copyright 2019 Arda Kilicdagi
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT( /* Base */
KC_A, KC_S, KC_D, KC_F
),
};
void matrix_init_user(void) { }

View File

@@ -0,0 +1 @@
# The default keymap for 4pack

View File

@@ -0,0 +1,17 @@
# 4 Pack
![4pack](https://i.imgur.com/rioXXq5l.jpg)
A 4-key macropad PCB with its switch and LED pins wired directly to microcontroller IO pins.
You can find the main blog post about this macropad [here](http://www.40percent.club/2017/07/4-pack.html), also the Gerber files and other documentation is located [here](https://git.40percent.club/di0ib/Misc/src/branch/master/4pack).
Keyboard Maintainer: [Arda Kilicdagi](http://github.com/ardakilic), [The QMK Community](https://github.com/qmk)
Hardware Supported: 4 Pack PCB, Pro Micro
Hardware Availability: [40percent.club](https://git.40percent.club/di0ib/Misc/src/branch/master/4pack)
Make example for this macropad (after setting up your build environment):
make 40percentclub/4pack:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View File

@@ -0,0 +1,33 @@
# MCU name
MCU = atmega32u4
# 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
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs

View File

@@ -0,0 +1,111 @@
#include QMK_KEYBOARD_H
#include "drashna.h"
#include "analog.c"
#include "pointing_device.h"
#include "pincontrol.h"
#define KC_X0 LT(_FN, KC_ESC)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
KC_VOLU, KC_MPLY, KC_MPRV, RESET,
KC_VOLD, KC_MUTE, KC_MNXT, RESET
),
};
// Joystick
// Set Pins
uint8_t xPin = 8; // VRx / /B4
uint8_t yPin = 7; // VRy // B5
uint8_t swPin = E6; // SW
// Set Parameters
uint16_t minAxisValue = 0;
uint16_t maxAxisValue = 1023;
uint8_t maxCursorSpeed = 2;
uint8_t precisionSpeed = 1;
uint8_t speedRegulator = 20; // Lower Values Create Faster Movement
int8_t xPolarity = 1;
int8_t yPolarity = 1;
uint8_t cursorTimeout = 10;
int16_t xOrigin, yOrigin;
uint16_t lastCursor = 0;
int16_t axisCoordinate(uint8_t pin, uint16_t origin) {
int8_t direction;
int16_t distanceFromOrigin;
int16_t range;
int16_t position = analogRead(pin);
if (origin == position) {
return 0;
} else if (origin > position) {
distanceFromOrigin = origin - position;
range = origin - minAxisValue;
direction = -1;
} else {
distanceFromOrigin = position - origin;
range = maxAxisValue - origin;
direction = 1;
}
float percent = (float)distanceFromOrigin / range;
int16_t coordinate = (int16_t)(percent * 100);
if (coordinate < 0) {
return 0;
} else if (coordinate > 100) {
return 100 * direction;
} else {
return coordinate * direction;
}
}
int8_t axisToMouseComponent(uint8_t pin, int16_t origin, uint8_t maxSpeed, int8_t polarity) {
int coordinate = axisCoordinate(pin, origin);
if (coordinate == 0) {
return 0;
} else {
float percent = (float)coordinate / 100;
if (keyboard_report->mods & MOD_BIT(KC_LSFT)) {
return percent * precisionSpeed * polarity * (abs(coordinate) / speedRegulator);
} else {
return percent * maxCursorSpeed * polarity * (abs(coordinate) / speedRegulator);
}
}
}
void pointing_device_task(void) {
report_mouse_t report = pointing_device_get_report();
// todo read as one vector
if (timer_elapsed(lastCursor) > cursorTimeout) {
lastCursor = timer_read();
report.x = axisToMouseComponent(xPin, xOrigin, maxCursorSpeed, xPolarity);
report.y = axisToMouseComponent(yPin, yOrigin, maxCursorSpeed, yPolarity);
}
//
if (!readPin(swPin)) {
report.buttons |= MOUSE_BTN1;
} else {
report.buttons &= ~MOUSE_BTN1;
}
pointing_device_set_report(report);
pointing_device_send();
}
void matrix_init_keymap(void) {
// init pin? Is needed?
setPinInputHigh(swPin);
// Account for drift
xOrigin = analogRead(xPin);
yOrigin = analogRead(yPin);
}

View File

@@ -0,0 +1,5 @@
POINTING_DEVICE_ENABLE = yes
RGBLIGHT_ENABLE = no
CONSOLE_ENABLE = no
BOOTLOADER = qmk-dfu

View File

@@ -0,0 +1,17 @@
# Acheron Aχξρων 40-SM-O-MX-TH-WI (Codename "SharkPCB") QMK firmware
<p align="center">
<img align="middle" src="https://raw.githubusercontent.com/Gondolindrim/acheronLibrary/master/graphics/acheronLong.png" width="400">
</p>
This is the QMK firmware repository for the Shark, updated until [revision Alpha](https://github.com/Gondolindrim/SharkPCB/releases/tag/Alpha).
The SharkPCB is an Open-Hardware guidelines compliant PCB which files can be found at [this link](https://github.com/Gondolindrim/SharkPCB). Its designer and maintainer is [Gondolindrim](https://github.com/Gondolindrim).
See the [AcheronDocs](https://gondolindrim.github.io/AcheronDocs/shark/intro.html) page for the SharkPCB full documentation.
Make example for this keyboard (after setting up your build environment):
make acheron/shark:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View File

@@ -0,0 +1,261 @@
/*
Copyright 2019 Alvaro Volpato and Steve
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0xAC11
#define DEVICE_VER 0x0001
#define MANUFACTURER AcheronProject
#define PRODUCT SharkPCB
#define DESCRIPTION Ortho 40 PCB
/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 12
/*
* Keyboard Matrix Assignments
*
* Change this to how you wired your keyboard
* COLS: AVR pins used for columns, left to right
* ROWS: AVR pins used for rows, top to bottom
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
*/
#define MATRIX_ROW_PINS {B4, A15, B10, B2}
#define MATRIX_COL_PINS {B1, B12, A1, A7, A5, A4, A3, A2, A0, C15, C14, C13}
//{C13, C14, C15, A0,A2,A3,A4,A5,A6, A1,B12,B1}
/* Unused pins, in the default layout, are:
EncA (B6) because it is not used in the default PCB
All Extra pins (A8, B15, B14, B13, B3, B5, B8, B9) , for the same reason;
B0, which is unconnected on the PCB
*/
//#define UNUSED_PINS { B0, B6, B13, B14, B15, B8, B9, B5, B3 }
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
#define BACKLIGHT_PIN B0
#define BACKLIGHT_PWM_DRIVER PWMD3
#define BACKLIGHT_PWM_CHANNEL 3
/*
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
*/
//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
// #define BACKLIGHT_PIN B7
// #define BACKLIGHT_BREATHING
// #define BACKLIGHT_LEVELS 3
// #define RGB_DI_PIN E2
// #ifdef RGB_DI_PIN
// #define RGBLED_NUM 16
// #define RGBLIGHT_HUE_STEP 8
// #define RGBLIGHT_SAT_STEP 8
// #define RGBLIGHT_VAL_STEP 8
// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
// /*== all animations enable ==*/
// #define RGBLIGHT_ANIMATIONS
// /*== or choose animations ==*/
// #define RGBLIGHT_EFFECT_BREATHING
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
// #define RGBLIGHT_EFFECT_SNAKE
// #define RGBLIGHT_EFFECT_KNIGHT
// #define RGBLIGHT_EFFECT_CHRISTMAS
// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
// #define RGBLIGHT_EFFECT_RGB_TEST
// #define RGBLIGHT_EFFECT_ALTERNATING
// /*== customize breathing effect ==*/
// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
// /*==== use exp() and sin() ====*/
// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
// #endif
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
/* number of backlight levels */
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
*/
// #define GRAVE_ESC_CTRL_OVERRIDE
/*
* Force NKRO
*
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
* makefile for this to work.)
*
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
* until the next keyboard reset.
*
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
* fully operational during normal computer usage.
*
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
* power-up.
*
*/
//#define FORCE_NKRO
/*
* Magic Key Options
*
* Magic keys are hotkey commands that allow control over firmware functions of
* the keyboard. They are best used in combination with the HID Listen program,
* found here: https://www.pjrc.com/teensy/hid_listen.html
*
* The options below allow the magic key functionality to be changed. This is
* useful if your keyboard/keypad is missing keys and you want magic key support.
*
*/
/* key combination for magic key command */
/* defined by default; to change, uncomment and set to the combination you want */
// #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))
/* control how magic key switches layers */
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
/* override magic key keymap */
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
//#define MAGIC_KEY_HELP H
//#define MAGIC_KEY_HELP_ALT SLASH
//#define MAGIC_KEY_DEBUG D
//#define MAGIC_KEY_DEBUG_MATRIX X
//#define MAGIC_KEY_DEBUG_KBD K
//#define MAGIC_KEY_DEBUG_MOUSE M
//#define MAGIC_KEY_VERSION V
//#define MAGIC_KEY_STATUS S
//#define MAGIC_KEY_CONSOLE C
//#define MAGIC_KEY_LAYER0 0
//#define MAGIC_KEY_LAYER0_ALT GRAVE
//#define MAGIC_KEY_LAYER1 1
//#define MAGIC_KEY_LAYER2 2
//#define MAGIC_KEY_LAYER3 3
//#define MAGIC_KEY_LAYER4 4
//#define MAGIC_KEY_LAYER5 5
//#define MAGIC_KEY_LAYER6 6
//#define MAGIC_KEY_LAYER7 7
//#define MAGIC_KEY_LAYER8 8
//#define MAGIC_KEY_LAYER9 9
//#define MAGIC_KEY_BOOTLOADER B
//#define MAGIC_KEY_BOOTLOADER_ALT ESC
//#define MAGIC_KEY_LOCK CAPS
//#define MAGIC_KEY_EEPROM E
//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
//#define MAGIC_KEY_NKRO N
//#define MAGIC_KEY_SLEEP_LED Z
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
/*
* MIDI options
*/
/* Prevent use of disabled MIDI features in the keymap */
//#define MIDI_ENABLE_STRICT 1
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
//#define MIDI_BASIC
/* enable advanced MIDI features:
- MIDI notes can be added to the keymap
- Octave shift and transpose
- Virtual sustain, portamento, and modulation wheel
- etc.
*/
//#define MIDI_ADVANCED
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
/*
* HD44780 LCD Display Configuration
*/
/*
#define LCD_LINES 2 //< number of visible lines of the display
#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
#if LCD_IO_MODE
#define LCD_PORT PORTB //< port for the LCD lines
#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
#define LCD_RS_PORT LCD_PORT //< port for RS line
#define LCD_RS_PIN 3 //< pin for RS line
#define LCD_RW_PORT LCD_PORT //< port for RW line
#define LCD_RW_PIN 2 //< pin for RW line
#define LCD_E_PORT LCD_PORT //< port for Enable line
#define LCD_E_PIN 1 //< pin for Enable line
#endif
*/
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0

View File

@@ -0,0 +1,63 @@
{
"keyboard_name": "SharkPCB",
"keyboard_folder": "acheron/shark",
"url": "https://gondolindrim.github.io/AcheronDocs/shark/intro.html",
"maintainer": "Gondolindrim",
"width": 12,
"height": 4,
"layouts": {
"LAYOUT_ortho_4x12": {
"key_count": 48,
"layout": [
{ "x": 0, "y": 0 },
{ "x": 1, "y": 0 },
{ "x": 2, "y": 0 },
{ "x": 3, "y": 0 },
{ "x": 4, "y": 0 },
{ "x": 5, "y": 0 },
{ "x": 6, "y": 0 },
{ "x": 7, "y": 0 },
{ "x": 8, "y": 0 },
{ "x": 9, "y": 0 },
{ "x": 10, "y": 0 },
{ "x": 11, "y": 0 },
{ "x": 0, "y": 1 },
{ "x": 1, "y": 1 },
{ "x": 2, "y": 1 },
{ "x": 3, "y": 1 },
{ "x": 4, "y": 1 },
{ "x": 5, "y": 1 },
{ "x": 6, "y": 1 },
{ "x": 7, "y": 1 },
{ "x": 8, "y": 1 },
{ "x": 9, "y": 1 },
{ "x": 10, "y": 1 },
{ "x": 11, "y": 1 },
{ "x": 0, "y": 2 },
{ "x": 1, "y": 2 },
{ "x": 2, "y": 2 },
{ "x": 3, "y": 2 },
{ "x": 4, "y": 2 },
{ "x": 5, "y": 2 },
{ "x": 6, "y": 2 },
{ "x": 7, "y": 2 },
{ "x": 8, "y": 2 },
{ "x": 9, "y": 2 },
{ "x": 10, "y": 2 },
{ "x": 11, "y": 2 },
{ "x": 0, "y": 3 },
{ "x": 1, "y": 3 },
{ "x": 2, "y": 3 },
{ "x": 3, "y": 3 },
{ "x": 4, "y": 3 },
{ "x": 5, "y": 3 },
{ "x": 6, "y": 3 },
{ "x": 7, "y": 3 },
{ "x": 8, "y": 3 },
{ "x": 9, "y": 3 },
{ "x": 10, "y": 3 },
{ "x": 11, "y": 3 }
]
}
}
}

View File

@@ -0,0 +1,105 @@
/* Copyright 2019
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layers {
_QWERTY = 0,
_LOWER,
_RAISE,
_ADJUST,
};
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
#define ADJUST MO(_ADJUST)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,-----------------------------------------------------------------------------------.
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Esc | A | S | D | F | G | H | J | K | L | ; | " |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Ctrl | Alt | GUI | |Lower | Space| Space|Raise | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
[_QWERTY] = LAYOUT_ortho_4x12( \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \
KC_LCTL, KC_LALT, KC_LGUI, _______, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
),
/* Lower
* ,-----------------------------------------------------------------------------------.
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | Next | Vol- | Vol+ | Play |
* `-----------------------------------------------------------------------------------'
*/
[_LOWER] = LAYOUT_ortho_4x12( \
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, BL_TOGG, BL_INC , BL_DEC , _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
),
/* Raise
* ,-----------------------------------------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | Next | Vol- | Vol+ | Play |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = LAYOUT_ortho_4x12( \
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
),
/* Adjust (Lower + Raise)
* ,-----------------------------------------------------------------------------------.
* | | Reset| | | | | | | | | | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | | | | | | | | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_ADJUST] = LAYOUT_ortho_4x12( \
_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
_______, _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______,\
_______, BL_TOGG, BL_INC, BL_DEC , _______, _______, _______, _______, _______, _______, _______, _______ \
)
};
layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}

View File

@@ -0,0 +1,25 @@
# MCU name
MCU = STM32F303
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_4x12

View File

@@ -0,0 +1,51 @@
/* Copyright 2019 Álvaro "Gondolindrim" Volpato
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "shark.h"
// Optional override functions below.
// You can leave any or all of these undefined.
// These are only required if you want to perform custom actions.
/*
void matrix_init_kb(void) {
// put your keyboard start-up code here
// runs once when the firmware starts up
matrix_init_user();
}
void matrix_scan_kb(void) {
// put your looping keyboard code here
// runs every cycle (a lot)
matrix_scan_user();
}
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
// put your per-action keyboard code here
// runs for every action, just before processing by the firmware
return process_record_user(keycode, record);
}
void led_set_kb(uint8_t usb_led) {
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
led_set_user(usb_led);
}
*/

View File

@@ -0,0 +1,39 @@
/* Copyright 2019 Álvaro "Gondolindrim" Volpato
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "quantum.h"
/* This a shortcut to help you visually see your layout.
*
* The first section contains all of the arguments representing the physical
* layout of the board and position of the keys.
*
* The second converts the arguments into a two-dimensional array which
* represents the switch matrix.
*/
#define LAYOUT_ortho_4x12( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B \
) \
{ \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B } \
}

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