Commit Graph

753 Commits (38d2c8cedf9f9f43b5ba372ffd38ccc7cc96be15)

Author SHA1 Message Date
QMK Bot d511e52c1f format code according to conventions [skip ci] 5 years ago
Joel Challis 789e199450
Add support for Bootmagic lite when using SPLIT_HAND_PIN (#8347)
* Add support for Bootmagic lite when using SPLIT_HAND_PIN

* Deduplicate bootmagic_lite logic from within via

* Revert location of defaults so that user overrides still work for now

* Tidy up code slightly
5 years ago
Ryan f4799481cd
Fix formatting for report.h (#8512) 5 years ago
QMK Bot f9c53ca71a format code according to conventions [skip ci] 5 years ago
Joel Challis d96380e654
Initial arm->chibios pass - simplify some platform logic (#8450) 5 years ago
Ryan 7e80686f1e
Tidy up report.h (#8486)
* Tidy up report.h

* Add link to Review Request 41 for brightness controls
5 years ago
Ryan e967471c4f
Remove ACT_COMMAND (#8487)
* Remove ACT_COMMAND

* And from action_t as well
5 years ago
Joel Challis e34764502f
Remove qmk archive generation (#8462) 5 years ago
QMK Bot c89012566c format code according to conventions [skip ci] 5 years ago
Takeshi ISHII 9dfebb9d67
Remove unnecessary import of rgblight.h in tmk_core/protocol/*/*.c (#8432)
* Remove unnecessary import of rgblight.h in tmk_core/protocol/*/*.c

 * tmk_core/protocol/chibios/main.c
 * tmk_core/protocol/lufa/lufa.c

see #8380 for tmk_core/protocol/vusb/main.c.

* Remove '#include "rgblight.h"' from tmk_core/protocol/vusb/main.c.
5 years ago
QMK Bot 5e98eaaaff format code according to conventions [skip ci] 5 years ago
fredizzimo 9e8767917d
Fix pressing two keys with the same keycode but different modifiers (#2710)
* Fix extra keyboard report during test_fixture teardown

* Add tests for pressing two keys with only different modifers

* Fix #1708

When two keys that use the same keycode, but different modifiers were
pressed at the same time, the second keypress wasn't registered. This is
fixed by forcing a key release when we detect a new press for the same
keycode.

* Fix the NKRO version of is_key_pressed

* Fix uninitalized loop variable

Co-authored-by: Jack Humbert <jack.humb@gmail.com>
5 years ago
QMK Bot f89439ae09 format code according to conventions [skip ci] 5 years ago
francislan 3cd2a27ac0
Decouple mouse cursor and mouse wheel in accelerated mode (#6685)
* Decouples mouse cursor and mouse wheel movements in accelerated mode.

* Fixed comment indentation.

* Updated docs

Co-authored-by: Francis LAN <francislan@google.com>
5 years ago
Drashna Jaelre 668121bbf8
Fix layer debug calls (#8370) 5 years ago
Takeshi ISHII dbbab40981
Refactor rgblight_reconfig.h (#7773)
* Moved contents of rgblight_reconfig.h to rgblight_post_config.h.

In #3582, rgblight_reconfig.h had to be newly created. Now, the build system of qmk_firmware has a post_cofig feature, so that what was done in rgblight_reconfig.h can now be realized in rgblight_post_config.h.

**This commit does not change the build result.**

Testing script
```shell
  # build on master
  git checkout master
  echo master > /tmp/master_md5.txt

  # RGBLIGHT_ENABLE = no
  make HELIX=verbose helix/rev2:default:clean
  make HELIX=verbose helix/rev2:default
  md5 helix_rev2_default.hex >> /tmp/master_md5.txt

  # RGBLIGHT_ENABLE = yes, with animations
  make HELIX=verbose helix/rev2/back:default:clean
  make HELIX=verbose helix/rev2/back:default
  md5 helix_rev2_back_default.hex >> /tmp/master_md5.txt

  # RGBLIGHT_ENABLE = yes, without animations
  make HELIX=verbose,no_ani helix/rev2/back:default:clean
  make HELIX=verbose,no_ani helix/rev2/back:default
  md5 helix_rev2_back_default.hex >> /tmp/master_md5.txt

  # build on refactor_rgblight_reconfig.h
  git checkout refactor_rgblight_reconfig.h
  echo refactor_rgblight_reconfig.h > /tmp/branch_md5.txt

  # RGBLIGHT_ENABLE = no
  make HELIX=verbose helix/rev2:default:clean
  make HELIX=verbose helix/rev2:default
  md5 helix_rev2_default.hex >> /tmp/branch_md5.txt

  # RGBLIGHT_ENABLE = yes, with animations
  make HELIX=verbose helix/rev2/back:default:clean
  make HELIX=verbose helix/rev2/back:default
  md5 helix_rev2_back_default.hex >> /tmp/branch_md5.txt

  # RGBLIGHT_ENABLE = yes, without animations
  make HELIX=verbose,no_ani helix/rev2/back:default:clean
  make HELIX=verbose,no_ani helix/rev2/back:default
  md5 helix_rev2_back_default.hex >> /tmp/branch_md5.txt

  diff -u /tmp/master_md5.txt /tmp/branch_md5.txt
```

Test result:
```
--- /tmp/master_md5.txt 2020-01-03 15:42:22.000000000 +0900
+++ /tmp/branch_md5.txt 2020-01-03 15:42:42.000000000 +0900
@@ -1,4 +1,4 @@
-master
+refactor_rgblight_reconfig.h
 MD5 (helix_rev2_default.hex) = f360032edd522448366d471d8f4f8181
 MD5 (helix_rev2_back_default.hex) = 0c663acc6cccc44476b3b969ad22a48f
 MD5 (helix_rev2_back_default.hex) = e66b1195ff6d38e6e22c975b8ae42fd3
```

* Expressions that are too long are difficult to read, so wrap them.

* Edit the expression again

* remove `defined(RGBLIGHT_ANIMATIONS)` in `tmk_core/common/*/suspend.c`, `tmk_core/protocol/*/main.c`

move contents of rgblight_reconfig.h to rgblight.h.

The following changes were made to rgblight.h.

```diff
+#ifdef RGBLIGHT_USE_TIMER
 void rgblight_task(void);

 void rgblight_timer_init(void);
 void rgblight_timer_enable(void);
 void rgblight_timer_disable(void);
 void rgblight_timer_toggle(void);
+#else
+#define rgblight_task()
+#define rgblight_timer_init()
+#define rgblight_timer_enable()
+#define rgblight_timer_disable()
+#define rgblight_timer_toggle()
+#endif
```

The following changes were made to tmk_core/common/avr/suspend.c, tmk_core/common/chibios/suspend.c, tmk_core/protocol/chibios/main.c, tmk_core/protocol/lufa/lufa.c, tmk_core/protocol/vusb/main.c.

```diff
-#    ifdef RGBLIGHT_ANIMATIONS
     rgblight_timer_enable();
-#    endif
```
```diff
-#if defined(RGBLIGHT_ANIMATIONS) && defined(RGBLIGHT_ENABLE)
+#if defined(RGBLIGHT_ENABLE)
         rgblight_task();
 #endif
```

* remove 'defined(RGBLIGHT_ANIMATIONS)' in tmk_core/common/keyboard.c

Co-authored-by: Joel Challis <git@zvecr.com>
5 years ago
Nick Brassel b438c6f8ea
Fix up Arm builds with nix-shell. (#8312) 5 years ago
QMK Bot bad9468ce1 format code according to conventions [skip ci] 5 years ago
Ryan 9810756ee0
Fix typo in uart.c backport and add 32A "support" (#8219) 5 years ago
QMK Bot 95124bf933 format code according to conventions [skip ci] 5 years ago
Joel Challis e7fb873ee2
Short term fix for conflicting types for 'tfp_printf' (#8157) 5 years ago
Ryan c9e3fa6f70
Clean up includes for glcdfont headers (#7745)
* Clean up includes for glcdfont headers

* Remove pragma once, most of these are not headers

* Missed these
5 years ago
Nick Brassel d0c3acbe3e
Allow for ChibiOS 20.x (master), as well as enabling ChibiOS-Contrib HAL. (#8272) 5 years ago
Joel Challis c775104b9f
Use nano specs (#8270) 5 years ago
Joel Challis 8d9c800da0
Unconditionally enable ChibiOS syscalls (#8268)
* Enable syscalls all the time

* fix whitespace
5 years ago
James Young 26eef35f07
2020 February 29 Breaking Changes Update (#8064) 5 years ago
QMK Bot 61b71320f7 format code according to conventions [skip ci] 5 years ago
ridingqwerty b949343b78
New feature: PERMISSIVE_HOLD_PER_KEY (#7994)
* Implement 'PERMISSIVE_HOLD_PER_KEY'

* Document 'PERMISSIVE_HOLD_PER_KEY'

Co-authored-by: GeorgeKoenig <35542036+GeorgeKoenig@users.noreply.github.com>
5 years ago
Ryan 088b64ab3d
Improvements to extrakey HID descriptors (#8156) 5 years ago
yiancar eb9c2429c6
Update main.c (#8198) 5 years ago
QMK Bot a7d859dab8 format code according to conventions [skip ci] 5 years ago
Drashna Jaelre 1751c3cc25
uart.c fix from TMK (#7628)
* uart.c fix from TMK

Backport from tmk/tmk_keyboard@c41e48a0ab

* Avoid deadlock when uart.c is usind in ISR

Backport from tmk/tmk_keyboard@55443fabb7
5 years ago
Joel Challis 7707724dc4
Allow 30us matrix delay to be keyboard/user overridable (#8216)
* Allow 30us matrix delay to be configurable via define

* Move wait logic to matrix_common

* Move wait logic to matrix_common - fix wait includes
5 years ago
QMK Bot 7740470a94 format code according to conventions [skip ci] 5 years ago
fauxpark eaf32621aa
Align VUSB HID descriptors with LUFA/ChibiOS (#7675)
* Align VUSB HID descriptors with LUFA/ChibiOS

* Wrap send_system and send_consumer in ifdefs too

* Offset system usages to match LUFA/ChibiOS
5 years ago
Ted Lin c3200aa8fc Compile error if ONESHOT_TIMEOUT defined but oneshot disabled (#8100)
* Compile error if ONESHOT_TIMEOUT defined but oneshot disabled

When ONESHOT_TIMEOUT and NO_ACTION_ONESHOT are both defined, this code
fails to compile.

Wrap the one usage of ONESHOT_TIMEOUT that is inconsistent with the
rest so all usages are properly wrapped by a check of NO_ACTION_ONESHOT.

* Run file through clang-format

Co-authored-by: Ted M Lin <tedmlin@gmail.com>
5 years ago
fauxpark 174a15d07d Remove PJRC USB stack 5 years ago
Ted M Lin d84eb14b3a
Use function for KEYCODE2 routines instead of macro. (#8101)
* Option to use function for KEYCODE2 routines.

Convert the KEYCODE2SYSTEM and KEYCODE2CONSUMER macros to functions,
defaulting to using the macros.  The function form allows the compiler
to optimize the switch statement itself, over the macro nested
ternaries.

To enable this feature, #define USE_KEYCODE2_FUNCTION.

Testing against a random selection of avr-based keyboards, this
increased available flash by ~500 bytes. For arm-based keyboards,
the available flash increased by ~400 bytes.

* Replace macro with function entirely.

As zvecr states, go bold and just commit to using the function instead
of the macro.

* Reformat whitespace now that functional review is done

Verified against clang-format output.
5 years ago
Drashna Jaelre 0010d0c45e
Add Midi Endpoint task to ChibiOS main (#8071) 5 years ago
QMK Bot fa9c74c6a2 format code according to conventions [skip ci] 5 years ago
fauxpark b2ce2f8a34
Dedupe extrakey report struct, and send functions in V-USB & LUFA (#7993)
* Dedupe extrakey report struct, and send functions in V-USB & LUFA

* Doc comment for consistency

* Wrap it in ifdef to prevent unused function error

* Do the same for ATSAM
5 years ago
QMK Bot 4888a118c3 format code according to conventions [skip ci] 5 years ago
fauxpark e036b94a21
Align ATSAM HID descriptors with LUFA/ChibiOS (#7651)
* Align ATSAM HID descriptors with LUFA/ChibiOS

* Don't hardcode raw endpoint size
5 years ago
QMK Bot 1a79f14e43 format code according to conventions [skip ci] 5 years ago
Pavel Župa 4e6d1ae0ea
Fix timer_elapsed() overflow issue for STM32F103 and other ChibiOS boards (#7595)
* fixed strange space cadet timer owerflow on STM32F103

* Moved elapsed time fix to timer.c
5 years ago
Nick Brassel b28ee6b039 Fix misunderstanding of CPPFLAGS and CXXFLAGS. 5 years ago
xyzz eb309be6f0
Improve VIRTSER performance (#7528) 5 years ago
Joel Challis 50855593ff
Migrate common ld scripts to common location (#7887)
* Migrate common ld scripts to common location

* Remove duplicate ld scripts

* Update build to look at common ld location
5 years ago
QMK Bot 09370a95db format code according to conventions [skip ci] 5 years ago
George Harris e9ffc53476 Fix unaligned access with LTO (#7801)
Forces 4 byte alignment for USB input & output buffers to prevent unaligned accesses by chibios with LTO enabled
5 years ago
Joel Challis d4ccb2e0e6 Fix printf buffer overflow when cols>16 (#7998) 5 years ago
QMK Bot fe50883c15 format code according to conventions [skip ci] 5 years ago
Nick Brassel d13ada1162 Add customisable EEPROM driver selection (#7274)
- uprintf -> dprintf
- Fix atsam "vendor" eeprom.
- Bump Kinetis K20x to 64 bytes, too.
- Rollback Kinetis to 32 bytes as partitioning can only be done once. Add warning about changing the value.
- Change RAM-backed "fake" EEPROM implementations to match eeconfig's current usage.
- Add 24LC128 by request.
5 years ago
QMK Bot dee1d68dde format code according to conventions [skip ci] 5 years ago
fauxpark 123ae73efc Fix lock LEDs for ChibiOS when using shared endpoints (#7877)
* Fix lock LEDs for ChibiOS when using shared endpoints

* Tweak comments

* Doesn't need to be uint16 anymore
5 years ago
fauxpark 2bddfb986d Remove tmk_core gitignore and gitmodules 5 years ago
Joel Challis 667045b492
Run clang-format manually to fix recently changed files (#7934)
* Run clang-format manually to fix recently changed files

* Run clang-format manually to fix recently changed files - revert template files

* Run clang-format manually to fix recently changed files - format off for ascii_to_keycode_lut
5 years ago
Joel Challis ba628a28bc
Move rgblight and backlight task to common location (#7733) 5 years ago
ridingqwerty 95c24bbaf8
Implement and document TAPPING_FORCE_HOLD_PER_KEY (#7859)
* Implement and document TAPPING_FORCE_HOLD_PER_KEY

* Added "record" parameter to "get_tapping_force_hold"

* Correct typo -- remove 'IGNORE_' from 'IGNORE_TAPPING_FORCE_HOLD_PER_KEY'

Co-authored-by: GeorgeKoenig <35542036+GeorgeKoenig@users.noreply.github.com>
5 years ago
Drashna Jaelre 1b0854fdca Cleanup check for PERMISSIVE_HOLD (#7861)
* Fix bug in PERMISSIVE_HOLD check

caused by #5009 (aka, me)

* Remove check for per key
5 years ago
fauxpark 1e670f5e67
Remove `KEYMAP_SECTION_ENABLE` (#7882) 5 years ago
xyzz 83be1aed76 chibios/usb_main: re-check USB status in send_keyboard after sleeping the thread (#7784)
* chibios/usb_main: re-check USB status in send_keyboard after sleeping the thread

* change send_keyboard to only have 1 exit point
5 years ago
Joel Challis ff5742da9f Fix KEYBOARD_SHARED_EP on ChibiOS (#7860) 5 years ago
zk-phi 7f388b6553 Add per-key IGNORE_MOD_TAP_INTERRUPT feature (#7838)
* Implement IGNORE_MOD_TAP_INTERRUPT_PER_KEY

- Add configurable option IGNORE_MOD_TAP_INTERRUPT_PER_KEY
- Add function get_ignore_mod_tap_interrupt iff the option is enabled

Unless IGNORE_MOD_TAP_INTERRUPT_PER_KEY is defined, this patch does not affect the resulting binary.

* Add documentation for IGNORE_MOD_TAP_INTERRUPT_PER_KEY
5 years ago
Joel Challis dcb7ca3f79
Move some common matrix code to a common location (#7699)
* Move some common matrix code to a common location

* Refactor some 'custom_matrix_helper' logic to use custom matrix lite

* Fix build for kinesis/stapelberg - abuse of vpath was picking up matrix.c from core when custom matrix was enabled

* Add validation for CUSTOM_MATRIX
5 years ago
Wilba 320822d75b VIA Configurator Refactor (#7268)
* VIA Refactor

* Remove old code

* review changes

* review changes

* Fix cannonkeys/satisfaction75/prototype:via build

* Add via.h to quantum.h

* Move backlight init to after backlight config load

* Merge branch 'master' into via_refactor_pr

* Update user's rules.mk to new way of enabling VIA

* Added id_switch_matrix_state

* Review changes
5 years ago
xyzz 8ec0b378bc Fix typo in action.c (#7757) 5 years ago
Joel Challis 376419a4f7
Add central location for ChibiOS defines (#7542)
* Add central location for chibios defines

* Add central location for chibios defines - actually add files this time....

* Add Copyright header

* Update include order to resolve i2cv1 build errors
5 years ago
Drashna Jaelre 85f4c3ebb4 [Core] Optimize matrix processing (#7621)
Backport of tmk/tmk_keyboard@ad6059adc7
5 years ago
Drashna Jaelre 1f26101f0e
remove SERIAL_SOFT_DEBUG macro (#7625)
SERIAL_SOFT_DEBUG can be defined in the `config.h`

Backported from tmk/tmk_keyboard@c74eee6327
x
5 years ago
Joel Challis 80c2e26741
Fix ChibiOS USB config for chips which support OTGv1 (#7564)
* Align endpoint config as per rest of file (fixes #4783)

* Add comments about explicit order use

* Update tmk_core/protocol/chibios/usb_main.c

Co-Authored-By: fauxpark <fauxpark@gmail.com>
5 years ago
Drashna Jaelre 2d1c985ff4 core: Fix build config in protocol.mk (#7620)
Backports commits from tmk_keyboard
5 years ago
Joel Challis efb21c00ce Fix FORCE_NKRO handling (#7601) 5 years ago
Joel Challis 071eb2478f Remove mbed files (#7605)
* Remove mbed files

* Remove mbed files - fix comment

* Remove mbed logic blocks
5 years ago
fauxpark 698d0dbda8 Use `clock_prescale_set()` from avr-libc (#7540)
* Use `clock_prescale_set()` from avr-libc

* Remove outdated FAQ info
5 years ago
fauxpark c74295de88 Set proper AVR part for USBasp avrdude flashing (#7552)
* Set proper AVR part for USBasp avrdude flashing

* Remove `PROGRAM_CMD` stuff from rules.mk as they should not be needed anymore

* Missed the Plaid readme

* Remove PROGRAM_CMD from Mysterium
5 years ago
fauxpark 730a736ef0
Set proper ASCII character for KC_NUHS in iWRAP code (#7434) 5 years ago
Joel Challis f0f161e572
Remove vusb 'reset to bootloader' hid message due to security implications (#7456) 6 years ago
a_p_u_r_o 7874f297b3 Remove CR when computing BOOTLOADER_SIZE. (#7453) 6 years ago
fauxpark 02412156d5
Add 4-character aliases for sendstring keycodes (#7409)
* Add 4-character aliases for sendstring keycodes

* Remove pointless mail keycode redefinition

* Forgot brightness keycodes
6 years ago
zvecr a91c0c4765 Run clang-format manually to fix recently changed files 6 years ago
fauxpark 3047335729
Add support for configurable polling interval and power usage o… (#7336)
* Add support for custom polling interval and power usage on V-USB boards

* Use 1ms as default for now
6 years ago
Joel Challis 1d4287cb95 Fix chibios when mouse and nkro disabled (#7312) 6 years ago
Joel Challis c1970e284d Fix LAYER_STATE_8BIT compile issues (#7304) 6 years ago
Jonathan Rascher 680d401faf Support RGBLIGHT_SLEEP when ChibiOS boards suspend (#7280)
Copypasta from the AVR suspend implementation with a Teensy-specific
hack removed
6 years ago
Joel Challis 1ea0cac998
ARM - ws2812 bitbang (#7173)
* Initial ARM bitbang ws2812 driver

* Unify chibios platform to run rgblight_task

* Remove 'avr only' comments from ws2812 docs

* Remove 'avr only' comments from ws2812 docs

* Unify chibios platform to run rgblight_task - review comments

* Remove debug flags from keymap

* Add comments from review

* Add defines for STM32L0XX

* Attempt to get arm ws2812 working on multiple gcc versions
6 years ago
fauxpark dfb78d2a08 New and improved lock LED callbacks (#7215)
* New and improved lock LED callbacks

* Include stdbool

* Update documentation

* Use full function signatures and add keyboard-level example
6 years ago
fauxpark 1244d0e266 Un-clang-format usb_descriptor.h (#7216)
Preserves readability of the file, making it easier to understand and modify.
6 years ago
Christopher 0a9a69394e Fixes #7256: USB descriptor to identify correctly as MIDI device. (#7258) 6 years ago
Drashna Jaelre 29630e6e49 [Core] Add short form LTO_ENABLE (#7259)
For drashna's sanity's sake
6 years ago
Joel Challis 22812aee5c rgblight_task logic fixes (#7214) 6 years ago
Joel Challis 64b7cfe735 Refactor ps2avrgb i2c ws2812 to core (#7183)
* Refactor ps2avrgb i2c ws2812 to core

* Refactor jj40 to use ws2812 i2c driver

* Refactor ps2avrgb template to use ws2812 i2c driver

* Add ws2812 stub files

* clang-format and driver config

* Add ws2812 driver docs

* Fix default config values

* Update tmk_core/protocol/vusb/main.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>
6 years ago
Joel Challis abfd6ed961
Move tmk_core/common/backlight to quantum/backlight (#6710)
* Move tmk_core/common/backlight to quantum/backlight

* Add guards to backlight inclusion

* Add guards to backlight inclusion

* Update backlight guards on clueboard/60

* Use full paths to avoid vpath issues
6 years ago
fauxpark 63f4806d7a Fix bug in `do_code16()` (#6935)
* Fix bug in `do_code16()`

* Remove qk_ mods functions
6 years ago
Joel Challis 2ac4197b73
Add binary support to tinyprintf (#7024) 6 years ago
Joel Challis cc5edb9eeb
Port DEBUG_MATRIX_SCAN_RATE to core (#7029)
* Port DEBUG_MATRIX_SCAN_RATE to core

* Remove duplicate DEBUG_MATRIX_SCAN_RATE implementations

* Remove duplicate DEBUG_MATRIX_SCAN_RATE implementation from handwired/xealous

* Add console logic from ergodox_ez
6 years ago
fauxpark 4335b97a07 Reorder Raw HID interface to match what the USB spec expects (#6801) 6 years ago
Joel Challis 38aefaf78e
ARM - Initial backlight support (#6487)
* Move AVR backlight to own file, add borrowed ARM implementation

* Tiny fix for backlight custom logic

* Remove duplicate board from rebase

* Fix f303 onekey example

* clang-format

* clang-format

* Remove backlight keymap debug

* Initial pass of ARM backlight docs

* Initial pass of ARM backlight docs - resolve todos

* fix rules validation logic

* Add f072 warning

* Add f072 warning

* tidy up breathing in backlight keymap

* tidy up breathing in backlight keymap

* add missing break to backlight keymap
6 years ago
fauxpark 41b9be560d
Wrap util.h functions in `extern "C"` (#6762) 6 years ago
Joel Challis 17794e0b25
ARM split - Add support for dfu-util EE_HANDS flashing (#6543)
* Initial stab at some fake dfu-util-split-left behaviour

* Apply suggestions from code review

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

* Clang format fixes

* Fake eeprom init for both left and right hand
6 years ago