Commit Graph

2136 Commits (85dc473faafbb9370abbd69bb0c08da3dea87386)

Author SHA1 Message Date
Jeff Epler 9632360caa
Use a macro to compute the size of arrays at compile time (#18044)
* Add ARRAY_SIZE and CEILING utility macros

* Apply a coccinelle patch to use ARRAY_SIZE

* fix up some straggling items

* Fix 'make test:secure'

* Enhance ARRAY_SIZE macro to reject acting on pointers

The previous definition would not produce a diagnostic for
```
int *p;
size_t num_elem = ARRAY_SIZE(p)
```
but the new one will.

* explicitly get definition of ARRAY_SIZE

* Convert to ARRAY_SIZE when const is involved

The following spatch finds additional instances where the array is
const and the division is by the size of the type, not the size of
the first element:
```
@ rule5a using "empty.iso" @
type T;
const T[] E;
@@

- (sizeof(E)/sizeof(T))
+ ARRAY_SIZE(E)

@ rule6a using "empty.iso" @
type T;
const T[] E;
@@

- sizeof(E)/sizeof(T)
+ ARRAY_SIZE(E)
```

* New instances of ARRAY_SIZE added since initial spatch run

* Use `ARRAY_SIZE` in docs (found by grep)

* Manually use ARRAY_SIZE

hs_set is expected to be the same size as uint16_t, though it's made
of two 8-bit integers

* Just like char, sizeof(uint8_t) is guaranteed to be 1

This is at least true on any plausible system where qmk is actually used.

Per my understanding it's universally true, assuming that uint8_t exists:
https://stackoverflow.com/questions/48655310/can-i-assume-that-sizeofuint8-t-1

* Run qmk-format on core C files touched in this branch

Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-08-30 10:20:04 +02:00
QMK Bot 2c5aa98143 Merge remote-tracking branch 'origin/master' into develop 2022-08-30 08:04:19 +00:00
precondition 6f2c173743
Expand on the differences between Caps Word and Caps Lock (#18139)
* Expand on the differences between Caps Word and Caps Lock

* Add the equiv default KC_ next to intl alias

* It's configurable so it's not a problem
2022-08-30 10:03:25 +02:00
Stefan Kerkmann e99ec28f5f
[Core] Introduce pointing device specific debug messages (#17663) 2022-08-29 19:16:49 +02:00
Nick Brassel d910e8df77
Use `TAP_CODE_DELAY` for encoder mapping by default (#18098) 2022-08-28 21:53:08 -07:00
Ryan d983251c10
Switch over MANUFACTURER and PRODUCT to string literals (#18183) 2022-08-28 09:59:40 -07:00
Nick Brassel 9b5b072255
2022q3 Changelog. (#18180)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-28 14:20:52 +10:00
QMK Bot d942c03be6 Merge remote-tracking branch 'origin/master' into develop 2022-08-22 23:06:18 +00:00
Jesse 624d92e2f5
Update Tap Dance Example 4 (#18138)
break statements are missing from the switch for both registering and unregistering key codes. Neither have a default: case either. The code as exists in the repository right now does not compile. It does with this changes.
2022-08-23 00:05:35 +01:00
Erovia 5e2ffe7d8f
CLI: Teaching the CLI to flash binaries (#16584)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-08-20 15:39:19 +10:00
QMK Bot 5ee482b110 Merge remote-tracking branch 'origin/master' into develop 2022-08-19 01:19:23 +00:00
Simon Hengel e6a1afb8f1
[Docs] Fix typo in data driven config docs (#18095) 2022-08-18 18:18:51 -07:00
QMK Bot 2ed2c88a08 Merge remote-tracking branch 'origin/master' into develop 2022-08-19 01:17:50 +00:00
~ aka goonf!sh 286dd6abe6
[Docs] Update list of "ARM-based ProMicro replacements" (#18083) 2022-08-18 18:17:20 -07:00
David Hoelscher a645301c82
Add Bonsai C4 converter (#17711) 2022-08-18 01:01:54 +01:00
QMK Bot cfab3e2d6e Merge remote-tracking branch 'origin/master' into develop 2022-08-17 02:37:10 +00:00
Albert Y a1f0208797
[Docs] Use layer number as example for COMBO_ONLY_FROM_LAYER (#18072)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-16 19:37:06 -07:00
QMK Bot 77150d00ac Merge remote-tracking branch 'origin/master' into develop 2022-08-16 18:42:23 +00:00
coliss86 837a57b3c5
Adjust the hierarchy of chapter `Deferred Execution` (#18075) 2022-08-16 11:41:31 -07:00
QMK Bot c5dc4b4d1d Merge remote-tracking branch 'origin/master' into develop 2022-08-16 17:02:38 +00:00
Tom Barnes 2f4ad40561
[Docs] update pr_checklist.md with info about data-driven (#18068)
* update pr_checklist with info about data-driven

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2022-08-16 18:01:56 +01:00
Chewxy 6fc7c03e95
Added emacs as an "operating system" for input mode. (#16949) 2022-08-14 20:24:52 +01:00
Mega Mind fce99f3875
[Controller] Added board config for custom controller STeMCell (#16287)
Co-authored-by: Mariappan Ramasamy <947300+Mariappan@users.noreply.github.com>
Co-authored-by: Mariappan Ramasamy <maari@basis-ai.com>
Co-authored-by: Sadek Baroudi <sadekbaroudi@gmail.com>
2022-08-14 21:27:26 +10:00
QMK Bot 2d40713567 Merge remote-tracking branch 'origin/master' into develop 2022-08-14 00:52:21 +00:00
Nick Brassel 86261bfd8e
Add texts for Discord Events to be created post-merge. (#17944) 2022-08-13 17:51:45 -07:00
QMK Bot 2363a3bc42 Merge remote-tracking branch 'origin/master' into develop 2022-08-14 00:33:31 +00:00
Tom Barnes 0d3e07a3db
[Docs] Suggest imgur images are edited to set size (#18031) 2022-08-13 17:32:30 -07:00
Jay Greco 4eeafbebab
Add Bit-C PRO converter (#17827) 2022-08-13 14:48:30 +01:00
Joel Challis fc7e9efd21
Improve importer workflow (#17707) 2022-08-13 14:39:56 +01:00
QMK Bot 06391314cd Merge remote-tracking branch 'origin/master' into develop 2022-08-13 00:27:58 +00:00
Albert Y 70c6b183df
[Docs] Refactor code examples (#18003) 2022-08-12 17:27:24 -07:00
Drashna Jaelre ccdba43e59
Create generic Pointing Device Pin defines (#17776) 2022-08-12 16:22:34 -07:00
Nick Brassel 154d35ac14
Remove `UNUSED_PINS` (#17931) 2022-08-06 23:23:35 +10:00
Stefan Kerkmann f27b617f36
[Core] Process all changed keys in one scan loop, deprecate `QMK_KEYS_PER_SCAN` (#15292) 2022-08-06 20:51:13 +10:00
QMK Bot 1d45c99355 Merge remote-tracking branch 'origin/master' into develop 2022-08-06 06:37:08 +00:00
Albert Y 64acbcb42a
[Docs] Building with GitHub Userspace (#16271) 2022-08-06 16:36:31 +10:00
Drashna Jaelre eb417b3aaf
Add deprecated check for RGBLIGHT_ANIMATIONS (#17832) 2022-08-04 11:05:53 -07:00
David Hoelscher 2bdd73f801
Add ST7735 driver to Quantum Painter (#17848) 2022-07-31 19:58:25 -07:00
Joel Challis c10c2575b8
Remove OLED driver Split Common warning (#17862) 2022-07-31 12:33:12 -07:00
Daniel Kao b03a7cef75
Fix POINTING_DEVICE_GESTURES_SCROLL_ENABLE typo (#17850)
* Fix typo for POINTING_DEVICE_GESTURES_SCROLL_ENABLE

Follow the name written in documentation which follows
POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE

* Reword the blurb about POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE in docs
2022-07-31 15:51:20 +01:00
Drzony 0b726a437b
Implement relative mode for Cirque trackpad (#17760) 2022-07-29 21:20:34 -07:00
precondition 95c1cc425e
Rename postprocess_steno_user → post_process_steno_user (#17823) 2022-07-28 21:51:01 -07:00
Drashna Jael're 3d98269652
Merge remote-tracking branch 'origin/master' into develop 2022-07-27 07:40:30 -07:00
Drashna Jaelre 8973835183
[Docs] Add information about WeAct Blackpill F411 (#16755)
* [Docs] Add information about WeAct Blackpill F411

* Add clarification for matrix pins

* Update documentation

* Tweak wording
2022-07-27 14:49:12 +01:00
Drashna Jaelre 5d898a3d34
[Docs] Updates to Pointing Device Docs (#17777) 2022-07-26 00:27:34 -07:00
Drashna Jaelre 683eeca2e2
[Docs] Fix custom debug function and sample output (#17790) 2022-07-25 23:07:15 +01:00
QMK Bot 336df3297e Merge remote-tracking branch 'origin/master' into develop 2022-07-24 23:01:36 +00:00
Drashna Jaelre c0763363db
[Docs] Fix tables in Audio driver document (#17780) 2022-07-25 00:00:51 +01:00
JayceFayne d02cefe613
implement `tap_code16_delay` (#17748) 2022-07-23 19:21:20 +01:00
jack a6f3194397
Add ability to enter bootloader mode from `QK_MAKE` (#17745) 2022-07-23 17:43:32 +01:00
Albert Y d510e80b89
Add Blok 2040 conversion (#17603) 2022-07-21 00:54:05 +01:00
Ben Fiedler 1db5272154
docs: fix default value of USB_SUSPEND_WAKEUP_DELAY (#17501)
Documents the change made in #12081
2022-07-20 17:43:41 +01:00
Drashna Jaelre 12eb6444c6
Add support for PAW3204 Optical Sensor (#17669)
Co-authored-by: gompa <gompa@h-bomb.nl>
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-07-19 17:46:22 -07:00
Stefan Kerkmann a304a9b51e
Use correct angle tune range of +/-127 on PMW33XX (#17708)
...partially reverts 580bcff4f6 as the
datasheet doesn't claim that the angle tuning as limited to +/- 30
degrees.
2022-07-17 21:08:55 +02:00
Stefan Kerkmann 580bcff4f6
Use correct angle tune range of +/-30 on PMW33XX (#17693)
Co-authored-by: Daniel Kao <daniel.m.kao@gmail.com>

Co-authored-by: Daniel Kao <daniel.m.kao@gmail.com>
2022-07-16 11:33:18 +02:00
Albert Y 300dab7962
[Code] Add solid reactive gradient mode (#17228) 2022-07-14 12:22:53 +01:00
Stefan Kerkmann 3c58f98929
[Core] PMW33XX drivers overhaul (#17613)
* 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-14 11:50:00 +02:00
Daniel Kao 5db705d054
Cirque trackpad features: circular scroll, inertial cursor (#17482) 2022-07-12 21:17:40 -07:00
James Young 36c2575658
Grammar fixes for docs/feature_converters.md (#17652) 2022-07-13 04:58:16 +01:00
QMK Bot 6bb2ed68a8 Merge remote-tracking branch 'origin/master' into develop 2022-07-13 03:51:07 +00:00
Drashna Jaelre 26954bbc28
[Docs] Add Encoder requirements to PR Checklist doc (#17634)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-07-12 20:50:26 -07:00
zvecr 82f0263e41 Merge remote-tracking branch 'origin/master' into develop 2022-07-13 01:19:58 +01:00
Joel Challis 2a3dd95229
Add basic secure docs (#17577) 2022-07-13 00:06:19 +01:00
Joel Challis 345e19f691
Add converter docs (#17593) 2022-07-08 22:49:16 +01:00
Stefan Kerkmann 8224f62806
Make debounce() signal changes in the cooked matrix as return value (#17554) 2022-07-07 10:00:40 +02:00
QMK Bot d37db0c50c Merge remote-tracking branch 'origin/master' into develop 2022-07-03 23:41:36 +00:00
Joel Challis 8fa7b62011
Attempt to discourage manual MSYS install for new users (#17556) 2022-07-04 00:41:00 +01:00
Ryan ac5e6b6a3b
Tentative Teensy 3.5 support (#14420)
* Tentative Teensy 3.5 support

* Set firmware format to .hex for ARM Teensys

* Got to "device descriptor failed" by comparing with Teensy 3.6 code

* Drop down to 96MHz...

* Bump back up to 120MHz
2022-07-03 00:12:45 +10:00
QMK Bot 11299b337b Merge remote-tracking branch 'origin/master' into develop 2022-07-02 14:10:26 +00:00
Ryan 25033d5d9e
MSYS2 install: use MinGW python-qmk package (#17302)
* MSYS2 install: use MinGW python-qmk package

* Add missing flashers

* Note VC Redist for manual install

* VC Redist no longer needed
2022-07-02 15:08:05 +01:00
QMK Bot a6faf3bc9e Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:49:52 +00:00
CoffeeIsLife 0365f640af
Allow for RGB actions to take place on Keydown instead of Keyup (#16886)
* Allow for switch on keydown

* add docs
2022-07-02 22:49:49 +10:00
QMK Bot fcc14b8838 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:49:19 +00:00
ripdog 4e35697e1a
Add note about qmk doctor in newbs_flashing.md (#15688)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-02 22:48:44 +10:00
Ryan 3ecb0a80af
Feature-ify Send String (#17275) 2022-07-02 22:10:08 +10:00
Osamu Aoki 871eeae4ea
PoC: Swap Escape and Caps (#16336) 2022-07-02 22:08:48 +10:00
QMK Bot 08721b4125 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:00:37 +00:00
jack ee26d3e77f
Add Zsh note for tab complete (#17226) 2022-07-02 21:59:59 +10:00
Joel Challis 59e28b8958
Add cli command to import keyboard|keymap|kbfirmware (#16668) 2022-07-02 21:50:09 +10:00
FREEWING.JP 9dc7b9d40c
Added Wait time to sending each Keys for Dynamic Macros function (#16800)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-07-02 21:48:26 +10:00
QMK Bot 05074cbdf0 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 11:27:40 +00:00
Josh Hinnebusch 096db8c8ca
Add LED backlight/indicator info to reference_info_json.md (#17010)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-07-02 21:27:34 +10:00
Nick Brassel 5846b40f74
RP2040 emulated EEPROM. (#17519) 2022-07-02 15:18:50 +10:00
Nick Brassel b67ae67687
[QP] Add ILI9488 support. (#17438) 2022-07-02 13:20:45 +10:00
Stefan Kerkmann d717396708
[Core] Add Raspberry Pi RP2040 support (#14877)
* 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-30 13:19:27 +02:00
Nick Brassel 34e244cecf
Wear-leveling EEPROM drivers: `embedded_flash`, `spi_flash`, `legacy` (#17376) 2022-06-30 07:42:23 +10:00
ihatechoosingusernames 1204cbb7ea
Update feature_split_keyboard.md to add extra detail about left and right matrices. (#17492) 2022-06-29 18:39:37 +10:00
Thomas Kriechbaumer 01bc974365
improvements for Cirque Pinnacle trackpads (#17091) 2022-06-25 22:22:28 +02:00
precondition 3b9e186019
Do not enable PERMISSIVE_HOLD when TAPPING_TERM exceeds 500ms (#15674) 2022-06-24 12:40:09 +02:00
precondition 7060cb7b26
Refactor steno and add `STENO_PROTOCOL = [all|txbolt|geminipr]` (#17065)
* 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
2022-06-23 20:43:24 +02:00
QMK Bot 32792826a8 Merge remote-tracking branch 'origin/master' into develop 2022-06-23 01:26:43 +00:00
David Kosorin 71472a1692
Update ref_functions.md (replaced deprecated `RESET`) (#17436) 2022-06-23 02:26:08 +01:00
Jamal Bouajjaj d3858585ac
Added global current to all other issi drivers who don't have it (#17448) 2022-06-23 02:16:39 +01:00
Kyle McCreery eac0f6d4c9
Cirque Attenuation Setting (#17342) 2022-06-22 21:59:37 +02:00
Dasky be42c5fb98
Fix RGB heatmap to use XY positions and use correct led limits (#17184)
* Fix RGB heatmap to use XY positions

* lower effect area limit and make configurable

* tidy up macro

* Fix triggering in both directions.

* add docs

* fix bug when decreasing value

* performance tweak
2022-06-21 10:53:34 -07:00
Joel Challis 1a400d8644
Allow encoder config from info.json (#17295) 2022-06-20 20:15:06 -07:00
QMK Bot 2fb24c0298 Merge remote-tracking branch 'origin/master' into develop 2022-06-21 00:53:03 +00:00
evils 0a45a19801
[Docs] clarify inner array of direct pin matrix (#17437) 2022-06-21 01:52:11 +01:00
Jamal Bouajjaj 2bddffeaec
IS31FL3737 Global Current Setting (#17420) 2022-06-19 14:32:37 -07:00
Albert Y c725b6bf89
[Core] Mouse key kinetic mode fix (#17176)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-06-19 11:15:55 -07:00