* quantum/debounce: rename debouncing algorithms according to Issue 8763
This is the second attempt at implementation, with no ts_ and cy_ prefixes, since those will be implemented with macros.
* Debouncing documentation: Refactor, add some generic info, and merge into a single document
* Fixed Spanish keymap extra ES_DIAE symbol
`ES_DIAE` should be `S(ES_ACUT)` not `S(ES_GRV)`
* Update quantum/keymap_extras/keymap_spanish.h
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* K-Type refactor
* Declare QMK in product name again
* Hopefully fix matrix scanning
* Maybe this time
* Partial (literally) RGB Matrix support
* Put RGB_MATRIX_ENABLE into rgb keymap for now
* Add ifdefs for RGB config
* Set layer 1 to actually be layer 1...
* Update keyboards/k_type/readme.md
* Put all RGB config in keymap for now
* Set SDB high?
* Before `rgb_matrix_init()` would be best
* User level, not keyboard
* Combating dropped keys
* Nope
* Readme for RGB keymap
* Remove custom matrix
* Add support for hsv->rgb conversion without using CIE curve.
* Modify anavi/macropad8 to disable unicode (was unused), otherwise firmware size is too large.
* Consolidate TKC projects and increase VIA keymap count to 4.
* Updated readme files.
* Removed config.h via limitation of 2 dynamic keymaps
* Reduce dynamic keymaps from 4 to 3 due to EEPROM space limitations.
* Update dynamic_keymap.c
* Restore 4 dynamic keymaps for VIA in TKC projects.
* Update quantum/dynamic_keymap.c
* Tweak the Christmas animation effect to be less harsh on the eyes
* Further improve the tweaked Christmas animation code
- Use constants where it makes sense
- Instead of complicated math, use a static variable to keep track if it's animating from or to red
- Don't use pow (but a simple macro instead)
- Using floating point math is necessary for the fraction in the cubic bezier function to work
* Update docs for the tweaked Christmas animation effect
* Further improve memory usage
- Don't use floats, but 32 bit ints instead (where needed)
- Replace limits.h with constant
* Fix typo
* add support for hid gamepad interface
add documentation for HID joystick
Add joystick_task to read analog axes values even when no key is pressed or release. update doc
Update docs/feature_joystick.md
Manage pin setup and read to maintain matrix scan after analog read
* Incorporates patches and changes to HID reporting
There are some patches provided by @a-chol incorporated on this commit,
and also some changes I made to the HID Report structure.
The most interesting is the one dealing with number of buttons: Linux
doesn't seem to care, but Windows requires the HID structure to be byte
aligned (that's in the spec). So if one declares 8/16/32... buttons they
should not have any issues, but this is what happens when you have 9
buttons:
```
bits |0|1|2|3|4|5|6|7|
|*|*|*|*|*|*|*|*| axis 0 (report size 8)
|*|*|*|*|*|*|*|*| ...
|*|*|*|*|*|*|*|*|
|*|*|*|*|*|*|*|*|
|*|*|*|*|*|*|*|*|
|*|*|*|*|*|*|*|*|
|*|*|*|*|*|*|*|*| axis 6
|*|*|*|*|*|*|*|*| first 8 buttons (report size 1)
|*| | | | | | | | last of 9 buttons, not aligned
```
So for that I added a conditonal that will add a number of reports with
size 1 to make sure it aligns to the next multiple of 8. Those reports
send dummy inputs that don't do anything aside from aligning the data.
Tested on Linux, Windows 10 and Street Fighter (where the joystick is
recognized as direct-input)
* Add save and restore of each pin used in reading joystick (AVR).
Allow output pin to be JS_VIRTUAL_AXIS if the axis is connected to Vcc
instead of an output pin from the MCU.
Fix joystick report id
Fix broken v-usb hid joystick interface. Make it more resilient to unusual settings (none multiple of eight button count, 0 buttons or 0 axes)
Correct adc reading for multiple axes. Piecewise range conversion for uncentered raw value range. Input, output and ground pin configuration per axis.
Documentation fixes
* Fix port addressing for joystick analog read
* The other required set of changes
As per the PR, the changes still holding it up.
Add onekey for testing.
Fix ARM builds.
Fix device descriptor when either axes or buttons is zero.
Add compile-time check for at least one axis or button.
Move definition to try to fix conflict.
PR review comments.
qmk cformat
* avoid float functions to compute range mapping for axis adc reading
* Remove V-USB support for now. Updated docs accordingly.
* Update tmk_core/protocol/lufa/lufa.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update tmk_core/protocol/usb_descriptor.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update tmk_core/protocol/usb_descriptor.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update tmk_core/protocol/usb_descriptor.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Add support for joystick adc reading for stm32 MCUs. Fix joystick hid report sending for chibios
* Fix HID joystick report sending for ChibiOS.
Add one analog axis to the onekey:joystick keymap.
Fix pin state save and restore during joystick analog read for STM32
MCUs.
* Update tmk_core/protocol/chibios/usb_main.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update tmk_core/protocol/lufa/lufa.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Add missing mcuconf.h and halconf.h to onekey:joystick keymap.
Add suggested fixes from PR.
* Switch saveState and restoreState signature to use pin_t type.
onekey:joystick : add a second axis, virtual and programmatically animated.
* Update docs/feature_joystick.md
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update docs/feature_joystick.md
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Add PR corrections
* Remove halconf.h and mcuconf.h from onekey keymaps
* Change ADC_PIN to A0
Co-authored-by: achol <allecooll@hotmail.com>
Co-authored-by: José Júnior <jose.junior@gmail.com>
Co-authored-by: a-chol <achol@notamail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update Space Cadet to use Custom Tapping Term functionality
* Detect correct keycode for space cadet tapping term
* Update tap dancing to use global custom tapping term
* Update documentation for Tap Dances
* formatting pass
* Apply suggestions from code review
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update docs/feature_tap_dance.md
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update for future
* Update user keymaps for space cadet
* Fix typos
* Clean up tapping term stuff
* Fix compiler issue if NO_ACTION_TAPPING is enabled
Co-authored-by: fauxpark <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Initial work for consolidation of board files and default ChibiOS configs.
* Migrate F401/F411 black pills for testing.
* Add early init bootloader jump flag.
* Add support for I2C in order to use i2c_scanner keymap.
* Add F401/F411 HSE bypass to get things booting.
* Exempt "hooked" ChibiOS conf files from updater script.
* Fix up ordering for bootloader_defs file check.
* Match previous $(KEYBOARD_PATHS) value for Proton-C, updated for all board configs.
Specifically, when rgb matrix is enabled and using the ws2812 driver, and rgb light is enabled at the same time, print a message about coexistance because it can cause issues, since you cannot change pins/config for the WS2812 driver.
* Issue 9942: Add Quantum defines
Add codes to quantum_keycodes for LSA, RSA, RCS, and their corresponding _T macros
* 9942: Add documentation for new defines
Add documentation for new defines in feature request 9942. Also define SAGR and SAGR_T as aliases for RSA and RSA_T.
* Update quantum/quantum_keycodes.h
* Update docs/keycodes.md
* Update docs/keycodes.md
* Update docs/keycodes.md
* Update docs/keycodes.md
* Add Indicator flag for RGB Matrix
This adds a new flag for the RGB Matrix feature that lets you specify if the LED is an indicator LED, to be used to indicate the system state of the keyboard (eg caps/num/etc lock status, layer indication, modifer status, etc).
* Better formatting of table
* Add IS_LAYER_ON_STATE()/IS_LAYER_OFF_STATE() macros
* Add docs for IS_LAYER_ON/OFF(_STATE) macros
* Remove IS_LAYER_ON/OFF_STATE redefinition in userspace
* Run clang-format on quantum/quantum.h
* Redefine IS_LAYER_ON/OFF(_STATE) as aliases of existing layer functions
Also update relevant doc entries.
Needs testing to check if this breaks existing IS_LAYER_ON/OFF usage in certain
edge cases (namely calling the macros with 0).
* Reformat layer check function docs
* dipsw test on helix/rev2/sc/back:five_rows
* add peek_matrix() to matrix_common.c
* add DIP_SWITCH_MATRIX_GRID support to quantum/dip_switch.c
* update docs/feature_dip_switch.md about DIP_SWITCH_MATRIX_GRID
* Test end. remove test code. Revert "dipsw test on helix/rev2/sc/back:five_rows"
This reverts commit 6d4304c74557597c9fb4d324f79c3ae4793ae874.
* Add Hebrew keymap aliases
* Use NBSP for internal space in box drawings
* Apply suggestions from code review
* More whitespace fixes
* IL_DVAV, IL_DYOD and IL_VYOD were incorrect
* Add IL_DEG, IL_MUL, IL_DIV
* Hebrew is now ISO (no more BAE)
* Use ISO left shift
* Apply suggestions from code review
* DYOD and VYOD were reversed in diagram.
Oops!
* Change `led` to `led_matrix` in rgb_matrix_drivers
Is a minor change that only affects the driver file.
However, this will allow somebody to run rgblight along side rgb matrix
using the ws2812 driver, as well. Specifically, so you can use the
custom driver for rgblight to set a different pin (barring a change to
the `ws2812_setleds` function).
Courtesy of discord conversion:
https://discordapp.com/channels/440868230475677696/568161140534935572/721555623191248906
* Change name to be super specific
* Update rgb_matrix_drivers.c
* Fixed slave-side keyboard half unresponsiveness
due to how LUFA handles USB_Disable()
* changes to formatting
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Joel Challis <git@zvecr.com>
* Branch point for 2020 May 30 Breaking Change
* Migrate `ACTION_LAYER_TOGGLE` to `TG()` (#8954)
* Migrate `ACTION_MODS_ONESHOT` to `OSM()` (#8957)
* Migrate `ACTION_DEFAULT_LAYER_SET` to `DF()` (#8958)
* Migrate `ACTION_LAYER_MODS` to `LM()` (#8959)
* Migrate `ACTION_MODS_TAP_KEY` to `MT()` (#8968)
* Convert V-USB usbdrv to a submodule (#8321)
* Unify Tap Hold functions and documentation (#8348)
* Changing board names to prevent confusion (#8412)
* Move the Keyboardio Model01 to a keyboardio/ subdir (#8499)
* Move spaceman keyboards (#8830)
* Migrate miscellaneous `fn_actions` entries (#8977)
* Migrate `ACTION_MODS_KEY` to chained mod keycodes (#8979)
* Organizing my keyboards (plaid, tartan, ergoinu) (#8537)
* Refactor Lily58 to use split_common (#6260)
* Refactor zinc to use split_common (#7114)
* Add a message if bin/qmk doesn't work (#9000)
* Fix conflicting types for 'tfp_printf' (#8269)
* Fixed RGB_DISABLE_AFTER_TIMEOUT to be seconds based & small internals cleanup (#6480)
* Refactor and updates to TKC1800 code (#8472)
* Switch to qmk forks for everything (#9019)
* audio refactor: replace deprecated PLAY_NOTE_ARRAY (#8484)
* Audio enable corrections (2/3) (#8903)
* Split HHKB to ANSI and JP layouts and Add VIA support for each (#8582)
* Audio enable corrections (Part 4) (#8974)
* Fix typo from PR7114 (#9171)
* Augment future branch Changelogs (#8978)
* Revert "Branch point for 2020 May 30 Breaking Change"
This commits add the SH_OS keycode, which works similarly to one shot
layers:
* while pressed, the keyboard is swapped
* if no keys were pressed while it was pressed, the next key press is
swapped
SH_OS also supports chaining with one shot layers:
OSL(x) + SH_OS + key interprets the key press on the oneshot layer.
The ONESHOT_TIMEOUT setting used by one shot keys and layers is also
used by oneshot swap hands. In the above chaining scenario the timeout
of the oneshot layer is reset when swap hands is activated.
Resolves#2682
* Allow 16 lighting layers
* Require #define RGBLIGHT_LAYERS_16 to enable 16 layers
* Override RGBLIGHT_MAX_LAYERS to set maximum number of lighting layers
* Enforce lower bound on RGBLIGHT_MAX_LAYERS
Co-Authored-By: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
* Fix an error in the check for valid RGBLIGHT_MAX_LAYERS
* Don't use bitfield / PACKED, as it causes bloat
* Update documentation re: up to 32 lighting layers
* Run cformat
* Add note about increasing FW size in docs/config_options.md
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Remove no-longer-valid comment
* Add doc note that split sync will be slower
Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Implement momentarily blink of lighting layers
* Refactor spidey3 userspace to use rgb layer blink
* Remove un-necessary line from example in documentation
* Revert "Refactor spidey3 userspace to use rgb layer blink"
This reverts commit 831649bb680c41c6d663ae6fa86d13f4f8bebdd8.
* Adds a missing bit of documentation about lighting layer blink
* Update docs/feature_rgblight.md per suggestions
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update docs/feature_rgblight.md per suggestions
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update docs/feature_rgblight.md per suggestions
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* cformat, as suggested
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Invert UC_MOD/UC_RMOD direction when Shift is held
Also use MOD_MASK_SHIFT in process_rgb.c
* Allow audio to be played for UC_MOD, UC_RMOD keycodes as well
* Fix signedness bug in reverse input mode cycling
* Misc formatting in process_unicode_common.c
* Address clang-format issues
* Make decode_utf8 helper function file-local (static)
* Branch point for 2020 May 30 Breaking Change
* audio-configuration: template: audio_avr.c does NOT default to C6
not on its own, it needs a pin configured per define in config.h for audio to actually work
otherwise only parts of the code are included in the firmware, wasting space and possibly breaking builds because auf hitting the firmware-size limits
* audio-configuration: strip comment to bare essentials
Co-Authored-By: Ryan <fauxpark@gmail.com>
* revert future change
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Johannes <you@example.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: zvecr <git@zvecr.com>
* add 'togglePin' conveniance function
for AVR and chibios
* drop outmost parantheses
Co-Authored-By: Konstantin Đorđević <vomindoraan@gmail.com>
* toggle pin on avrs
toggle a pin configured as output by writing the corresponding bit to the PIN register
Co-Authored-By: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
* togglepin: add documentation for newly added function
* Update docs/internals_gpio_control.md
Co-Authored-By: Konstantin Đorđević <vomindoraan@gmail.com>
* on AVR: use PORTD to toggle the output
... since not all MCUs support toggling through writing to PIN
Co-Authored-By: Ryan <fauxpark@gmail.com>
Co-authored-by: Johannes <you@example.com>
Co-authored-by: Konstantin Đorđević <vomindoraan@gmail.com>
Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* dipsw test on helix/rev2/sc/back:five_rows
* bug fix quantum/dip_switch.c
* test end. remove test code. Revert "dipsw test on helix/rev2/sc/back:five_rows"
This reverts commit 4b13ebb996e1c4997e6deb1fa3b3227db5fa9661.
* dipsw test on helix/rev2/sc/back:five_rows
* update quantum/dip_switch.c
* test end. remove test code. Revert "dipsw test on helix/rev2/sc/back:five_rows"
This reverts commit bf99ace095528ad65c531229bcf5ece037dda595.