qmk-firmware/docs
Vlad K a29ca1e7f1
Add support for ISSI drivers on both sides of a split keyboard (#13842)
* Gets RGB working on a split keyboard with IS31FL3733. Currently needs small tweak to re-enable WS2812

* Added helper function

* Trying to integrate the function

* Moved functionality into a macro

* Swapped conditional for a macro everywhere

* Tidying up

* More code cleanup

* Documentation updates

* Fixed formatting via linter

* Switching to a function from a macro

* Fixed compile error

* Fixing WS2812 behavior. UNTESTED.

* Updated documentation about the driver addresses.

* Fixed code for WS2812

* Trying to add in LED_MATRIX support

* Updated effects for LED matrix

* Updated third-party effect defines.

* Ran format-c on modified files

* Apply suggestions from code review

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

* Move to static inline. Avoids issues with gcc v8+

* Move helper function for LED_matrix to static inline to avoid issues with gcc v8+

Co-authored-by: Vlad Kvitnevskiy <vladkvit@outlook.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-11-02 09:04:37 +11:00
..
ChangeLog Bootmagic lite docs clarity. (#14204) 2021-08-29 09:47:48 +10:00
de Remove bin/qmk (#14231) 2021-08-29 16:50:22 -07:00
es Purge uGFX. (#14720) 2021-10-07 10:57:48 +11:00
fr-fr Purge uGFX. (#14720) 2021-10-07 10:57:48 +11:00
gitbook/images RGB improvements (#1684) 2017-09-06 14:49:19 -07:00
he-il Purge uGFX. (#14720) 2021-10-07 10:57:48 +11:00
ja Align PS/2 GPIO defines (#14745) 2021-10-20 20:07:40 +01:00
ko-kr [Core] [Docs] Remove travis-ci references (#13916) 2021-08-20 23:31:26 +01:00
pt-br [Core] [Docs] Remove travis-ci references (#13916) 2021-08-20 23:31:26 +01:00
ru-ru Purge uGFX. (#14720) 2021-10-07 10:57:48 +11:00
zh-cn Purge uGFX. (#14720) 2021-10-07 10:57:48 +11:00
_langs.md [Docs] add README translation in portuguese (#7016) 2019-12-10 10:19:12 -08:00
_summary.md Add Support for USB programmable buttons (#12950) 2021-09-15 08:40:22 -07:00
.nojekyll Use docsfy to replace gitbook 2018-05-07 22:46:26 -07:00
adc_driver.md 2021 May 29 Breaking Changes Update (#13034) 2021-05-29 14:38:50 -07:00
api_development_environment.md Add API documentation 2020-03-05 16:00:10 -08:00
api_development_overview.md Add API documentation 2020-03-05 16:00:10 -08:00
api_docs.md [Docs] Use HTTPS for images and links where possible (#11695) 2021-01-30 22:00:56 +11:00
api_overview.md [Docs] Use HTTPS for images and links where possible (#11695) 2021-01-30 22:00:56 +11:00
arm_debugging.md [Docs] fix docs (#7642) 2019-12-21 11:00:22 +00:00
audio_driver.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
breaking_changes_history.md 2021Q3 pre-merge develop changelog, keyboard aliases (#14198) 2021-08-29 08:18:18 +10:00
breaking_changes_instructions.md 2020 May 30 Breaking Changes Update (#9215) 2020-05-30 13:14:59 -07:00
breaking_changes.md 2021Q3 pre-merge develop changelog, keyboard aliases (#14198) 2021-08-29 08:18:18 +10:00
chibios_upgrade_instructions.md Update ChibiOS, ChibiOS-Contrib. (#13056) 2021-06-01 08:11:50 +10:00
cli_commands.md New CLI subcommand to create clang-compatible compilation database (compile_commands.json) (#14370) 2021-09-16 14:59:57 +10:00
cli_configuration.md Fix capitalisation of "GitHub" (#9184) 2020-05-25 19:43:14 -07:00
cli_development.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
cli_tab_complete.md Fix Typo in documentation (#14942) 2021-10-24 23:32:42 +01:00
cli.md Streamline the macos install process 2020-05-18 22:46:33 -07:00
CNAME Create CNAME 2018-05-21 16:29:37 -04:00
coding_conventions_c.md [Docs] Use HTTPS for images and links where possible (#11695) 2021-01-30 22:00:56 +11:00
coding_conventions_python.md Move everything to Python 3.6 (#8835) 2020-04-18 22:00:56 +02:00
compatible_microcontrollers.md [Core] Add support for RISC-V builds and GD32VF103 MCU (#12508) 2021-10-18 16:23:20 +11:00
config_options.md Document MAGIC feature (#14301) 2021-10-26 16:55:04 -07:00
configurator_architecture.md Architecture documentation for Configurator and API (#13935) 2021-08-10 07:47:53 -07:00
configurator_default_keymaps.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
configurator_diagram.drawio Architecture documentation for Configurator and API (#13935) 2021-08-10 07:47:53 -07:00
configurator_diagram.svg Architecture documentation for Configurator and API (#13935) 2021-08-10 07:47:53 -07:00
configurator_step_by_step.md Fix capitalisation of "GitHub" (#9184) 2020-05-25 19:43:14 -07:00
configurator_troubleshooting.md Polish Configurator section 2020-03-05 16:00:10 -08:00
contributing.md Remove bin/qmk (#14231) 2021-08-29 16:50:22 -07:00
custom_matrix.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
custom_quantum_functions.md Optimize matrix scanning by removing variable shifts (#14947) 2021-10-26 20:01:57 -07:00
data_driven_config.md Create a system to map between info.json and config.h/rules.mk (#11548) 2021-01-31 12:46:00 -08:00
documentation_best_practices.md [Docs] fix file path (#9540) 2020-06-25 15:58:36 +10:00
documentation_templates.md [Docs] Use HTTPS for images and links where possible (#11695) 2021-01-30 22:00:56 +11:00
driver_installation_zadig.md [Core] Add support for RISC-V builds and GD32VF103 MCU (#12508) 2021-10-18 16:23:20 +11:00
easy_maker.md [Keyboard] ez_maker/directpins for easy one-offs in qmk_configurator (#13321) 2021-08-14 08:42:59 -07:00
eeprom_driver.md eeprom_i2c driver: added EXTERNAL_EEPROM_WP_PIN configuration option. (#12617) 2021-06-21 19:34:28 -07:00
faq_build.md [Docs] Use HTTPS for images and links where possible (#11695) 2021-01-30 22:00:56 +11:00
faq_debug.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
faq_general.md Fix typos and reword some sentences in FAQs (#11546) 2021-01-23 13:41:29 -08:00
faq_keymap.md [Docs] Update path to keycode.h (#14263) 2021-09-01 20:40:12 -07:00
faq_misc.md Remove sysex API (#14723) 2021-10-06 19:34:46 +11:00
feature_advanced_keycodes.md Additional documentation for GUI mod combo (#13266) 2021-06-22 12:41:57 +10:00
feature_audio.md Fixup Audio startup and add to documents (#13606) 2021-08-15 21:51:50 +01:00
feature_auto_shift.md 2021 May 29 Breaking Changes Update (#13034) 2021-05-29 14:38:50 -07:00
feature_backlight.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
feature_bluetooth.md Improve Adafruit BLE configuration defines (#14749) 2021-10-08 16:15:20 +01:00
feature_bootmagic.md Remove Full Bootmagic (#13846) 2021-08-06 23:59:56 -07:00
feature_combo.md Process combos earlier & overlapping combos (#8591) 2021-08-06 09:44:57 +10:00
feature_command.md Remove Full Bootmagic (#13846) 2021-08-06 23:59:56 -07:00
feature_debounce_type.md Remove backwards compatibility of debounce names (#13877) 2021-08-09 19:46:18 +01:00
feature_digitizer.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
feature_dip_switch.md Added right vs left specific pin assignments for dip switch (#13074) 2021-08-19 18:39:15 +01:00
feature_dynamic_macros.md Fix typo in docs/feature_dynamic_macros (#10085) 2020-08-19 22:59:59 +01:00
feature_encoders.md [Docs] Modify encoder_update_user example to return false (#14541) 2021-09-21 07:52:57 -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 Split out HAPTIC_ENABLE to have separate DRIVER option (#14854) 2021-10-18 12:55:44 +01:00
feature_hd44780.md fixed typo for clear lcd screen function in hd44780 docs (#9086) 2020-05-13 19:06:41 +01:00
feature_joystick.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
feature_key_lock.md Add explicit id tags to externally linked headers 2020-03-05 16:00:10 -08:00
feature_key_overrides.md Documentation: Fix links in key overrides (#14228) 2021-08-31 09:13:19 +10:00
feature_layers.md Improve upon the 'Caveats' section of the Layers and Mod-Tap documentation (#12306) 2021-03-25 22:44:28 +11:00
feature_layouts.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
feature_leader_key.md 2021 May 29 Breaking Changes Update (#13034) 2021-05-29 14:38:50 -07:00
feature_led_indicators.md [Docs] add sync options heading, update led indicators (#14441) 2021-09-15 10:11:25 -07:00
feature_led_matrix.md Add support for ISSI drivers on both sides of a split keyboard (#13842) 2021-11-02 09:04:37 +11:00
feature_macros.md [Docs] New section to modifier docs: Checking Modifier State (#10550) 2021-02-28 16:42:17 +11:00
feature_midi.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
feature_mouse_keys.md Add support for 8 buttons to mouse report (#10807) 2021-01-28 04:38:34 +11:00
feature_oled_driver.md [Docs] fixed incorrect amount of steps for oled usage (#13519) 2021-09-14 21:12:37 -07:00
feature_pointing_device.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
feature_programmable_button.md Add Support for USB programmable buttons (#12950) 2021-09-15 08:40:22 -07:00
feature_ps2_mouse.md Align PS/2 GPIO defines (#14745) 2021-10-20 20:07:40 +01:00
feature_rawhid.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
feature_rgb_matrix.md Add support for ISSI drivers on both sides of a split keyboard (#13842) 2021-11-02 09:04:37 +11:00
feature_rgblight.md Retain brightness with lighting layers (#13025) 2021-07-21 23:46:12 -07:00
feature_sequencer.md Ensure single newline at EOF for core files (#11310) 2020-12-28 04:36:32 +11:00
feature_space_cadet.md [Docs] Use HTTPS for images and links where possible (#11695) 2021-01-30 22:00:56 +11:00
feature_split_keyboard.md [Docs] add sync options heading, update led indicators (#14441) 2021-09-15 10:11:25 -07:00
feature_st7565.md ST7565 invert (#13237) 2021-06-19 18:51:35 +10:00
feature_stenography.md Merge remote-tracking branch 'origin/master' into develop 2021-10-19 14:27:43 +00:00
feature_swap_hands.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
feature_tap_dance.md [Docs] Add default case to tap dance example 5. (#14893) 2021-10-22 23:45:07 -07:00
feature_terminal.md Remove build option firmware size impacts (#6947) 2019-10-18 18:14:49 -07:00
feature_thermal_printer.md Format keycode tables 2017-12-09 10:46:11 -05:00
feature_unicode.md 2021 May 29 Breaking Changes Update (#13034) 2021-05-29 14:38:50 -07:00
feature_userspace.md Enable CLI flashing via mdloader (#14729) 2021-10-15 22:07:33 +01:00
feature_velocikey.md Highlight keycode (#14317) 2021-09-05 20:36:16 +01:00
feature_wpm.md Update feature_wpm.md (#13936) 2021-08-10 10:14:14 +01:00
flashing_bootloadhid.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
flashing.md Change USBasp and bootloadHID bootloaders to lowercase (#14354) 2021-09-10 17:17:54 +10:00
fuse.txt Ensure single newline at EOF for core files (#11310) 2020-12-28 04:36:32 +11:00
getting_started_docker.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
getting_started_github.md Purge uGFX. (#14720) 2021-10-07 10:57:48 +11:00
getting_started_introduction.md [Docs] update git command and directory name of documents (#7619) 2019-12-12 20:59:00 -08:00
getting_started_make_guide.md Remove sysex API (#14723) 2021-10-06 19:34:46 +11:00
getting_started_vagrant.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
hand_wire.md [Docs] Added information on soldering diodes in parallel (#13117) 2021-07-29 22:56:27 -07:00
hardware_avr.md Port new_keyboard.sh to CLI (#13706) 2021-07-30 21:57:40 +01:00
hardware_drivers.md Purge uGFX. (#14720) 2021-10-07 10:57:48 +11:00
hardware_keyboard_guidelines.md Purge uGFX. (#14720) 2021-10-07 10:57:48 +11:00
how_a_matrix_works.md [Docs] Use HTTPS for images and links where possible (#11695) 2021-01-30 22:00:56 +11:00
how_keyboards_work.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
i2c_driver.md i2c_master: Add support for reading/writing to 16-bit registers (#14289) 2021-10-07 10:29:35 +11:00
index.html Simplify the visual flow of the getting started page (#11316) 2020-12-27 16:56:10 +00:00
internals_defines.md rename api docs to internals 2018-03-26 11:43:37 -07:00
internals_gpio_control.md Update documentation because GPIO functions are no longer in quantum.h (#14826) 2021-10-16 01:43:03 +01:00
internals_input_callback_reg.md rename api docs to internals 2018-03-26 11:43:37 -07:00
internals_midi_device_setup_process.md rename api docs to internals 2018-03-26 11:43:37 -07:00
internals_midi_device.md rename api docs to internals 2018-03-26 11:43:37 -07:00
internals_midi_util.md rename api docs to internals 2018-03-26 11:43:37 -07:00
internals_send_functions.md rename api docs to internals 2018-03-26 11:43:37 -07:00
internals_sysex_tools.md rename api docs to internals 2018-03-26 11:43:37 -07:00
isp_flashing_guide.md [Docs] Update isp_flashing_guide.md (#11777) 2021-02-07 10:48:34 -08:00
keycodes_basic.md Update keycode docs (#11343) 2020-12-30 07:51:36 +11:00
keycodes_magic.md Add a toggle key for GUI On/Off in Magic feature (#13830) 2021-08-18 08:47:50 +10:00
keycodes_us_ansi_shifted.md Backslash-escape pipe character in keycode lists (#7157) 2019-10-26 06:10:03 +01:00
keycodes.md Merge remote-tracking branch 'origin/master' into develop 2021-10-27 00:09:46 +00:00
keymap.md [Docs] Clarify layer transparency keymap.md (#9081) 2020-05-16 00:35:19 -07:00
mod_tap.md Document examples on intercepting Mod-Tap (#14502) 2021-10-04 16:21:02 -07:00
newbs_building_firmware_configurator.md Small tweaks to docs to make them more user friendly (#11518) 2021-01-20 18:46:01 +00:00
newbs_building_firmware.md Add explicit id tags to externally linked headers 2020-03-05 16:00:10 -08:00
newbs_flashing.md A few small typo fixes in docs (#12524) 2021-04-11 12:50:45 +02:00
newbs_getting_started.md [Docs] Add instructions to create keymap before proceeding (#14945) 2021-10-27 08:03:00 -07:00
newbs_git_best_practices.md [Docs] Restructure of Git Best Practices doc (#7231) 2019-12-02 18:47:02 -08:00
newbs_git_resolving_merge_conflicts.md [Docs] Restructure of Git Best Practices doc (#7231) 2019-12-02 18:47:02 -08:00
newbs_git_resynchronize_a_branch.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
newbs_git_using_your_master_branch.md Add explicit id tags to externally linked headers 2020-03-05 16:00:10 -08:00
newbs_learn_more_resources.md Small tweaks to docs to make them more user friendly (#11518) 2021-01-20 18:46:01 +00:00
newbs_testing_debugging.md Small tweaks to docs to make them more user friendly (#11518) 2021-01-20 18:46:01 +00:00
newbs.md [Docs] Use HTTPS for images and links where possible (#11695) 2021-01-30 22:00:56 +11:00
one_shot_keys.md fix: Fix typo in documentation for one shot keys. ON_TOGG -> OS_TOGG (#13754) 2021-07-28 12:00:55 +01:00
other_eclipse.md eclipse: recommend changing the default project make target (#12447) 2021-04-19 02:20:17 -07:00
other_vscode.md [Core] [Docs] Remove travis-ci references (#13916) 2021-08-20 23:31:26 +01:00
platformdev_chibios_earlyinit.md Ensure single newline at EOF for core files (#11310) 2020-12-28 04:36:32 +11:00
platformdev_selecting_arm_mcu.md Add documentation for selecting an Arm MCU (#9046) 2020-06-10 23:32:58 +01:00
power.txt Trim trailing whitespace 2017-12-09 10:46:11 -05:00
pr_checklist.md More PR checklist updates (#14705) 2021-10-06 06:46:36 +11:00
proton_c_conversion.md Add board specific to Proton-C, with usual defaults turned on. (#10976) 2020-12-03 13:04:28 +11:00
qmk_custom_dark.css Small tweaks to docs to make them more user friendly (#11518) 2021-01-20 18:46:01 +00:00
qmk_custom_light.css Small tweaks to docs to make them more user friendly (#11518) 2021-01-20 18:46:01 +00:00
qmk.css Some more tweaks to make everything look nice 2018-05-07 23:42:41 -07:00
quantum_keycodes.md Add explicit id tags to externally linked headers 2020-03-05 16:00:10 -08:00
README.md Small tweaks to docs to make them more user friendly (#11518) 2021-01-20 18:46:01 +00:00
redirects.json Configuration system for CLI (#6708) 2019-09-22 13:25:33 -07:00
ref_functions.md Remove Full Bootmagic (#13846) 2021-08-06 23:59:56 -07:00
reference_configurator_support.md Remove references to info.json width and height in CLI (#13728) 2021-07-29 22:37:18 -07:00
reference_glossary.md Fix Space Cadet md link (#14300) 2021-09-04 15:01:56 +01:00
reference_info_json.md [Docs] Clean up reference_info_json.md (#14806) 2021-10-15 12:45:33 +11:00
reference_keymap_extras.md Rework keymap_extras docs (#13949) 2021-08-15 00:18:20 +10:00
serial_driver.md Make solo half of split keyboards (more) usable. (#13523) 2021-08-22 10:51:17 +10:00
spi_driver.md Merge remote-tracking branch 'upstream/master' into develop 2021-02-08 07:57:09 +11:00
support.md Fix capitalisation of "GitHub" (#9184) 2020-05-25 19:43:14 -07:00
sw.js Fix up info boxes. 2018-05-07 22:46:26 -07:00
syllabus.md Remove Full Bootmagic (#13846) 2021-08-06 23:59:56 -07:00
tap_hold.md Add HOLD_ON_OTHER_KEY_PRESS option for dual-role keys (#9404) 2021-08-07 09:16:26 +10:00
translating.md Add yet another dictionary for the QMK Firmware docs sidebar heading (#7504) 2019-11-28 22:14:04 +00:00
uart_driver.md UART driver refactor (#11637) 2021-01-27 17:42:49 +11:00
understanding_qmk.md Purge uGFX. (#14720) 2021-10-07 10:57:48 +11:00
unit_testing.md Remove SERIAL_LINK feature (#14727) 2021-10-07 12:32:05 +11:00
usb_nkro.txt convert docs to lowercase and underscores 2017-06-10 14:58:55 -04:00
ws2812_driver.md Fix up WS2812 SPI driver on F072. (#13022) 2021-06-03 09:48:16 +10:00

Quantum Mechanical Keyboard Firmware

What is QMK Firmware?

QMK (Quantum Mechanical Keyboard) is an open source community centered around developing computer input devices. The community encompasses all sorts of input devices, such as keyboards, mice, and MIDI devices. A core group of collaborators maintains QMK Firmware, QMK Configurator, QMK Toolbox, qmk.fm, and this documentation with the help of community members like you.

Get Started

?> Basic QMK Configurator
User friendly graphical interfaces, no programming knowledge required.

?> Advanced Use The Source
More powerful, but harder to use.

Make It Yours

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.

Need help?

Check out the support page to see how you can get help using QMK.

Give Back

There are a lot of ways you can contribute to the QMK Community. The easiest way to get started is to use it and spread the word to your friends.