summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/_summary.md15
-rw-r--r--docs/config_options.md2
-rw-r--r--docs/feature_auto_shift.md22
-rw-r--r--docs/feature_stenography.md (renamed from docs/stenography.md)0
-rw-r--r--docs/feature_tap_dance.md4
-rw-r--r--docs/features.md16
-rw-r--r--docs/flashing.md74
7 files changed, 106 insertions, 27 deletions
diff --git a/docs/_summary.md b/docs/_summary.md
index b433181a60..1a7e1fc96e 100644
--- a/docs/_summary.md
+++ b/docs/_summary.md
@@ -3,6 +3,7 @@
* [Install Build Tools](getting_started_build_tools.md)
* Alternative: [Vagrant Guide](getting_started_vagrant_guide.md)
* [Build/Compile instructions](getting_started_make_guide.md)
+ * [Flashing instructions](flashing.md)
* [Contributing to QMK](contributing.md)
* [How to Use Github](getting_started_github.md)
@@ -21,6 +22,7 @@
* [Features](features.md)
* [Advanced Keycodes](feature_advanced_keycodes.md)
* [Audio](feature_audio.md)
+ * [Auto Shift](feature_auto_shift.md)
* [Backlight](feature_backlight.md)
* [Bootmagic](feature_bootmagic.md)
* [Dynamic Macros](feature_dynamic_macros.md)
@@ -31,6 +33,7 @@
* [Mouse keys](feature_mouse_keys.md)
* [Pointing Device](feature_pointing_device.md)
* [PS2 Mouse](feature_ps2_mouse.md)
+ * [RGB Lighting](feature_rgblight.md)
* [Space Cadet](feature_space_cadet.md)
* [Stenography](feature_stenography.md)
* [Tap Dance](feature_tap_dance.md)
@@ -51,20 +54,20 @@
* [Basic](keycodes_basic.md)
* [Bluetooth](feature_bluetooth.md#bluetooth-keycodes)
* [Bootmagic](feature_bootmagic.md#bootmagic-keycodes)
- * [Layer Switching](feature_common_shortcuts.md#switching-and-toggling-layers)
- * [Mod+Key](feature_common_shortcuts.md#modifier-keys)
- * [Mod Tap](feature_common_shortcuts.md#mod-tap)
- * [One Shot Keys](feature_common_shortcuts.md#one-shot-keys)
+ * [Layer Switching](feature_advanced_keycodes.md#switching-and-toggling-layers)
+ * [Mod+Key](feature_advanced_keycodes.md#modifier-keys)
+ * [Mod Tap](feature_advanced_keycodes.md#mod-tap)
+ * [One Shot Keys](feature_advanced_keycodes.md#one-shot-keys)
* [Quantum](quantum_keycodes.md)
* [RGB Light](feature_rgblight.md#rgblight-keycodes)
- * [Shifted Keys](feature_common_shortcuts.md#shifted-keycodes)
+ * [Shifted Keys](feature_advanced_keycodes.md#shifted-keycodes)
* [Stenography](feature_stenography.md#keycode-reference)
* [Thermal Printer](feature_thermal_printer.md#thermal-printer-keycodes)
* [US ANSI Shifted Keys](keycodes_us_ansi_shifted.md)
* [Unit Testing](unit_testing.md)
* For Makers and Modders
- * [Hand Wiring Guide](hand_wiring.md)
+ * [Hand Wiring Guide](hand_wire.md)
* [ISP flashing guide](isp_flashing_guide.md)
* [Modding your keyboard](modding_your_keyboard.md)
diff --git a/docs/config_options.md b/docs/config_options.md
index de67630adc..faa9c64814 100644
--- a/docs/config_options.md
+++ b/docs/config_options.md
@@ -109,6 +109,8 @@ If you define these options you will enable the associated feature, which may in
* `#define TAPPING_TERM 200`
* how long before a tap becomes a hold
+* `#define RETRO_TAPPING`
+ * tap anyway, even after TAPPING_TERM, if there was no other key interruption between press and release
* `#define TAPPING_TOGGLE 2`
* how many taps before triggering the toggle
* `#define PERMISSIVE_HOLD`
diff --git a/docs/feature_auto_shift.md b/docs/feature_auto_shift.md
index 54052a74db..0f482ccaae 100644
--- a/docs/feature_auto_shift.md
+++ b/docs/feature_auto_shift.md
@@ -136,24 +136,22 @@ completely normal and with no intention of shifted keys.
#### An example run
-'''
-hello world. my name is john doe. i am a computer programmer playing with
-keyboards right now.
+ hello world. my name is john doe. i am a computer programmer playing with
+ keyboards right now.
-[PRESS KC_ASDN quite a few times]
+ [PRESS KC_ASDN quite a few times]
-heLLo woRLd. mY nAMe is JOHn dOE. i AM A compUTeR proGRaMMER PlAYiNG witH
-KEYboArDS RiGHT NOw.
+ heLLo woRLd. mY nAMe is JOHn dOE. i AM A compUTeR proGRaMMER PlAYiNG witH
+ KEYboArDS RiGHT NOw.
-[PRESS KC_ASUP a few times]
+ [PRESS KC_ASUP a few times]
-hello world. my name is john Doe. i am a computer programmer playing with
-keyboarDs right now.
+ hello world. my name is john Doe. i am a computer programmer playing with
+ keyboarDs right now.
-[PRESS KC_ASRP]
+ [PRESS KC_ASRP]
-115
-'''
+ 115
The keyboard typed `115` which represents your current `AUTO_SHIFT_TIMEOUT`
value. You are now set! Practice on the *D* key a little bit that showed up
diff --git a/docs/stenography.md b/docs/feature_stenography.md
index 5b457a2a6c..5b457a2a6c 100644
--- a/docs/stenography.md
+++ b/docs/feature_stenography.md
diff --git a/docs/feature_tap_dance.md b/docs/feature_tap_dance.md
index 32dffa9cd3..24cd2b4407 100644
--- a/docs/feature_tap_dance.md
+++ b/docs/feature_tap_dance.md
@@ -200,12 +200,12 @@ typedef struct {
int cur_dance (qk_tap_dance_state_t *state) {
if (state->count == 1) {
//If count = 1, and it has been interrupted - it doesn't matter if it is pressed or not: Send SINGLE_TAP
- if (state->interrupted || state->!pressed) return SINGLE_TAP;
+ if (state->interrupted || state->pressed==0) return SINGLE_TAP;
else return SINGLE_HOLD;
}
//If count = 2, and it has been interrupted - assume that user is trying to type the letter associated
//with single tap. In example below, that means to send `xx` instead of `Escape`.
- else if (state->count = 2) {
+ else if (state->count == 2) {
if (state->interrupted) return DOUBLE_SINGLE_TAP;
else if (state->pressed) return DOUBLE_HOLD;
else return DOUBLE_TAP;
diff --git a/docs/features.md b/docs/features.md
index afffead499..b315139bb7 100644
--- a/docs/features.md
+++ b/docs/features.md
@@ -5,20 +5,22 @@ QMK has a staggering number of features for building your keyboard. It can take
* [Advanced Keycodes](feature_advanced_keycodes.md) - Change layers, type shifted keys, and more. Go beyond typing simple characters.
* [Audio](feature_audio.md) - Connect a speaker to your keyboard for audio feedback, midi support, and music mode.
-* [Backlight](feature_backlight.md) - LED lighting support for your keyboard
-* [Bootmagic](feature_bootmagic.md) - Adjust the behavior of your keyboard using hotkeys
+* [Auto Shift](feature_auto_shift.md) - Tap for the normal key, hold slightly longer for its shifted state.
+* [Backlight](feature_backlight.md) - LED lighting support for your keyboard.
+* [Bootmagic](feature_bootmagic.md) - Adjust the behavior of your keyboard using hotkeys.
* [Dynamic Macros](feature_dynamic_macros.md) - Record and playback macros from the keyboard itself.
* [Key Lock](feature_key_lock.md) - Lock a key in the "down" state.
* [Layouts](feature_layouts.md) - Use one keymap with any keyboard that supports your layout.
* [Leader Key](feature_leader_key.md) - Tap the leader key followed by a sequence to trigger custom behavior.
-* [Macros](feature_macros.md) - Send multiple key presses when pressing only one physical key
-* [Mouse keys](feature_mouse_keys.md) - Control your mouse pointer from your keyboard
+* [Macros](feature_macros.md) - Send multiple key presses when pressing only one physical key.
+* [Mouse keys](feature_mouse_keys.md) - Control your mouse pointer from your keyboard.
* [Pointing Device](feature_pointing_device.md) - Framework for connecting your custom pointing device to your keyboard.
* [PS2 Mouse](feature_ps2_mouse.md) - Driver for connecting a ps2 mouse directly to your keyboard.
+* [RGB Light](feature_rgblight.md) - RGB lighting for your keyboard.
* [Space Cadet](feature_space_cadet_shift.md) - Use your left/right shift keys to type parenthesis and brackets.
* [Stenography](feature_stenography.md) - Put your keyboard into Plover mode for stenography use.
-* [Tap Dance](feature_tap_dance.md) - Make a single key do as many things as you want
-* [Terminal](feature_terminal.md) - CLI interface to the internals of your keyboard
+* [Tap Dance](feature_tap_dance.md) - Make a single key do as many things as you want.
+* [Terminal](feature_terminal.md) - CLI interface to the internals of your keyboard.
* [Thermal Printer](feature_thermal_printer.md) - Connect a thermal printer to your keyboard to be able to toggle on a printed log of everything you type.
* [Unicode](feature_unicode.md) - Unicode input support.
-* [Userspace](feature_userspace.md) - Share code between different keymaps and keyboards
+* [Userspace](feature_userspace.md) - Share code between different keymaps and keyboards.
diff --git a/docs/flashing.md b/docs/flashing.md
new file mode 100644
index 0000000000..a61634d215
--- /dev/null
+++ b/docs/flashing.md
@@ -0,0 +1,74 @@
+# Flashing Intrustructions
+
+There are quite a few different types of bootloaders that keyboards use, and just about all of the use a different flashing method. Luckily, projects like the [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) aim to be compatible with all the different types without having to think about it much, but this article will describe the different types of bootloaders, and available methods for flashing them.
+
+## DFU
+
+Atmel's DFU bootloader comes on all atmega32u4 chips by default, and is used by many keyboards that have their own ICs on their PCBs (Older OLKB boards, Clueboards). Some keyboards may also use LUFA's DFU bootloader (or QMK's fork) (Newer OLKB boards) that adds in additional features specific to that hardware.
+
+These bootloaders are usually 4096 bytes for the atmega32u4 chip.
+
+Compatible flashers:
+
+* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
+* [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` in QMK (recommended commandline)
+* [Atmel's Flip](http://www.atmel.com/tools/flip.aspx) (not recommended)
+
+Flashing sequence:
+
+1. Press the `RESET` keycode, or tap the RESET button (or short RST to GND).
+2. Wait for the OS to detect the device
+3. Erase the memory (may be done automatically)
+4. Flash a .hex file
+5. Reset the device into application mode (may be done automatically)
+
+or:
+
+ make <keyboard>:<keymap>:dfu
+
+## Caterina
+
+Arduino boards and their clones use the [Caterina bootloader](https://github.com/arduino/Arduino/tree/master/hardware/arduino/avr/bootloaders/caterina) (any keyboard built with a Pro Micro, or clone), and uses the avr109 protocol to communicate through virtual serial. Bootloaders like [A-Star](https://www.pololu.com/docs/0J61/9) are based on Caterina.
+
+This block of code allows for Caterina compatibility in QMK:
+
+ #define CATERINA_BOOTLOADER
+
+These bootloaders are usually 4096 bytes for the atmega32u4 chip.
+
+Compatible flashers:
+
+* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
+* [avrdude](http://www.nongnu.org/avrdude/) with avr109 / `:avrdude` (recommended commandline)
+* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
+
+Flashing sequence:
+
+1. Press the `RESET` keycode, or short RST to GND quickly (you only have 7 seconds to flash once it enters)
+2. Wait for the OS to detect the device
+4. Flash a .hex file
+5. Wait for the device to reset automatically
+
+or
+
+ make <keyboard>:<keymap>:avrdude
+
+## Halfkay
+
+Halfkay is a super-slim protocol developed by PJRC that uses HID, and come on all Teensys (namely the 2.0).
+
+This bootloader is 512 bytes.
+
+Compatible flashers:
+
+* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
+* [Teensy Loader](https://www.pjrc.com/teensy/loader.html)
+* [Teensy Loader Command Line](https://www.pjrc.com/teensy/loader_cli.html) (recommended commandline)
+
+Flashing sequence:
+
+1. Press the `RESET` keycode, or short RST to GND quickly (you only have 7 seconds to flash once it enters)
+2. Wait for the OS to detect the device
+4. Flash a .hex file
+5. Reset the device into application mode (may be done automatically)
+