qmk_firmware/docs
Drashna Jaelre dab4967f1b
Add Dip Switch as a core feature (#6140)
* Add Dip Switches as a core feature

* Add documentation for Dip Switch feature

* Update Preonic Rev3 to use new feature and remove custom matrix

* Apply suggestions from code review

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

* Remove custom matrix line completely

Rather than just disabling it

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

* DIP changes

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

* Use better check for DIP Switch configuration

* Add to show features

* Add bitmask callback for dip switch

* Fix OLKB Boards dip switch config

* Update docs to include bitmask example

* Fix comments/documentation

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

* Fix issues with docs and use example from @tuzonghua

* Fix wording

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

* Fix example to use proper formatting

Bad, BAAAAAAD drashna!!!

* Handle dip switch initialization better
2019-09-03 08:34:31 -07:00
..
ChangeLog consistency 2019-08-30 15:01:52 -07:00
gitbook/images
zh Adds Proton C Conversion (#4661) 2019-01-10 08:22:57 -08:00
zh-cn Add Dip Switch as a core feature (#6140) 2019-09-03 08:34:31 -07:00
.nojekyll
CNAME
LANGS.md Second try at configuring i18n for docsify and gitbook (#4531) 2018-12-02 15:12:54 -05:00
README.md
_summary.md Add Dip Switch as a core feature (#6140) 2019-09-03 08:34:31 -07:00
arm_debugging.md ARM SWD guide 2018-10-05 11:03:30 -07:00
becoming_a_qmk_collaborator.md Tweak the wording in "Becoming a QMK Collaborator" 2018-08-30 07:39:58 -04:00
breaking_changes.md Merge point for 2019 Aug 30 Breaking Change 2019-08-30 15:01:52 -07:00
cli.md CLI command to format C code 2019-08-31 08:50:25 -07:00
coding_conventions_c.md QMK CLI and JSON keymap support (#6176) 2019-07-15 12:14:27 -07:00
coding_conventions_python.md QMK CLI and JSON keymap support (#6176) 2019-07-15 12:14:27 -07:00
compatible_microcontrollers.md
config_options.md Improve backlight PWM pin support (#6202) 2019-08-08 13:12:12 -07:00
contributing.md QMK CLI and JSON keymap support (#6176) 2019-07-15 12:14:27 -07:00
custom_quantum_functions.md Additional changes for Layer State typedef compatibility (#5906) 2019-08-21 17:07:49 -07:00
documentation_best_practices.md
documentation_templates.md Update Document Templates to reflect newer wording and URLs (#4006) 2018-09-28 12:04:30 -04:00
driver_installation_zadig.md Add Zadig 101 to docs (#6585) 2019-08-23 23:38:21 -07:00
faq.md
faq_build.md Add Zadig 101 to docs (#6585) 2019-08-23 23:38:21 -07:00
faq_debug.md Remove superfluous JTAG disable code (#6445) 2019-08-20 22:18:52 -07:00
faq_general.md
faq_keymap.md Replace instances of KEYMAP with LAYOUT 2019-02-21 23:19:26 -08:00
feature_advanced_keycodes.md fix typo 2019-07-01 15:32:59 +09:00
feature_audio.md Added keycodes for swapping and unswapping the Control and OS keys (#6110) 2019-08-21 17:07:08 -07:00
feature_auto_shift.md
feature_backlight.md Improve backlight PWM pin support (#6202) 2019-08-08 13:12:12 -07:00
feature_bluetooth.md Update Bluetooth docs (#4062) 2018-10-07 11:23:41 -07:00
feature_bootmagic.md Added keycodes for swapping and unswapping the Control and OS keys (#6110) 2019-08-21 17:07:08 -07:00
feature_combo.md Change "yu" to "you" in combo docs (#6510) 2019-08-08 18:10:16 +01:00
feature_command.md Update IS_COMMAND definitions to use MOD_MASK_SHIFT (#6348) 2019-07-20 13:21:40 -07:00
feature_debounce_type.md Eager Per Row Debouncing added (added to Ergodox) (#5498) 2019-04-03 14:45:55 -07:00
feature_dip_switch.md Add Dip Switch as a core feature (#6140) 2019-09-03 08:34:31 -07:00
feature_dynamic_macros.md Docs: Adjust dynamic macro docs to include more than the planck (#3509) 2018-07-29 08:59:39 -07:00
feature_encoders.md Add support for different encoder pinout for right half of split keyboard (#6521) 2019-08-16 16:46:41 -07:00
feature_grave_esc.md Document an annoyance with Grave Escape and macOS Terminal (#5483) 2019-03-24 17:11:26 -07:00
feature_haptic_feedback.md Haptic feedback generalized - DRV2605 and solenoids (#4939) 2019-02-16 18:39:30 -08:00
feature_hd44780.md
feature_key_lock.md Docs: Format Key Lock documentation (#3538) 2018-07-31 18:07:50 -07:00
feature_layouts.md Add a mechanism for force building a particular community layout (#5027) 2019-02-14 20:14:26 -08:00
feature_leader_key.md Fix up process_leader to be a bit more optimized (#4662) 2018-12-20 16:54:06 -08:00
feature_led_matrix.md Add documentation for led matrix 2019-02-10 15:37:12 -08:00
feature_macros.md [Docs] Update Super ALT↯TAB to remove use of unregister_code16 (#5766) 2019-05-04 09:46:44 -07:00
feature_mouse_keys.md Update mouse keys docs (#5653) 2019-04-19 23:18:06 -07:00
feature_oled_driver.md Added OLED Display autoscroll during periods of OLED data inactivity (#6546) 2019-08-25 12:37:55 -07:00
feature_pointing_device.md
feature_ps2_mouse.md Circuitry sample for PS/2 Mouse (#3959) 2018-09-23 13:49:17 -07:00
feature_rgb_matrix.md [Docs] Add RGB Matrix default mode define info (#6564) 2019-08-19 15:03:05 -07:00
feature_rgblight.md Add effect range to rgblight.c (#5856) 2019-05-15 21:11:28 -07:00
feature_space_cadet.md Added mod carry over from press to release. (#5866) 2019-07-06 21:00:05 -07:00
feature_split_keyboard.md Add support for different encoder pinout for right half of split keyboard (#6521) 2019-08-16 16:46:41 -07:00
feature_stenography.md
feature_swap_hands.md fix swap_hands keycodes in documentation (#3588) 2018-08-07 14:20:29 -07:00
feature_tap_dance.md [Docs] Add Sections and MO(layer)/TG(layer) Example (#6308) 2019-07-25 11:53:19 -07:00
feature_terminal.md
feature_thermal_printer.md
feature_unicode.md [Docs] Clarify the rules.mk setup for Unicode (#6286) 2019-07-11 11:33:55 -07:00
feature_userspace.md Additional changes for Layer State typedef compatibility (#5906) 2019-08-21 17:07:49 -07:00
feature_velocikey.md Velocikey: Match RGB animation speed to typing speed (#3754) 2019-02-21 07:22:46 -08:00
features.md Add Dip Switch as a core feature (#6140) 2019-09-03 08:34:31 -07:00
flashing.md Add 'bootloadHID' flash target (#5587) 2019-08-24 08:35:11 -07:00
flashing_bootloadhid.md Add 'bootloadHID' flash target (#5587) 2019-08-24 08:35:11 -07:00
fuse.txt
getting_started_build_tools.md Change from avr-gcc@7 to @8 for Mac 2019-06-05 17:51:39 -07:00
getting_started_getting_help.md
getting_started_github.md Fix doc typo 2018-10-15 16:58:03 -07:00
getting_started_introduction.md [Docs] Update getting_started_introduction.md (#6037) 2019-05-31 14:44:27 -07:00
getting_started_make_guide.md Add 'bootloadHID' flash target (#5587) 2019-08-24 08:35:11 -07:00
getting_started_vagrant.md Configure Vagrant to use qmk_base_container (#6194) 2019-07-16 01:20:34 -07:00
hand_wire.md A better new_project.sh (#5191) 2019-04-27 16:42:16 -07:00
hardware.md
hardware_avr.md Reword a note about the MANUFACTURER and PRODUCT defines in hardware_avr.md (#6558) 2019-08-17 11:41:55 -07:00
hardware_drivers.md OLED Driver Feature 2019-04-20 08:05:10 -07:00
hardware_keyboard_guidelines.md Clarify LAYOUT vs LAYOUT_all 2019-02-08 15:13:20 -08:00
how_keyboards_work.md [Docs] Update how_keyboards_work.md (#6528) 2019-08-21 17:44:37 -07:00
i2c_driver.md Removed prescaler define from avr i2c, as it was impossible to use (#6617) 2019-08-30 17:47:11 -07:00
index.html Fix typo in Open Graph description for docs (#6641) 2019-09-02 07:35:02 -07:00
internals_defines.md
internals_gpio_control.md Grammatical fixes for GPIO Control doc (#4869) 2019-01-17 22:13:09 -08:00
internals_input_callback_reg.md
internals_midi_device.md
internals_midi_device_setup_process.md
internals_midi_util.md
internals_send_functions.md
internals_sysex_tools.md
isp_flashing_guide.md ISP Flashing Guide - atmega32a info (#4993) 2019-03-22 18:26:21 -07:00
keycodes.md Added keycodes for swapping and unswapping the Control and OS keys (#6110) 2019-08-21 17:07:08 -07:00
keycodes_basic.md Add new brightness aliases to keycodes_basic.md 2019-01-17 18:35:45 -08:00
keycodes_us_ansi_shifted.md Add caveats for shifted characters (#4192) 2018-10-22 14:57:15 -04:00
keymap.md [Docs] Smallish overhaul of the docs (#5281) 2019-03-18 14:22:02 -07:00
newbs.md Contribute the MechMerlin QMK Configurator docs (#4986) 2019-01-28 17:31:33 -08:00
newbs_best_practices.md Docs: Adding QMK Git Conventions doc; formatting cleanup on Learning Resources doc (#3902) 2018-10-18 15:12:11 -07:00
newbs_building_firmware.md Fix syntax for windows 2018-10-24 15:03:32 -07:00
newbs_building_firmware_configurator.md Update YouTube URL 2019-07-29 10:12:22 -07:00
newbs_flashing.md Add 'bootloadHID' flash target (#5587) 2019-08-24 08:35:11 -07:00
newbs_getting_started.md [Docs] Recursively clone qmk_firmware repo (#5378) 2019-03-18 14:22:33 -07:00
newbs_learn_more_resources.md Docs: Adding QMK Git Conventions doc; formatting cleanup on Learning Resources doc (#3902) 2018-10-18 15:12:11 -07:00
newbs_testing_debugging.md [Docs] Add examples to debugging docs (#5555) 2019-05-03 17:24:07 -07:00
other_eclipse.md [Docs] Add VSCode guide to docs (#5124) 2019-03-15 14:34:58 -07:00
other_vscode.md [Docs] Add VSCode guide to docs (#5124) 2019-03-15 14:34:58 -07:00
porting_your_keyboard_to_qmk_(arm_and_other_chibios_cpus).md Improve backlight PWM pin support (#6202) 2019-08-08 13:12:12 -07:00
power.txt
proton_c_conversion.md Adds Proton C Conversion (#4661) 2019-01-10 08:22:57 -08:00
python_development.md QMK CLI and JSON keymap support (#6176) 2019-07-15 12:14:27 -07:00
qmk.css
quantum_keycodes.md Added check for event pressed to clear space cadet (#5839) 2019-05-11 22:20:14 -07:00
redirects.json Docs: Format Space Cadet documentation (#3540) 2018-08-01 08:43:54 -07:00
ref_functions.md Additional changes for Layer State typedef compatibility (#5906) 2019-08-21 17:07:49 -07:00
reference_configurator_support.md Update reference_configurator_support.md 2019-05-31 11:54:01 -07:00
reference_glossary.md Fix more broken links to the HID spec 2018-10-17 16:51:51 -07:00
reference_info_json.md Add label to the info.json reference 2019-02-08 15:13:20 -08:00
sidebar.css
support.md Add support for PR and Issue templates to QMK_firmware GitHub (#4494) 2018-12-07 16:51:27 -08:00
sw.js
understanding_qmk.md [Docs] Smallish overhaul of the docs (#5281) 2019-03-18 14:22:02 -07:00
unit_testing.md
usb_nkro.txt

README.md

Quantum Mechanical Keyboard Firmware

Current Version Build Status Discord Docs Status GitHub contributors GitHub forks

What is QMK Firmware?

QMK (Quantum Mechanical Keyboard) is an open source community that maintains QMK Firmware, QMK Toolbox, qmk.fm, and these docs. QMK Firmware is a keyboard firmware based on the tmk_keyboard with some useful features for Atmel AVR controllers, and more specifically, the OLKB product line, the ErgoDox EZ keyboard, and the Clueboard product line. It has also been ported to ARM chips using ChibiOS. You can use it to power your own hand-wired or custom keyboard PCB.

How to Get It

If you plan on contributing a keymap, keyboard, or features to QMK, the easiest thing to do is fork the repo through Github, and clone your repo locally to make your changes, push them, then open a Pull Request from your fork.

Otherwise, you can either download it directly (zip, tar), or clone it via git (git@github.com:qmk/qmk_firmware.git), or https (https://github.com/qmk/qmk_firmware.git).

How to Compile

Before you are able to compile, you'll need to install an environment for AVR or/and ARM development. Once that is complete, you'll use the make command to build a keyboard and keymap with the following notation:

make planck/rev4:default

This would build the rev4 revision of the planck with the default keymap. Not all keyboards have revisions (also called subprojects or folders), in which case, it can be omitted:

make preonic:default

How to Customize

QMK has lots of features to explore, and a good deal of reference documentation to dig through. Most features are taken advantage of by modifying your keymap, and changing the keycodes.