summaryrefslogtreecommitdiffstats
path: root/quantum
Commit message (Collapse)AuthorAgeFilesLines
* [Bug] Fix IS31fl3741 driver to accept 1 or 2 addresses (#14451)Drashna Jaelre2021-09-151-1/+6
| | | Co-authored-by: Joel Challis <git@zvecr.com>
* Apply `TAP_CODE_DELAY` to Tap Dance key sequences (#14412)Drashna Jaelre2021-09-133-6/+9
| | | | | * Add support to tap dances * Move default tap code defines to header file
* `ST7565_TIMEOUT 0` and `ST7565_DISABLE_TIMEOUT` should behave the same (#14315)JayceFayne2021-09-081-1/+1
|
* `OLED TIMEOUT 0` and `OLED_DISABLE_TIMEOUT` should behave the same (#14302)JayceFayne2021-09-081-1/+1
|
* [Bug] Fix build error when enabling NO_HAPTIC_MOD (#14178)Purdea Andrei2021-08-301-0/+1
| | | | | Without this build would fail, if a keyboard had haptic feedback enabled, TAPPING_TOGGLE was not overridden in a config.h, and if NO_HAPTIC_MOD was defined in config.h.
* Revert 14083 && 14144 (#14150)Joel Challis2021-08-258-118/+104
| | | | | | | | | * Revert "Short term bodge for firmware size bloat (#14144)" This reverts commit a8d65473461c337fb1e168d907bfb8c3ac8fdbd0. * Revert "Tidy up quantum.c now some of tmk_core has been merged (#14083)" This reverts commit c4dbf4bf0118dd785802861beb247433b5b7411d.
* Align some quantum sub-directories (#14134)Joel Challis2021-08-2413-539/+0
| | | | | | | * Misc folder tidy * Review comments * Remove redundant entry
* Short term bodge for firmware size bloat (#14144)Joel Challis2021-08-243-4/+21
|
* Tidy up quantum.c now some of tmk_core has been merged (#14083)Joel Challis2021-08-246-101/+98
|
* [Core] Refactor OLED to allow easy addition of other types (#13454)Xelus222021-08-245-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * add docs * core changes * update keyboards to new OLED * updated users to new OLED * update layouts to new OLED * fixup docs * drashna's suggestion * fix up docs * new keyboards with oled * core split changes * remaining keyboard files * Fix The Helix keyboards oled options * reflect develop Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: mtei <2170248+mtei@users.noreply.github.com>
* eeprom_stm32: implement high density wear leveling (#12567)Donald Kjer2021-08-231-1/+1
| | | | | | | | | | | | | | | * eeprom_stm32: implement wear leveling Update EECONFIG_MAGIC_NUMBER eeprom_stm32: check emulated eeprom size is large enough * eeprom_stm32: Increasing simulated EEPROM density on stm32 * Adding utility script to decode emulated eeprom * Adding unit tests * Applying qmk cformat changes * cleaned up flash mocking * Fix for stm32eeprom_parser.py checking via signature with wrong base * Fix for nk65 keyboard Co-authored-by: Ilya Zhuravlev <whatever@xyz.is> Co-authored-by: zvecr <git@zvecr.com>
* Merge remote-tracking branch 'origin/master' into developQMK Bot2021-08-232-2/+2
|\
| * Fix US_RDQU keycode (#13464)Olli Helenius2021-08-242-2/+2
| | | | | | | | `US_RDQU` and `US_LDQU` were aliased to the same keycode. `US_RDQU` should use the right bracket.
* | adding uf2 flash support for blackpill 401 (#13968)Path Nirvana2021-08-241-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | * adding uf2 flash support for blackpill 401 * forgot to add blackpill to keyboard header file * making changes requested by drashna * fixing tzarc s comments * removing the keyboard * undo the change to dactyl_manuform.h
* | Make solo half of split keyboards (more) usable. (#13523)Joakim Tufvegren2021-08-225-73/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Make solo half of split keyboards (more) usable. Using only one half of a split keyboard (that's using the split_common framework to communicate) is not a great experience, since several read timeouts per scan cycle cause an unusably slow scan rate. This change blocks all split communication attempts for 500 ms (configurable) after an error occurs, causing the scan rate to become at least _more_ usable, but might need some tweaking to work fully on most keyboards. One read timeout still needs to occur after the 500 ms has passed, and if that timeout isn't low enough, some scan cycles may still be too slow. * Fix lint complaint. * Require 25 consecutive comm errors to see comms as disconnected. The number of max errors can be overridden by defining `SPLIT_MAX_CONNECTION_ERRORS`. * Add comments to new defines, and ability to disable disconnection check. Also increase `SPLIT_MAX_CONNECTION_ERRORS` to 40, since it's divisible by most relevant numbers for the description. * Make lint happy ...again * Only update `connection_check_timer` when needed. * Add new defines to split keyboard documentation. * Move connection timeout logic to transport.c, add `is_transport_connected`. * Use split_common disconnection logic in matrix.c. Instead of doing more or less the same thing twice. * Move disconnection logic to `transport_master`. Is a cleaner implementation, and causes the scan rate while disconnected to increase instead of decrease. * Lint fixes. * Lower default `SERIAL_USART_TIMEOUT` to 20 ms. The read timeout must be low enough to not cause exessively long scan cycles when using a solo split half. 10 ms was determined from testing to work fine even with the slowest defined baudrate of 19200 (5 ms was too low for that case), so 20 ms should be fine for most cases. * Remove `SERIAL_USART_TIMEOUT` from ergodox_infinity/config.h Was somewhat mistakenly included in an earlier PR. * Fix building with `USE_I2C`. * Reduce built firmware size. Not really sure why this works, the idea was taken from tzarc's work on split disconnection. * Tweak and improve opt-out for split disconnection logic. There are now two ways to opt out from this feature: * Set `SPLIT_MAX_CONNECTION_ERRORS` to 0. This will completely disable the connection status checks (also affects the slave matrix reset logic in matrix.c, though). * Set `SPLIT_CONNECTION_CHECK_TIMEOUT` to 0. This will only disable the communication throttling while disconnected. Will make the firmware smaller. * Make split disconnection logic work with custom transports. Includes a fallback implementation for keyboards using a custom split_util.c but not a custom matrix.c (currently no such keyboard seems to be merged, though). * Remove unnecessary include of timer.h Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: Joel Challis <git@zvecr.com>
* | Fix issues with VIA EEPROM init and bring in line with eeconfig ↵Drashna Jaelre2021-08-205-37/+58
| | | | | | | | | | functionality (#13243) Co-authored-by: Ryan <fauxpark@gmail.com>
* | Fix LED Matrix suspend code (#14090)Ryan2021-08-201-1/+1
| |
* | [Bug] Fix RGB/LED Matrix Suspend code (#14084)Drashna Jaelre2021-08-202-4/+6
| |
* | Align DIP_SWITCH_PINS_RIGHT implementation with encoders (#14079)Joel Challis2021-08-201-19/+8
| |
* | Added right vs left specific pin assignments for dip switch (#13074)XScorpion22021-08-191-2/+24
| | | | | | | | | | | | | | * Added right vs left specific pin assignments for dip switch * Update feature_dip_switch.md * Ran formatting tools
* | Allow for removal of hysteresis on 4x encoders (#13698)tucvbif2021-08-181-0/+5
| | | | | | | | | | | | | | * Remove hysteresis on 4x encoders Sometimes, controller skips encoder pulses and when it returns to default position, the encoder_pulses variable isn't equals 0. And when I turn encoder in opposite direciton, it skips first click becase of encoder_pulses crosses zero. To prevent this, I add the ENCODER_DEFAULT_POS constant, and reset encoder_pulses into 0 when the state variable equals ENCODER_DEFAULT_POS. * Documentation for ENCODER_DEFAULT_POS
* | Migrate platform independent code from tmk_core -> quantum (#13673)Joel Challis2021-08-1817-1/+4810
| | | | | | * Migrate action|keyboard|keycode|eeconfig from tmk_core -> quantum
* | Begin to carve out platform/protocol API - Single main loop (#13843)Joel Challis2021-08-181-0/+41
| | | | | | | | | | * Begin to carve out platform/protocol API * Fix up after rebase
* | Add a toggle key for GUI On/Off in Magic feature (#13830)Drashna Jaelre2021-08-182-0/+7
| |
* | Digitizer HID interface : absolute coordinates for mouse cursor (#12851)a-chol2021-08-182-0/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add digitizer HID interface for setting the mouse cursor position at absolute screen coordinates. Tested on Pro Micro, Proton C and Blackpill. * Update docs/feature_digitizer.md Co-authored-by: Ryan <fauxpark@gmail.com> * Update tmk_core/protocol/usb_descriptor.c Co-authored-by: Ryan <fauxpark@gmail.com> * Add missing copyrights Add V-USB support * Add support for digitizer dedicated endpoint for lufa and chibios. Fix formatting issues Move digitizer_task definition to the feature's base implementation file * Run cformat on modified files * Change digitizer report usage to Digitizer instead of Pen to avoid pointer disappearing on Windows. * Update tmk_core/protocol/vusb/vusb.c Co-authored-by: Ryan <fauxpark@gmail.com> * Run cformat from docker image * Remove send_digitizer from host_driver_t and instead rely on the declaration being the interface to the implementation in each HW-specific usb implementation. * Fix build : send_digitizer shouldn't be static in vusb and add weak-linkage implementation for tests without usb implementation * Change digitizer user interface to match pointing device's * Update documentation with new API Co-authored-by: a-chol <nothing@none.com> Co-authored-by: Ryan <fauxpark@gmail.com>
* | Steno combinedkeys (#12538)freqmod2021-08-183-0/+35
| | | | | | | | | | * Add support for steno keys that press adjacent keys simultaniously * Add some docs for steno combined keys
* | Rgb matrix/enable modes explicitly (#13758)Drashna Jaelre2021-08-1849-62/+299
| | | | | | | | | | | | | | | | | | | | | | * Change animations to require explicet activation * Add support for legacy config * Make default for now * Add LED Matrix support * change LED Matrix docs
* | Fixup Audio startup and add to documents (#13606)Drashna Jaelre2021-08-152-1/+4
| | | | | | | | | | * Fixup Audio startup and add to documents * fix doc descriptions
* | Fix ifdefs for OLED split sync code (#14017)Drashna Jaelre2021-08-153-6/+6
| |
* | Enable sync of OLED/ST7565 display on/off state on Splits (#13542)Drashna Jaelre2021-08-153-21/+105
| | | | | | | | | | | | | | | | | | * Enable sync of OLED/ST7565 display on/off state on Splits * Only send if states are not matched Co-authored-by: Nick Brassel <nick@tzarc.org> Co-authored-by: Nick Brassel <nick@tzarc.org>
* | Fix `combo_disable` (#13988)Pete Sevander2021-08-141-8/+10
| | | | | | | | | | | | - Dump key buffer when combos are disabled. - Recursive calls to `dump_key_buffer` need to start dumping the buffer from index i+1 to avoid possible infinite loops. - Handle combo key releases even though combo processing is disabled.
* | Fix compilation issue. (#13926)Nick Brassel2021-08-091-1/+1
| |
* | Add support for STM32F407x MCUs. (#13718)thpoll832021-08-091-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add support for STM32F407x MCUs. * Removing STMF407 MCU variation * Update quantum/mcu_selection.mk Remove options for dfu flashing Co-authored-by: Ryan <fauxpark@gmail.com> * DISABLE STM32_USB_USE_OTG1 * Update platforms/chibios/GENERIC_STM32_F407XE/configs/mcuconf.h Co-authored-by: Drashna Jaelre <drashna@live.com> * Update platforms/chibios/GENERIC_STM32_F407XE/configs/mcuconf.h Co-authored-by: thomas.pollak <thomas.pollak@dynatrace.com> Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
* | Refactor `quantum/command.{c,h}` for code size & {read,maintain}ability (#11842)Liyang HU2021-08-072-317/+277
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * quantum/command.c: coalesce `print()`s in `command_common_help()` & `print_version()` Also undo some damage by clang-format in b624f32f94 * quantum/command.c: replace `print(…); print_{,val_}{dec,hex}*(…);` sequences with single `xprintf(…)` `print_{dec,hex}*(…)` are just `#define`s for `xprintf(…)` anyway. Each additional `xprintf(…)` costs ~8 bytes: the call instructions, plus an additional NUL terminator. This _really_ adds up: this commit saves 814 bytes on my ATmega32. * quantum/command.c: optimise `mousekey_console()` for size & legibility Made various tweaks to the interface, but still functionally identical. Assume `KC_1`…`KC_0` to be contiguous, and removed `numkey2num(…)` entirely. It was exported in `command.h` by 1a0bac8bcc for no obvious reason, before which it was `static`. I doubt anyone uses it. `mousekey_console()` is now enabled regardless of `MK_3_SPEED`. Needs fleshing out for things other than the X11 variant though. This commit saves 638 bytes on my ATmega32.
* | Remove Full Bootmagic (#13846)James Young2021-08-065-267/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * disambiguate Bootmagic rules in keymaps The files edited by this commit were added at a point in time where `BOOTMAGIC_ENABLE = yes` enabled full Bootmagic. This commit edits the files to specify that full Bootmagic is intended. * remove BOOTMAGIC_ENABLE=full setting * unify commented BOOTMAGIC_ENABLE rules in keyboards Explicitly sets `BOOTMAGIC_ENABLE = no` in keyboards where the rule was commented out. Command: ``` find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;#[ \t]*\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-zA-Z]\+\).*;\1 = no # Virtual DIP switch configuration;g' {} + ``` * remove commented Bootmagic rules from keymap/user level Command: ``` find keyboards/ layouts/ users/ -type f -name 'rules.mk' -exec sed -i -e '/#.*\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*/d' {} + ``` * update keyboard BOOTMAGIC_ENABLE rule formatting Sets the formatting of BOOTMAGIC_ENABLE rules to `BOOTMAGIC_ENABLE = [value]`, without the inline comments (which will be replaced later). Command: ``` find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' + ``` * update keyboards' BOOTMAGIC_ENABLE settings Updates keyboard `rules.mk` files to use `BOOTMAGIC_ENABLE = lite` where `BOOTMAGIC_ENABLE = full` was being used. Command: ``` find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = \)full;\1lite;g' '{}' + ``` * update keymap/user BOOTMAGIC_ENABLE settings Updates keymap/user `rules.mk` files to use `BOOTMAGIC_ENABLE = lite` where `BOOTMAGIC_ENABLE = full` was being used. Commands: ``` find keyboards/ -type f -name 'rules.mk' -and -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE[ \t=]\+\)full;\1lite;g' '{}' + find layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE[ \t=]\+\)full;\1lite;g' '{}' + ``` * remove and replace inline comments in keyboards and keymap/user files Removes and replaces the inline comments, which have been updated to read `Enable Bootmagic Lite`. Commands: ``` find keyboards/ -type f -name 'rules.mk' -and -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' + find layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' + find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = lite\);\1 # Enable Bootmagic Lite;g' '{}' + find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = yes\);\1 # Enable Bootmagic Lite;g' '{}' + find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = no\);\1 # Enable Bootmagic Lite;g' '{}' + ``` * rename improperly named makefiles Some files intended to be used as makefiles had improper names causing them to not be used as intended when building. This commit corrects the filenames of the affected files. * update renamed file with new rule formatting * update QMK's template files Updates QMK's `rules.mk` templates to use the new inline comment. * update QMK Docs - remove documentation of full Bootmagic - update links to Bootmagic Lite doc - add doc for Magic Keycodes * rules.mk patch for coarse/ixora and coarse/vinta
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2021-08-061-1/+1
|\|
| * Avoid name conflicts with usb_hid Arduino code (#13870)Joel Challis2021-08-061-1/+1
| | | | | | | | | | * Avoid name conflicts with usb_hid Arduino code * Fix tests
* | Process combos earlier & overlapping combos (#8591)Pete Sevander2021-08-064-112/+498
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |