summaryrefslogtreecommitdiff
path: root/quantum
AgeCommit message (Collapse)Author
2022-07-25Fix QK_MAKE's reboot check (#17795)Drashna Jaelre
2022-07-23implement `tap_code16_delay` (#17748)JayceFayne
2022-07-23Add ability to enter bootloader mode from `QK_MAKE` (#17745)jack
2022-07-21Move Pointing Device Initialization (#17740)Drashna Jaelre
Move Pointing Device Initialization to after Split Post Initialization If both pointing device and split is enabled, the pointing device init needs to be called after the split post init, otherwise the connection (serial/etc) isn't initialized yet, and any commands that need to send data over (such as calling the set cpi command) never get sent over.
2022-07-21VIA Encoder Map Support (#17734)Wilba
2022-07-20fix syntax error (#17732)mknj
2022-07-20Move Pointing Device code to a subdirectory (#17684)Drashna Jaelre
2022-07-19Add support for PAW3204 Optical Sensor (#17669)Drashna Jaelre
Co-authored-by: gompa <gompa@h-bomb.nl> Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-07-18 Allow dynamic keymap to compile without via.h (#17703)Joel Challis
2022-07-14Add LED limit call (#17679)Albert Y
2022-07-14Fix the use of LED limits (#17678)Albert Y
2022-07-14[Code] Add solid reactive gradient mode (#17228)Albert Y
2022-07-14[Core] PMW33XX drivers overhaul (#17613)Stefan Kerkmann
* PMW33XX drivers overhaul This combines the PMW3389 and PM3360 drivers as they only differ in the firmware blobs and CPI get and set functions. The following changes have been made: * PMW3389 now gets the same multi-sensor feature that is already available on the PMW3360. * Introduced a shared pmw33xx_report_t struct is now directly readable via SPI transactions instead of individual byte-sized reads, saving multiple copies and bitshift operations. * pmw33(89/60)_get_report functions had unreachable branches in their motion detection logic these have been simplied as much as possible. * The fast firmware upload option has been removed as this becomes obsolete by the newly introduced polled waiting functions for ChibiOS polled waiting * PMW33(60/89)_SPI_LSBFIRST and PMW33(60/89)_SPI_MODE config options have been removed as they don't need to be configurable. * All PMW3389 and PMW3360 defines have been unified to a PMW33XX prefix to reduce code duplication and make the defines interchangeable * Adjust keyboards to PMW33XX naming scheme
2022-07-13[Bug] Fix compile issue with LED Matrix (#17658)Drashna Jaelre
2022-07-12Update LED/RGB Matrix flag function behavior (#17651)Drashna Jaelre
2022-07-12Cirque trackpad features: circular scroll, inertial cursor (#17482)Daniel Kao
2022-07-13Fix issues with RGB Matrix flags (#353)Drashna Jaelre
2022-07-13Fix caps word + autoshift (#351)Drashna Jaelre
2022-07-12fix: limit pairing key candidates to [a-Z][0-9]Florian Didron
2022-07-11Added Delay time dynamic keymap's macro feature (#16810)FREEWING.JP
Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: Ryan <fauxpark@gmail.com>
2022-07-07[Fix] Patches after printf library update (#17584)Stefan Kerkmann
* Add missing '(' to print_bin_reverse32 declaration * Fix insufficient character buffers on satisfaction75 * Remove \0 character in format string and use corrected offset math instead on rocketboard 16 * Replace snprintf_ with snprintf for djinn * Explicitly ignore format checks for tracktyl manuform that uses %b specifier * Print properly escaped version string in command.c, as PRODUCT or other defines can contain constructs like 'Vendor keyboard 66%' which will be interpreted as a format specifier
2022-07-07Make debounce() signal changes in the cooked matrix as return value (#17554)Stefan Kerkmann
2022-07-07[Core] Update mpaland/printf to eyalroz/printf fork (#16163)Stefan Kerkmann
mpaland printf implementation was abandoned in ~2019 and the fork by eyalroz is now regarded to be the goto replacement of it. So this commit incoporates the changes needed to use this fork in QMK. Note that pointer ptrdiff_t is always supported since commit 51c90f93a97fdaef895783ecbe24569be0db7cb8
2022-07-05Allow for `keymaps` array to be implemented in a file other than ↵Nick Brassel
`$(KEYMAP_C)` (#17559)
2022-07-02Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-07-02Allow for RGB actions to take place on Keydown instead of Keyup (#16886)CoffeeIsLife
* Allow for switch on keydown * add docs
2022-07-02Improve ENCODER_DEFAULT_POS to recognize lost ticks (#16932)Marek Wyborski
2022-07-02Feature-ify Send String (#17275)Ryan
2022-07-02PoC: Swap Escape and Caps (#16336)Osamu Aoki
2022-07-02Fix keys being discarded after using the leader key (#17287)torkel104
2022-07-02Expose the time of the last change to the LED state (#17222)Jouke Witteveen
2022-07-02Added Wait time to sending each Keys for Dynamic Macros function (#16800)FREEWING.JP
Co-authored-by: Joel Challis <git@zvecr.com>
2022-07-02RP2040 emulated EEPROM. (#17519)Nick Brassel
2022-07-02Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-07-02[QP] Explicit buffer alignment. (#17532)Nick Brassel
2022-07-02[QP] Add ILI9488 support. (#17438)Nick Brassel
2022-07-01Fix and add unit tests for Caps Word to work with Unicode Map, Auto Shift, ↵Drashna Jaelre
Retro Shift. (#17284) (#348) * Fix Caps Word and Unicode Map * Tests for Caps Word + Auto Shift and Unicode Map. * Fix formatting * Add additional keyboard report expectation macros This commit defines five test utilities, EXPECT_REPORT, EXPECT_UNICODE, EXPECT_EMPTY_REPORT, EXPECT_ANY_REPORT and EXPECT_NO_REPORT for use with TestDriver. EXPECT_REPORT sets a gmock expectation that a given keyboard report will be sent. For instance, EXPECT_REPORT(driver, (KC_LSFT, KC_A)); is shorthand for EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_A))); EXPECT_UNICODE sets a gmock expectation that a given Unicode code point will be sent using UC_LNX input mode. For instance for U+2013, EXPECT_UNICODE(driver, 0x2013); expects the sequence of keys: "Ctrl+Shift+U, 2, 0, 1, 3, space". EXPECT_EMPTY_REPORT sets a gmock expectation that a given keyboard report will be sent. For instance EXPECT_EMPTY_REPORT(driver); expects a single report without keypresses or modifiers. EXPECT_ANY_REPORT sets a gmock expectation that a arbitrary keyboard report will be sent, without matching its contents. For instance EXPECT_ANY_REPORT(driver).Times(1); expects a single arbitrary keyboard report will be sent. EXPECT_NO_REPORT sets a gmock expectation that no keyboard report will be sent at all. * Add tap_key() and tap_keys() to TestFixture. This commit adds a `tap_key(key)` method to TestFixture that taps a given KeymapKey, optionally with a specified delay between press and release. Similarly, the method `tap_keys(key_a, key_b, key_c)` taps a sequence of KeymapKeys. * Use EXPECT_REPORT, tap_keys, etc. in most tests. This commit uses EXPECT_REPORT, EXPECT_UNICODE, EXPECT_EMPTY_REPORT, EXPECT_NO_REPORT, tap_key() and tap_keys() test utilities from the previous two commits in most tests. Particularly the EXPECT_REPORT macro is frequently useful and makes a nice reduction in boilerplate needed to express many tests. Co-authored-by: David Kosorin <david@kosorin.net> Co-authored-by: Pascal Getreuer <50221757+getreuer@users.noreply.github.com> Co-authored-by: David Kosorin <david@kosorin.net>
2022-06-30[Core] Add Raspberry Pi RP2040 support (#14877)Stefan Kerkmann
* Disable RESET keycode because of naming conflicts * Add Pico SDK as submodule * Add RP2040 build support to QMK * Adjust USB endpoint structs for RP2040 * Add RP2040 bootloader and double-tap reset routine * Add generic and pro micro RP2040 boards * Add RP2040 onekey keyboard * Add WS2812 PIO DMA enabled driver and documentation Supports regular and open-drain output configuration. RP2040 GPIOs are sadly not 5V tolerant, so this is a bit use-less or needs extra hardware or you take the risk to fry your hardware. * Adjust SIO Driver for RP2040 * Adjust I2C Driver for RP2040 * Adjust SPI Driver for RP2040 * Add PIO serial driver and documentation * Add general RP2040 documentation * Apply suggestions from code review Co-authored-by: Nick Brassel <nick@tzarc.org> Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-06-30Wear-leveling EEPROM drivers: `embedded_flash`, `spi_flash`, `legacy` (#17376)Nick Brassel
2022-06-29RGB Matrix Heatmap - Skip positions with NO_LED (#17488)Dasky
2022-06-29Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-06-29[Bug] Fix 3 speed mousekey mode (#17500)Drashna Jaelre
2022-06-29[Bug] Fix issue with mousekey movement getting stuck (#17493) (#347)Drashna Jaelre
* [Bug] Fix issue with mousekey movement getting stuck * Lint
2022-06-28Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-06-28[Bug] Fix issue with mousekey movement getting stuck (#17493)Drashna Jaelre
* [Bug] Fix issue with mousekey movement getting stuck * Lint
2022-06-27Generic wear-leveling algorithm (#16996)Nick Brassel
* Initial import of wear-leveling algorithm. * Alignment. * Docs tweaks. * Lock/unlock. * Update quantum/wear_leveling/wear_leveling_internal.h Co-authored-by: Stefan Kerkmann <karlk90@pm.me> * More tests, fix issue with consolidation when unlocked. * More tests. * Review comments. * Add plumbing for FNV1a. * Another test checking that checksum mismatch clears the cache. * Check that the write log still gets played back. Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-06-26[Split] Verify Split Pointing Device config (#17481)Thomas Kriechbaumer
2022-06-25improvements for Cirque Pinnacle trackpads (#17091)Thomas Kriechbaumer
2022-06-24Do not enable PERMISSIVE_HOLD when TAPPING_TERM exceeds 500ms (#15674)precondition
2022-06-23Refactor steno and add `STENO_PROTOCOL = [all|txbolt|geminipr]` (#17065)precondition
* Refactor steno into STENO_ENABLE_[ALL|GEMINI|BOLT] * Update stenography documentation * STENO_ENABLE_TXBOLT → STENO_ENABLE_BOLT TXBOLT is a better name but BOLT is more consistent with the pre-existing TX Bolt related constants, which all drop the "TX " prefix * Comments * STENO_ENABLE_[GEMINI|BOLT|ALL] → STENO_PROTOCOL = [geminipr|txbolt|all] * Add note on lacking V-USB support * Clear chord at the end of the switch(mode){send_steno_chord} block * Return true if NOEVENT * update_chord_xxx → add_xxx_key_to_chord * Enable the defines for all the protocols if STENO_PROTOCOL = all * Mention how to use `steno_set_mode` * Set the default steno protocol to "all" This is done so that existing keymaps invoking `steno_set_mode` don't all suddenly break * Add data driver equivalents for stenography feature * Document format of serial steno packets (Thanks dnaq) * Add missing comma