Commit Graph

1230 Commits

Author SHA1 Message Date
Drashna Jaelre
98990f50d7 Additional updates for firmware25 (#411)
Some checks failed
Build firmware / build-firmware (default) (push) Has been cancelled
Build firmware / build-firmware (oryx) (push) Has been cancelled
Unit Tests / test (push) Has been cancelled
* add 75_(ansi|iso) Community Layouts to mechlovin/olly/octagon (#22459)

* expand mechlovin/olly/octagon

* Update info.json

* Rename info.json to keyboard.json

* correct matrix position for key

* remove VIA

* [Core] get_keycode_string(): function to format keycodes as strings, for more readable debug logging. (#24787)

* keycode_string(): Format keycodes as strings.

This adds the `keycode_string()` function described in
https://getreuer.info/posts/keyboards/keycode-string/index.html
as a core feature.

* Fix formatting.

* keycode_string review revisions.

* Rename keycode_string() -> get_keycode_string() for consistency with
  existing string utils like get_u8_str().

* Revise custom keycode names with separate _user and _kb tables.

* Correct indent in builddefs/generic_features.mk.

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

* Add KC_NUHS, KC_NUBS, and KC_CAPS.

* Fix linking error with custom names.

* Attempt at simplifying interface.

* Formatting fix.

* Several fixes and revisions.

* Don't use PSTR in KEYCODE_STRING_NAME, since this fails to build on
  AVR. Store custom names in RAM.
* Revise the internal table of common keycode names to use its own
  storage representation, still in PROGMEM, and now more efficiently
  stored flat in 8 bytes per entry.
* Support Swap Hands keycodes and a few other keycodes.

* Revert "Formatting fix."

This reverts commit 2a2771068c7ee545ffac4103aa07e847a9ec3816.

* Revert "Attempt at simplifying interface."

This reverts commit 8eaf67de76e75bc92d106a8b0decc893fbc65fa5.

* Simplify custom names API by sigprof's suggestion.

* Support more keycodes.

* Add QK_LOCK keycode.
* Add Secure keycodes.
* Add Joystick keycodes.
* Add Programmable Button keycodes.
* Add macro MC_ keycodes.
* For remaining keys in known code ranges, stringify them as
  "QK_<feature>+<number>". For instance, "QK_MIDI+7".

* Bug fix and a few improvements.

* Fix missing right-hand bit when displaying 5-bit mods numerically.
* Support KC_HYPR, KC_MEH, HYPR_T(kc), MEH_T(kc).
* Exclude one-shot keycodes when NO_ACTION_ONESHOT is defined.

---------

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

* Align to latest CLI dependencies (#24553)

* Align to latest CLI dependencies

* Update docs

* Add Community Layout support to daskeyboard4 (#23884)

add ansi CL

* Add the plywrks ply8x hotswap variant. (#23558)

* Add hotswap variant

* Update RGB matrix

* Move files around to target develop

* Revert rules.mk for keyboards/jaykeeb/joker/rules.mk

* Update keyboards/plywrks/ply8x/hotswap/keyboard.json

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Apply suggestions from code review

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Add missing community layouts

* Delete keyboards/plywrks/ply8x/rules.mk

* Update missing keys in RGB matrix

* Add missing key in RGB matrix for hotswap ver

* Remove via keymaps

* Add keyboard alias for plywrks/ply8x to plywrks/ply8x/solder

* Fix typo

* Fix another typo

---------

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* [Core] use `keycode_string` in unit tests (#25042)

* tests: use keycode_string feature

With a proper keycode to string implementation in qmk there is no need
to use the unit tests only implementation anymore.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

* tests: remove keycode_util feature

This feature is no longer used as we switched the tests to the
keycode string implementation.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

* Non-volatile memory data repository pattern (#24356)

* First batch of eeconfig conversions.

* Offset and length for datablocks.

* `via`, `dynamic_keymap`.

* Fix filename.

* Commentary.

* wilba leds

* satisfaction75

* satisfaction75

* more keyboard whack-a-mole

* satisfaction75

* omnikeyish

* more whack-a-mole

* `generic_features.mk` to automatically pick up nvm repositories

* thievery

* deferred variable resolve

* whitespace

* convert api to structs/unions

* convert api to structs/unions

* convert api to structs/unions

* fixups

* code-side docs

* code size fix

* rollback

* nvm_xxxxx_erase

* Updated location of eeconfig magic numbers so non-EEPROM nvm drivers can use them too.

* Fixup build.

* Fixup compilation error with encoders.

* Build fixes.

* Add `via_ci` keymap to onekey to exercise VIA bindings (and thus dynamic keymap et.al.), fixup compilation errors based on preprocessor+sizeof.

* Build failure rectification.

* Migrate remaining `split.soft_serial_pin` to `split.serial.pin` (#25046)

* Migrate keyboards/bastardkb

* Migrate keyboards/handwired

* Migrate keyboards/helix

* Fix duplicate serial key

* Fix outdated GPIO control function usage (#25060)

* [Modules] Provide access to current path in `rules.mk`. (#25061)

* Update keymap for keycult 1800 (#25070)

Update keymap

Co-authored-by: yiancar <yiancar@gmail.com>

* Add handwired/erikpeyronson/erkbd (#25030)


Co-authored-by: Erik Peyronson <erik.peyronson@gmail.com>
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>

* Add support for Starry FRL (#24626)


Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>

* Add "Large Lad" keyboard (#24727)

Co-authored-by: jack <jack@pngu.org>

* Bump vite from 5.4.12 to 5.4.15 in /builddefs/docsgen (#25065)

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.12 to 5.4.15.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.15/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.15/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Allow AnnePro2 to reboot (#24886)

Without this, the QK_REBOOT key did nothing.

* Fix path typo related RP2040 (#25069)

Fix path typo

* Update onekey example for nucleo f446re (#25067)

* use accessible pins for nucleo f446re onekey example

* remove pin collision with matrix in keyboard.json

* use accessible pins for LED

* remove pin collision with matrix

* Update readme.md to reflect pin changes

* Module documentation typo correction (#25073)

* Fix lockups on AVR with `qmk/hello_world` module (#25074)

Fix lockups on AVR.

* At101ish (#25072)

* Dell AT101 replacement pcb support

* Update keyboards/at101ish/readme.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* remove empty src clause in makefile

* feature: Update at101ish to qmk v0.28

* feature: Add osdetecting keymap variant.

* refactor: Move at101ish keyboard to handwired folder.

* fix: Adjust at101ish readme-

* fix: review changes.

* chore: Remove unneeded feature.

---------

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

* Add "license" field to Community Module JSON schema. (#25085)

Add "license" field to community module schema.

* Add kt60HS-T v2 PCB (#25080)

* Add kt60HS-Tv2

* Update keyboards/keyten/kt60hs_t/readme.md

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

* Update keyboards/keyten/kt60hs_t/v1/readme.md

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

* Update keyboards/keyten/kt60hs_t/v2/keyboard.json

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

* Update keyboards/keyten/kt60hs_t/v2/readme.md

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

* Update keyboards/keyten/kt60hs_t/info.json

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

* Change of structure

* Moving the keyboard

* Update data/mappings/keyboard_aliases.hjson

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

* Update keyboards/keyten/kt60hs_t/v1/keyboard.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/keyten/kt60hs_t/v2/keyboard.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

---------

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Make sure that unit tests run on all release versions

* [ErgoDox EZ] Fix complication issues due to updates

* [ErgoDox EZ] Fix compilication errors and warnings

We want all green!

* Fix 'qmk lint -kb' argument handling (#25093)

* Refactor Deemen17 Works DE60 (#25088)

* Add Coban Pad 12A (#25039)



Co-authored-by: jack <jack@pngu.org>

* [Keyboard] Add PHDesign PH60/Multi Keyboard PCB (#25086)

* Add PH60/Multi Support

* Add PCB PIcture for README

* Remove MO(_FN2)

* README Typo Fix

* Layout and README Adjustment

* Add README for PHDesign Main Folder

* Keymap Improvement

* Update README.md

* [Keyboard] Add Ortho Slayer (#25099)

* Add Ortho Slayer

* Update keyboards/keyten/ortho_slayer/keymaps/default/keymap.c

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/keyten/ortho_slayer/readme.md

Co-authored-by: jack <jack@pngu.org>

---------

Co-authored-by: jack <jack@pngu.org>

* Fix coban pad9a wrong layout in keyboard.json (#25100)

* Remove `CTPC`/`CONVERT_TO_PROTON_C` options (#25111)

* Remove direct docs.qmk.fm links from docs (#25113)

* Add warning when deprecated 'promicro_rp2040' is used (#25112)

* Add Vida to QMK (#24225)

Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* More Windows->Unix style path fixes. (#25119)

* Include `math.h` where necessary. (#25122)

* Cater for use of `__errno_r()` in ChibiOS syscalls.c with newer picolibc revisions (#25121)

* chore: Allow disabling underglow on Work Louder devices (#25123) (#25120)

* Allow disabling Underglow on Work Louder devices

Allows disabling Underglow on Work Louder devices by using `RGBLIGHT_ENABLE = no` on rules.mk

* Update keyboards/work_louder/rgb_functions.c

Suggested by @zvecr on review.

Co-authored-by: Joel Challis <git@zvecr.com>

---------

Co-authored-by: Joel Challis <git@zvecr.com>

* Exclude external userspace from lint checking (#24680)

* fix: Fix startup sound for Preonic (#25132) (#25133)

Add `AUDIO_INIT_DELAY ` to config.h to resolve

* New standard layout for Savage65 (65_ansi_blocker_tsangan_split_bs) (#24690)

* Added a default firmware and layout for the WindStudio Wind X R1
keyboard.

* Wind X R1: cleaned-up the folders to make clear that this firmware is
for the release 1 of this keyboard.

* Delete keyboards/windstudio/wind_x/R1 directory

Removing the uppercase R1 folder

* feat(cannonkeys/savage65): Added layout to keyboard.json
- Added the layout LAYOUT_65_ansi_blocker_tsangan_split_bs to the
  community layouts.

* kradoindustries_promenade: add LAYOUT_1x2u (#25090)

* Update shuguet/shu89 (#24780)

* Update keyboard.json

Update mod keys location in RGB layout.

* Update keyboard.json

* Update keyboards/shuguet/shu89/keyboard.json

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

---------

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

* [Keyboard] Add suika83opti (#24991)

* [chore]: move and rename mouse/scroll min/max defines (#25141)

* protocol: move {XY/HV}_REPORT_{MIN,MAX} into report.h

..to allow easier re-use in other code implementations.

* protocol: rename {XY/HV}_REPORT_{MIN/MAX} to MOUSE_REPORT_{XY/HV}_{MIN/MAX}

..to avoid naming collisions.

* [Core] Flow Tap tap-hold option to disable HRMs during fast typing (#25125)

aka Global Quick Tap, Require Prior Idle

* Add Link keyboard (#25058)

Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>

* Remove Sofle `rgb_default` keymap & tidy readme's (#25010)

* Added Keyboard LumPy27 (#24967)

Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>

* [Keyboard] Kobold r1 (#25161)

* Kobold r1

* Apply suggestions from code review

Co-authored-by: jack <jack@pngu.org>

* `board_init` => `early_hardware_init_post`.

---------

Co-authored-by: jack <jack@pngu.org>

* [Docs] Unify lighting step descriptions (#25167)

unify lighting step descriptions and defaults across docs

* [Keyboard] Add voidhhkb-hotswap (#25007)

* Added files for voidhhkb-hotswap

* Updated keyboard name to resolve build errors

* Implement suggestions from PR. Use 60_hhkb community layout.

* Update keyboards/void/voidhhkb_hotswap/readme.md

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

* Apply suggestions from code review

Co-authored-by: jack <jack@pngu.org>

---------

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

* Remove duplication of RGB Matrix defaults (#25146)

* Remove duplication of RGB Matrix defaults

* Remove more duplication of defaults

* fix

* Fix missing and extra commas in JSON schema (#25057)

* Remove duplication of RGBLight defaults (#25169)

* Ignore the Layer Lock key in Repeat Key and Caps Word. (#25171)

* Allow for disabling EEPROM subsystem entirely. (#25173)

* [keyboard] ymdk/id75/rp2040 (#25157)

Co-authored-by: tao heihei <>

* Remove `bluefruit_le_read_battery_voltage` function (#25129)

* Fix 'Would you like to clone the submodules?' prompt under msys (#24958)

* Fixup eeconfig lighting reset. (#25166)

* DOCS: `qmk-hid` missing in bootloaders list? (#25177)

* Fix for `.clangd`. (#25180)

* Update develop branch to Pico SDK 1.5.1 (#25178)

* Add lint warning for empty url (#25182)

* Implement connection keycode logic (#25176)

* Add handwired/footy (#25151)

Co-authored-by: jack <jack@pngu.org>

* Decrease firmware size for `anavi/macropad8`. (#25185)

Preparation for bootstrapper.

* Align ChibiOS `USB_WAIT_FOR_ENUMERATION` implementation (#25184)

* [Bug][Core] Fix for Flow Tap: fix handling of distinct taps and timer updates. (#25175)

* Flow Tap bug fix.

As reported by @amarz45 and @mwpardue, there is a bug where if two
tap-hold keys are pressed in distinct taps back to back, then Flow Tap
is not applied on the second tap-hold key, but it should be.

In a related bug reported by @NikGovorov, if a tap-hold key is held
followed by a tap of a tap-hold key, then Flow Tap updates its timer on
the release of the held tap-hold key, but it should be ignored.

The problem common to both these bugs is that I incorrectly assumed
`tapping_key` is cleared to noevent once it is released, when actually
`tapping_key` is still maintained for `TAPPING_TERM` ms after release
(for Quick Tap). This commit fixes that. Thanks to @amarz45, @mwpardue,
and @NikGovorov for reporting!

Details:

* Logic for converting the current tap-hold event to a tap is extracted
  to `flow_tap_key_if_within_term()`, which is now invoked also in the
  post-release "interfered with other tap key" case. This fixes the
  distinct taps bug.

* The Flow Tap timer is now updated at the beginning of each call to
  `process_record()`, provided that there is no unsettled tap-hold key
  at that time and that the record is not for a mod or layer switch key.
  By moving this update logic to `process_record()`, it is conceptually
  simpler and more robust.

* Unit tests extended to cover the reported scenarios.

* Fix formatting.

* Revision to fix @NikGovorov's scenario.

The issue is that when another key is pressed while a layer-tap hasn't
been settled yet, the `prev_keycode` remembers the keycode from before
the layer switched. This can then enable Flow Tap for the following key
when it shouldn't, or vice versa.

Thanks to @NikGovorov for reporting!

This commit revises Flow Tap in the following ways:

* The previous key and timer are both updated from `process_record()`.
  This is slightly later in the sequence of processing than before, and
  by this point, a just-settled layer-tap should have taken effect so
  that the keycode from the correct layer is remembered.

* The Flow Tap previous key and timer are updated now also on key
  release events, except for releases of modifiers and held layer
  switches.

* The Flow Tap previous key and timer are now updated together, for
  simplicity. This makes the logic easier to think about.

* A few additional unit tests, including @NikGovorov's scenario as
  "layer_tap_ignored_with_disabled_key_complex."

* Remove empty `url` fields (#25181)

* Prompt for converter when creating new keymap (#25116)

* High resolution scrolling (without feature report parsing) (#24423)

* hires scrolling without feature report parsing

* fix valid range for exponent

* fix incorrect minimum exponent value documentation

* Avoid duplication in generated community modules `rules.mk` (#25135)

* Bump rlespinasse/github-slug-action from 3 to 5 (#25021)

* Remove `"console":false` from keyboards (#25190)

* Update 'qmk generate-api' to only publish pure DD keymaps (#24782)

* Remove more duplication of defaults (#25189)

* Align `new-keyboard` template to current standards (#25191)

* Bump vite from 5.4.15 to 5.4.18 in /builddefs/docsgen (#25192)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix `boardsource/beiwagon` RGB Matrix coordinates (#25018)

* Remove `"command":false` from keyboards (#25193)

* Extend lint checks to reject duplication of defaults (#25149)

* modelh: add prerequisites for via support (#24932)

* First TypeK support (#22876)

* Add Lemokey X0 keyboard (#24994)

* keyboards/annepro2/ld: Add per-variant linker scripts (#24999)

C18 has an MCU with 16K SRAM, up from C15's 8K.

Split the linker script into C15 and C18 variants to make use of the
larger RAM capacity of C18.

* Add new keyboard MirageiX (#25054)

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: jack <0x6a73@protonmail.com>

* [Keymap] Sofle RGB - fixed stuck on numpad layer and layout comments (#24942)

* Add handwired 4x14 LuMaWing keyboard (#24885)

* Add jcpm2 (JC Pro Macro 2) (#24816)

Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>

* [Keyboard] Add splitkb.com's Halcyon Elora rev2 (#24790)

Co-authored-by: Drashna Jaelre <drashna@live.com>

* [Keyboard] mzmkb/slimdash/rev1 (#24804)

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>

* Added new keyboard epssp75 (#24756)

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Addition of OK-1 (#24646)

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>

* Add Umbra keyboard (#24569)

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>

* Amptrics 0420 keyboard addition (#24744)

Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>

* [Core] Enhance Flow Tap to work better for rolls over multiple tap-hold keys. (#25200)

* Flow Tap revision for rolling press.

* Remove debugging cruft.

* Formatting fix.

* amptrics/0422 - Prevent OOB in `update_leds_for_layer` (#25209)

* [Keyboard] Add Gravity-45(#25206)

* add gravity-45

* readme.md

* fix readme

* Update keyboards/green_keys/gravity_45/keyboard.json

Co-authored-by: jack <0x6a73@protonmail.com>

* run qmk format-json -i keyboards/green_keys/gravity_45/keyboard.json

* add url

* Update keyboards/green_keys/gravity_45/keyboard.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboard.json

* Update keyboard.json

* Update keyboards/green_keys/gravity_45/keyboard.json

Co-authored-by: Drashna Jaelre <drashna@live.com>

---------

Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>

* Remove redundant keyboard headers (#25208)

* Fix Spleeb compile when pointing device is enabled (#25016)

* [Bug] Minimise force-included files (#25194)

* Add additional hooks for Community modules (#25050)

* Workaround for resolving keyboard alias for config file values (#25228)

* Generate versions to keycode headers (#25219)

* Resolve alias for `qmk new-keymap` keyboard prompts (#25210)

* [Keyboard] Add Binepad KN01 (#25224)

* Add Binepad NeoKnob KN01

* post @waffle87 recommendations

* Add battery changed callbacks (#25207)

* Ensure `qmk_userspace_paths` maintains detected order (#25204)

* Bind Bluetooth driver to `host_driver_t` (#25199)

* Deprecate `qmk generate-compilation-database`. (#25237)

* Remove force disable of NKRO when Bluetooth enabled (#25201)

* Keycult 60 (#25213)

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <jack@pngu.org>

* [Keyboard] Add Binepad KnobX1 (#25222)

Co-authored-by: Drashna Jaelre <drashna@live.com>

* [Keyboard] Update Tractyl Manuform and add F405 (weact) variant (#24764)

* Layout corrections: Zed60 (#25003)

* Fixed print statement after enabling 32-bit layers (#25027)

* Fix Aurora sweep default keymap configuration (#25148)

* Docs update for installing qmk with uv (#24995)

* CXT Studio 12E3: Fix encoder resolutions not applying (#25242)

* add resolution to encoders so they apply

* Tweak default keymap

* replace KC_UNDO with C(KC_Z) as well

* Add debounce to duplicated defaults check (#25246)

* [Docs] Fix typos introduced by PR #25050 (#25250)

It isn't a drashna PR if there aren't some typos in it somewhere.

* Allow LVGL onekey keymap to be able compile for other board (#25005)

* [Keyboard] Add Jason Hazel’s Bad Wings v2 (#25252)

Co-authored-by: Florent Allard <florent.allard@savoirfairelinux.com>

* Add raw_hid support to host driver (#25255)

* Fix Wear Leveling compilation (#25254)

* [New Feature/Core] New RGB Matrix Animation "Starlight Smooth" (#25203)

* Enable community modules to define LED matrix and RGB matrix effects. (#25187)

Co-authored-by: Joel Challis <git@zvecr.com>

* Fix OS_DETECTION_KEYBOARD_RESET (#25015)

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Fixes the numlock indicator for Magic Force MF17 numpad (#25260)

* Add Harite v2 keyboard (#24975)

* dlip/haritev2 - Post merge fixes (#25264)

* Remove more USB only branches from NKRO handling (#25263)

* Deprecate `usb.force_nkro`/`FORCE_NKRO` (#25262)

* Add BDN9 Rev. 3 (#25261)

* Remove duplicate of SPI default config from keyboards (#25266)

* Resolve miscellaneous keyboard lint warnings (#25268)

* Add Zeropad (#24737)

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>

* Add Waveshare RP2040-Keyboard-3 support (#25269)

* Update PR checklist notes on custom matrix (#25240)

* Chew folders (#24785)

* gcc15 AVR compilation fixes (#25238)

* [Core] STM32G0x1 support (#24301)

* Use relative paths for schemas, instead of $id. Enables VScode validation. (#25251)

* add doio/kb03 (#24815)

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>

* Move rookiebwoy to ivndbt (#25142)

* [Chore] use {rgblight,rgb_matrix}_hsv_to_rgb overrides (#25271)

* Remove outdated `nix` support due to bit-rot. (#25280)

* Add `compiler_support.h` (#25274)

* Configure boards to use development_board - 0-9 (#25287)

* [Fix] lib8tion: enable fixed scale8 and blend functions (#25272)

lib8tion: enable fixed scale8 and blend functions

These FastLED derived lib8tion functions have been fixed and enabled by
default in FastLED. QMK just never set these defines, there is no reason
to keep the buggy implementation. It is assumed that nobody relied on
the buggy behavior.

* Configure boards to use development_board - UVWXYZ (#25288)

* [Docs] Fix tap_hold code blocks (#25298)

* salicylic_acid3/getta25 - Fix oled keymap (#25295)

* Configure boards to use development_board - S (#25293)

* Configure boards to use development_board - T (#25294)

* 2025 Q2 changelog (#25297)

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update Oryx module for newer code

* Soft reset matrix

* Use improved i2c reset for voyager and moonlander matrix

* Fix formatting

* Remove labeler action (unneeded)

* Fix module API version for Oryx module

* Use i2cStop instead of trying to work around

---------

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: QMK Bot <hello@qmk.fm>
Co-authored-by: Pascal Getreuer <50221757+getreuer@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ramon Imbao <ramonimbao@gmail.com>
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: yiancar <yiangosyiangou@cytanet.com.cy>
Co-authored-by: yiancar <yiancar@gmail.com>
Co-authored-by: Erik Peyronson <erikpeyronson@gmail.com>
Co-authored-by: Erik Peyronson <erik.peyronson@gmail.com>
Co-authored-by: Sắn <59417802+MaiTheSan@users.noreply.github.com>
Co-authored-by: Hyphen-ated <Hyphen-ated@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Geoffrey Frogeye <s+github@frogeye.fr>
Co-authored-by: lsh4711 <120231876+lsh4711@users.noreply.github.com>
Co-authored-by: Ben Green <bengreen.uk@gmail.com>
Co-authored-by: フィルターペーパー <76888457+filterpaper@users.noreply.github.com>
Co-authored-by: henrikosorensen <henrik.sorensen@gmail.com>
Co-authored-by: Ivan Gromov <38141348+key10iq@users.noreply.github.com>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Pham Duc Minh <95753855+Deemen17@users.noreply.github.com>
Co-authored-by: Dam Vu Duy <RyanDam@users.noreply.github.com>
Co-authored-by: nonameCCC <79012391+nonameCCC@users.noreply.github.com>
Co-authored-by: sudo pacman -Syu <hauvipapro@gmail.com>
Co-authored-by: Andrew Kannan <andrew.kannan@gmail.com>
Co-authored-by: Luis Garcia <luis@bitjester.com>
Co-authored-by: Christian C. Berclaz <christian.berclaz@mac.com>
Co-authored-by: Olivier Mehani <shtrom-github@ssji.net>
Co-authored-by: Sylvain Huguet <sylvain@huguet.me>
Co-authored-by: suikagiken <115451678+suikagiken@users.noreply.github.com>
Co-authored-by: Daniel Reisch <danieljreisch@gmail.com>
Co-authored-by: ClownFish <177758267+clownfish-og@users.noreply.github.com>
Co-authored-by: JamesWilson1996 <47866504+JamesWilson1996@users.noreply.github.com>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Jan Bláha <blaha.j502@gmail.com>
Co-authored-by: Eric Molitor <534583+emolitor@users.noreply.github.com>
Co-authored-by: CJ Pais <cj@cjpais.com>
Co-authored-by: eynsai <47629346+eynsai@users.noreply.github.com>
Co-authored-by: Joel Beckmeyer <joel@beckmeyer.us>
Co-authored-by: Álvaro A. Volpato <alvaro.augusto.volpato@gmail.com>
Co-authored-by: Aidan Gauland <aidalgol@users.noreply.github.com>
Co-authored-by: Michał Kopeć <michal@nozomi.space>
Co-authored-by: takashicompany <t@kashi.company>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Matheus Marques <matheusmbar@gmail.com>
Co-authored-by: LucasMateijsen <l.mateijsen@outlook.com>
Co-authored-by: Jeremy Cook <jscook55@gmail.com>
Co-authored-by: VeyPatch <126267034+VeyPatch@users.noreply.github.com>
Co-authored-by: mizma <omoikane@path-works.net>
Co-authored-by: hen-des <141591967+hen-des@users.noreply.github.com>
Co-authored-by: Cipulot <40441626+Cipulot@users.noreply.github.com>
Co-authored-by: josephawilliamsiv <31166673+josephawilliamsiv@users.noreply.github.com>
Co-authored-by: vchowl <vchowl@outlook.com>
Co-authored-by: Christopher Hoage <iam@chrishoage.com>
Co-authored-by: Silvino R. <366673+silvinor@users.noreply.github.com>
Co-authored-by: dabstractor <dustindschultz@gmail.com>
Co-authored-by: Nathan Cain <13713501+nathanscain@users.noreply.github.com>
Co-authored-by: muge <221161+muge@users.noreply.github.com>
Co-authored-by: HorrorTroll <sonicvipduc@gmail.com>
Co-authored-by: cyxae <cyxae@amphitryon.nrst.fr>
Co-authored-by: Florent Allard <florent.allard@savoirfairelinux.com>
Co-authored-by: art-was-here <mail@buckles.email>
Co-authored-by: Matti Hiljanen <170205+qvr@users.noreply.github.com>
Co-authored-by: Wasteland Fluttershy <ingvardm@gmail.com>
Co-authored-by: Dane Lipscombe <danelipscombe@gmail.com>
Co-authored-by: Danny <nooges@users.noreply.github.com>
Co-authored-by: Infos <136488157+diffrentGuesser@users.noreply.github.com>
Co-authored-by: Florent Linguenheld <f@linguenheld.fr>
Co-authored-by: ivan <81021475+ivndbt@users.noreply.github.com>
Co-authored-by: Pablo Martínez <58857054+elpekenin@users.noreply.github.com>
2025-06-04 15:26:21 +07:00
Drashna Jael're
4acc7c8baf Merge remote-tracking branch 'origin/master' into firmware24 2025-03-27 20:39:32 -07:00
Stefan Kerkmann
8e6bfbfdc2 [Core] chibios: usb_main: remove OTG sof workaround (#24259)
chibios: usb_main: remove OTG sof workaround

With the update of ChibiOS and ChibiOS-Contrib containing fixes for the
OTGv1 LLD the workaround is not necessarry anymore.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
2024-12-15 18:42:43 +01:00
Ryan
a3cfb1dab7 Joystick: add support for 8-way hat switch (#24515) 2024-11-09 14:10:10 -08:00
Stefan Kerkmann
3f9d464412 [Core] usb_device_state: consolidate usb state handling across implementations (#24258)
* usb_device_state: add idle_rate, led and protocol

Previously all usb drivers and platform implementations (expect for our
oddball atsam) tracked the same two global variables:

- keyboard_protocol: to indicate if we are in report or boot protocol
- keyboard_idle: for the idle_rate of the keyboard endpoint

And a local variable that was exposed trough some indirection:

- keyboard_led_state: for the currently set indicator leds (caps lock etc.)

These have all been moved into the usb_device_state struct wich is
accessible by getters and setters.

This reduces code duplication and centralizes the state management
across platforms and drivers.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

* usb_device_state: reset protocol on reset

The usb hid specification section 7.2.6 states:

When initialized, all devices default to report protocol. However the
host should not make any assumptions about the device’s state and should
set the desired protocol whenever initializing a device.

Thus on reset we should always do exactly that.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

* keyboards: fix oversize warnings

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

---------

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
2024-10-18 09:57:08 +02:00
QMK Bot
7e53bb9965 Merge remote-tracking branch 'origin/master' into develop 2024-10-15 14:06:17 +00:00
Ryan
85a7627641 Digitizer: fix units tag in report descriptor (#24482) 2024-10-15 07:05:43 -07:00
eynsai
2cb35373c6 Extended wheel reports (#24422)
extended wheel reports
2024-10-06 11:26:55 +02:00
Nick Brassel
305e7baa71 Allow for get_hardware_id() to be used for serial number. (#24053)
* Allow for `get_hardware_id()` to be used for serial number.

* Length checks.

* Explain length.

* Cleanup.

* Preprocessor magic.

* Use the force, Batman.

* Swap logic; if SERIAL_NUMBER is defined use that, otherwise derive it.

* Cleanup.

* Cleanup.
2024-10-06 21:44:36 +13:00
Nick Brassel
9a8f5a80e4 Remove RING_BUFFERED_6KRO_REPORT_ENABLE due to disuse. (#24433) 2024-09-24 12:53:55 +01:00
Joel Challis
3bd303f204 Remove arm_atsam platform (#24337) 2024-09-02 03:48:17 +01:00
Izumemori
40f2575b56 Fix NKRO and Mouse Emulation on arm_atsam (#23945) 2024-08-13 09:06:24 +10:00
Joel Challis
d0e89aecca Align LUFA suspend logic (#24055) 2024-07-05 12:02:39 +01:00
Drashna Jaelre
d03c020a9c LUFA: make send_report a boolean (#392) 2024-07-05 13:12:21 +07:00
Drashna Jaelre
bdca9318f9 Change suspend condition check order on ChibiOS (#24020) 2024-07-04 12:13:00 +10:00
Drashna Jael're
3fd3727224 Revert "LUFA: make send_report a boolean"
This reverts commit 07edd8fff4.
2024-06-25 18:38:53 -07:00
Drashna Jael're
8b29b83dac Revert "[RAW HID] Make send func a bool"
This reverts commit e5fb4085c8.
2024-06-25 18:38:50 -07:00
Drashna Jael're
e5fb4085c8 [RAW HID] Make send func a bool 2024-06-25 18:38:23 -07:00
Drashna Jael're
07edd8fff4 LUFA: make send_report a boolean 2024-06-25 18:38:23 -07:00
Stefan Kerkmann
8253697a63 [FIX] ChibiOS: USB Digitizer and Joystick IN endpoint compilation (#23854)
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-06-03 22:35:46 +10:00
Joel Challis
16cca527a6 Fix WAIT_FOR_USB handling (#23598) 2024-04-24 19:33:52 +01:00
Robin Carlier
42a725e355 Remove midi_ep_task from ChibiOS (#23162)
Co-authored-by: Joel Challis <git@zvecr.com>
2024-03-28 20:40:41 -07:00
Joel Challis
63dd131d81 Refactor vusb to protocol use pre/post task (#14944) 2024-03-14 21:45:12 +11:00
Stefan Kerkmann
0e02b0c41e [Core] Refactor ChibiOS USB endpoints to be fully async (#21656) 2024-02-28 22:00:27 +11:00
Ryan
2d1aed78a6 Update GPIO macro usages in core (#23093) 2024-02-18 17:08:27 +11:00
Andre Brait
80f3da36e5 [Core] Add OS detection callbacks (#21777) 2024-02-17 01:19:02 +11:00
Joel Challis
79020519b4 Align VUSB suspend protocol logic (#22688) 2024-02-01 15:33:57 +00:00
QMK Bot
61ed48edc3 Merge remote-tracking branch 'origin/master' into develop 2024-01-22 13:18:51 +00:00
Ryan
3495cbc638 Fix missing joystick.h include (#22946) 2024-01-22 13:18:20 +00:00
Joel Challis
b6b3efc14b Remove console out endpoint (#22304) 2024-01-09 14:01:34 +00:00
Ryan
4601f339e4 V-USB: implement NKRO (#22398) 2023-11-26 22:50:53 +11:00
Ryan
cbf538aaaa V-USB: Add generic send_report() function (#22323) 2023-11-26 22:50:21 +11:00
Ryan
87d69aebbb Slight refactor of joystick axis type into typedef (#22445) 2023-11-12 18:25:18 +11:00
Ryan
6979794bac Add "AC Next Keyboard Layout Select" consumer usage entry (macOS Globe key) (#22256) 2023-10-31 02:19:53 +00:00
Stefan Kerkmann
5856d5e13b [Maintenance] USB HID control packet as struct (#21688)
* ChibiOS: USB HID control request as dedicated struct

Instead of accessing the raw USB setup packet and documenting the values
as the corresponding USB HID control request fields we introduce a
struct that allows direct access to the fields. This is safer and self
documenting.

* Rename usb_request.h to usb_types.h

In the future all shared USB data types can live in this file.
2023-10-27 18:44:58 +02:00
Ryan
db4e3bb232 V-USB: Fix GET_IDLE/SET_IDLE (#22332)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2023-10-27 12:21:13 +11:00
Ryan
b7e62af755 V-USB: Implement GET_PROTOCOL and SET_PROTOCOL handling (#22324) 2023-10-25 00:54:43 +01:00
Ryan
0c160e1fba Separate 6KRO and NKRO report structs (#22267) 2023-10-23 15:43:46 +11:00
Ryan
1bff37781b Prep work for NKRO report separation (#22268)
* Clean up some keyboard/userspace code

* Rename `KEYBOARD_REPORT_BITS` -> `NKRO_REPORT_BITS`

* Add some missing includes

* Use `PACKED` define for report types

* Fix incorrect function signatures for FlexRAM EEPROM driver
2023-10-14 13:21:20 +02:00
Stefan Kerkmann
fb18ac2b10 [Core] Bump mouse endpoint packet size to 16 bytes (#21711) 2023-09-25 12:27:34 +10:00
Ryan
a74647c1fa Remove old IS_LED_ON/OFF() macros (#21878) 2023-09-03 03:24:52 +01:00
Drashna Jaelre
25331be316 Revert changes to ChibiOS Suspend Code (#21830)
* Partially revert #19780

* Finish

* Get teensy 3.5/3.6 board files too

* fix lint issue

* Revert "[Bug] Restore usb suspend wakeup delay (#21676)"

This reverts commit e8e989fd7a.

* Apply suggestions from code review

Co-authored-by: Joel Challis <git@zvecr.com>

---------

Co-authored-by: Joel Challis <git@zvecr.com>
2023-08-27 03:52:12 +01:00
Stefan Kerkmann
e8e989fd7a [Bug] Restore usb suspend wakeup delay (#21676)
* Respect USB_SUSPEND_WAKEUP_DELAY on wakeup

This delay wasn't honored after removing `restart_usb_driver` from the
suspend and wakeup handling. It is now re-introduced in the appropriate
spot, namely after issuing a remote wakeup to a sleeping host.

* Remove old, unused and commented testing code
2023-08-02 23:42:57 +01:00
Stefan Kerkmann
b2d068d1aa Fix mouse-key spamming empty reports (#21663)
Problem:

`mousekey_task` spams empty hid reports with when a mouse key is
pressed, causing resource exhaustion in the USB mouse endpoint.

Cause:

The check whether or not to send a new mouse report would always
evaluate to true if a mouse key is pressed:

1. `mouse_report` has non-zero fields and `tmpmr` is a copy of this
   fields.
2. `mouse_report` is set to zero, `tmpmr` has now non-zero fields.
3. `has_mouse_report_changed` compares the two and evaluates to true
4. a mouse report is sent.

Fix:

The check condition of `has_mouse_report_changed` will evaluate any
empty record as unchanged, as mouse report data is relative and doesn't
need to return to zero. An empty report will still be send by
`register_mouse` on release of all mouse buttons.
2023-08-02 13:47:25 +02:00
Stefan Kerkmann
32174abcfa Update keyboard report descriptor for USB compliance (#21626)
Running the "HID Tests" suite of the USB 3 Command Verifier (USB3CV)
tool resulted in the following error:

(HID: 3.2.61) The report descriptor returned in response to a
GetDescriptor(Report) must be compliant with the HID specification.

Byte Number:   37h (  55d)
Data Field: 91 02
Mnemonic:  Output
Value: (Variable)
Errors: Error:   LOGICAL MAX MUST be bounded by Report Size

The error stems from the fact that logical minimum and maximum are
global items, which means that the next item in a report descriptor
inherits the value from the previously set value. In this case the
status leds item inherited the logical minimum (=0) and maximum (=255)
from the keycodes item. As the status leds set a report size of 1 bit,
wich can only hold a boolean, it becomes clear that this range would
never fit.

The fix is straightforward, we just define a appropriate logical maximum
(=1), the mismatch is solved and our keyboard now passes the compliance
tests. Defining the logical minimum is redundant in this case but is
kept to form a logical block.
2023-07-28 01:05:01 +01:00
Ryan
da2d2f947d quantum: remove direct quantum.h includes (#21507) 2023-07-16 23:42:56 +10:00
Ryan
b9e5895184 Eliminate TMK_COMMON_* in makefiles (#21517) 2023-07-15 17:27:32 +10:00
Ryan
30de598650 tmk_core: remove direct quantum.h includes (#21465) 2023-07-07 21:24:07 +10:00
Ryan
5542f5ede1 Get rid of USB_LED_KANA and USB_LED_COMPOSE (#21366) 2023-06-27 09:15:33 +10:00
Stefan Kerkmann
a87c74ebe1 [Bug] Fix non-functional S3 wakeup / resume from suspense (#19780)
* Update ChibiOS-Contrib for USB suspend fixes

* Remove S3 wakup workaround

ChibiOS OTGv1 driver has a remote wakeup bug that prevents the device to
resume it's operation. 02516cbc24647f522eee975e69cc0c8a925470eb 
introduced a hotfix that forcefully restarted the usb driver as a workaround. 
This workaround broke multiple boards which do not use this driver / 
peripheral. With the update of ChibiOS this hotfix is now obsolete.

* Remove restart_usb_driver overrides

they are no longer necessary as the workaround is not needed anymore
for stm32f4

* Remove unused RP_USB_USE_SOF_INTR defines

The SOF interrupt is enabled dynamically by the RP2040 usb driver
2023-06-26 23:55:52 +02:00