1222 Commits

Author SHA1 Message Date
Pete Sevander
7e983796e1
Process combos earlier & overlapping combos (#8591)
* Combo processing improvements.

Now it is possible to use ModTap and LayerTap keys as part of combos.
Overlapping combos also don't trigger all the combos, just exactly the
one that you press.

New settings:
- COMBO_MUST_HOLD_MODS
- COMBO_MOD_TERM
- COMBO_TERM_PER_COMBO
- COMBO_MUST_HOLD_PER_COMBO
- COMBO_STRICT_TIMER
- COMBO_NO_TIMER

* Remove the size flags from combo_t struct boolean members.

This in the end actually saves space as the members are accessed so many
times. The amount of operations needed to access the bits uses more
memory than setting the size saves.

* Fix `process_combo_key_release` not called correctly with tap-only combos

* Fix not passing a pointer when NO_ACTION_TAPPING is defined.

* Docs for `COMBO_ONLY_FROM_LAYER`

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Update quantum/process_keycode/process_combo.c

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Add `EXTRA_SHORT_COMBOS` option.

Stuff combo's `disabled` and `active` flags into `state`. Possibly can
save some space.

* Add more examples and clarify things with dict management system.

- Simple examples now has a combo that has modifiers included.
- The slightly more advanced examples now are actually more advanced
  instead of just `tap_code16(<modded-keycode>)`.
- Added a note that `COMBO_ACTION`s are not needed anymore as you can
  just use custom keycodes.
- Added a note that the `g/keymap_combo.h` macros use the
  `process_combo_event` function and that it is not usable in one's
  keymap afterwards.

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Change "the" combo action example to "email" example.

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Fix sneaky infinite loop with `combo_disable()`

No need to call `dump_key_buffer` when disabling combos because the
buffer is either being dumped if a combo-key was pressed, or the buffer is empty
if a non-combo-key is pressed.

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-08-06 09:44:57 +10:00
Juan Pablo Kutianski
07553b41f0
[Feature] Swap buttons on PS2 Mouse/Trackball (#9205)
* [Feature Request] Swap buttons on PS2 Mouse/Trackball

* [Feature Request] Swap buttons on PS2 Mouse/Trackball

* Added id: to the doc

* Missing space

* Solve comment
https://github.com/qmk/qmk_firmware/pull/9205#discussion_r430783182

* Solve comments https://github.com/qmk/qmk_firmware/pull/9205#discussion_r430783182 & https://github.com/qmk/qmk_firmware/pull/9205#discussion_r430783884

* Format code more according to https://docs.qmk.fm/#/coding_conventions_c

* change logic to LUT

* WIP: Clean up

* WIP: Solution with xor operators to mask the change

* delete #endif & added the missed xor operator (ahhh)

* Variable (mouse_report->buttons): avoid setting twice https://github.com/qmk/qmk_firmware/pull/9205#discussion_r430783884

* Update tmk_core/protocol/ps2_mouse.c

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

Co-authored-by: juank <juank@fktech.net>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-08-06 09:09:58 +10:00
JohSchneider
bcb6e23387
Arm ps2 mouse interrupt (#6490)
* ps2_mouse on ARM: an interrupt-version of the ps2-mouse code ported to ARM/chibios

* ps2_mouse on ARM: link EXT callback-channel selection to the user defined PS2_LINE_CLOCK

* ps2_mouse on ARM: replace DELAY_X defines with hardware-agnostic wait_X

* ps2_mouse on ARM: replace chibios-specific defines for the pins/lines with defines from quantum/config_common.h

and drop the '_LINE' component from teh define name

* ps2_mouse on ARM: expose the software-intterupt port as a user editable define

* Update docs/feature_ps2_mouse.md

Co-Authored-By: Hugo van Kemenade <hugovk@users.noreply.github.com>

* Update feature_ps2_mouse.md

* use a define to deduce the PS_DATA_PORT instead

* reduce all-zero extcfg to oneliner

* ps2_mouse: use generic wait instead of avr-delay

* Update docs/feature_ps2_mouse.md

* ps2_mouse: changes for new chibios version

(17.6.0 -> 19.1.0)
replacing the legacy externa-interrupt driver with pal-callbacks

* ps2_mouse: use PLATFORM_KEY

Co-Authored-By: Joel Challis <git@zvecr.com>

* ps2_mouse: clang-format corrections

* ps2_mouse: add systemlocks

using the chibios equivalent to AVRs cli: chSys[Unl|L]ock

Co-authored-by: Johannes <you@example.com>
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2021-08-06 07:51:24 +10:00
Joakim Tufvegren
982b782ce3
Trigger a wakeup after USB Reset on ChibiOS. (#12831)
After a USB Reset event the device must, according to the spec wake up
from any suspend state, so the Configured event that arrives afterwards
should be interpreted as an implicit wakeup.
2021-08-04 07:39:34 +10:00
Joakim Tufvegren
1409b36851
Remove the #10088 hotfix for Teensy 3.1-like Input:Club keyboards (#12870)
* Remove the #10088 hotfix for K20x MCU:s.

It seems to _cause_ the issue it intended to solve there.

* Cleaner way of removing #10088 hotfix.

Now only affects Ergodox Infinity, Whitefox and K-type, though.

Switches over Ergodox Infinity to the `IC_TEENSY_3_1` board, since that
was a nice place to implement the `restart_usb_driver` override.
However, I would guess this issue is present for other K20x/Teensy 3.1
boards as well...

* Fix comment regarding `IC_TEENSY_3_1` for all keyboards using it.
2021-08-04 07:38:37 +10:00
Joel Challis
34de7ca224
Move print/debug files to quantum (#12069)
* move print/debug files to quantum

* Update comments
2021-08-03 18:49:33 +01:00
QMK Bot
83bd56e68c Merge remote-tracking branch 'origin/master' into develop 2021-08-02 04:28:52 +00:00
xyzz
720c676403
flash_stm32: don't unlock flash if already unlocked (#13841)
On stm32f4 after reboot from DFU it was observed that the flash is
already unlocked. In that case, attempting to unlock it again causes a
data abort.
2021-08-02 14:27:57 +10:00
a_p_u_r_o
26b62f7a6c
Fix alignment of USB out report buffer 2 -> 4 (#13838) 2021-08-02 00:32:26 +01:00
Joel Challis
70fb3e1aaf
__flash? (#13799) 2021-07-31 14:35:30 +01:00
QMK Bot
614c627114 Merge remote-tracking branch 'origin/master' into develop 2021-07-29 02:01:05 +00:00
Joel Challis
e646211919
Fix unit tests after recent refactor (#13765) 2021-07-29 12:00:39 +10:00
Drashna Jaelre
c52c69d45f
Allow for higher USB Polling rate on ATSAM boards (#13755) 2021-07-28 12:00:16 +01:00
Drashna Jaelre
71e9f8fc11
Update LUFA (18-07-2021) and add QMK-HID Bootloader support (#13588)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-24 23:00:57 -07:00
Nick Brassel
4ec8764c70 Merge remote-tracking branch 'upstream/master' into develop 2021-07-25 12:17:15 +10:00
Joel Challis
b5bcd5b0a1
Refactor some platform dependent logic (#13675) 2021-07-24 19:56:45 +01:00
Joel Challis
567da49ed0
Avoid LTO conficts on arm_atsam (#13676) 2021-07-24 12:13:06 +01:00
QMK Bot
490fa5a9e3 Merge remote-tracking branch 'origin/master' into develop 2021-07-22 22:01:53 +00:00
Joel Challis
5d7f2823c9
Implement GPIO abstraction for atsam (#13567)
* Implement GPIO abstraction for atsam

* Convert Drop boards to normal matrix config

* Work round pin conflicts and matrix delay
2021-07-22 23:01:19 +01:00
QMK Bot
4066662bdf Merge remote-tracking branch 'origin/master' into develop 2021-07-16 16:09:10 +00:00
Joel Challis
366be0f7e9
Migrate arm_atsam print logic to use common framework (#13554) 2021-07-16 17:08:34 +01:00
Ryan
7ed5ac4a60
Use string literals for SERIAL_NUMBER (#13403) 2021-07-16 19:43:18 +10:00
Jonas Gessner
52cfc9259b
[Feature] Key Overrides (#11422) 2021-07-13 10:13:51 -07:00
Chris Cullin
9c74fd14bc
Enable g_is31_leds PROGMEM for RGB Matrix IS31FL3737 driver (#13480) 2021-07-12 08:51:23 -07:00
Thomas Weißschuh
a535d24ecf
core: chibios: bootloader: use integer pointers as volatile (#13450)
This prevents gcc from incorrectly trying to validate array bounds.

```
tmk_core/common/chibios/bootloader.c: error: '__builtin_memcpy' offset [0, 21] is out of the bounds [0, 0] [-Werror=array-bounds]
  107 |     __builtin_memcpy((void *) VBAT, (const void *)sys_reset_to_loader_magic, sizeof(sys_reset_to_loader_magic));
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```

See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99578#c16
Fixes #12925
2021-07-06 00:24:48 +01:00
Drashna Jaelre
8da8aabbe5
Improve layer mask handling (#13065) 2021-07-03 00:19:52 -07:00
fauxpark
03807c2c6e Merge remote-tracking branch 'upstream/master' into develop 2021-07-03 16:38:05 +10:00
Ryan
06e0643541
Add "Ctrl+C to cancel" to "waiting for bootloader" messages (#13424) 2021-07-03 16:34:22 +10:00
QMK Bot
5489c47a27 Merge remote-tracking branch 'origin/master' into develop 2021-06-26 10:49:16 +00:00
Joel Challis
c232882fda
Allow configuration of USB_VBUS_PIN on chibios (#13342) 2021-06-26 11:48:48 +01:00
Joakim Tufvegren
8d9f527081
Add sync_timer support over serial_link (i.e. Ergodox Infinity) (#12845) 2021-06-19 19:18:00 -07:00
Nick Brassel
172e6a7030
Extensible split data sync (#11930)
* Extensible split data sync capability through transactions.

- Split common transport has been split up between the transport layer
  and data layer.
- Split "transactions" model used, with convergence between I2C and
  serial data definitions.
- Slave matrix "generation count" is used to determine if the full slave
  matrix needs to be retrieved.
- Encoders get the same "generation count" treatment.
- All other blocks of data are synchronised when a change is detected.
- All transmissions have a globally-configurable deadline before a
  transmission is forced (`FORCED_SYNC_THROTTLE_MS`, default 100ms).
- Added atomicity for all core-synced data, preventing partial updates
- Added retries to AVR i2c_master's i2c_start, to minimise the number of
  failed transactions when interrupts are disabled on the slave due to
  atomicity checks.
- Some keyboards have had slight modifications made in order to ensure
  that they still build due to firmware size restrictions.

* Fixup LED_MATRIX compile.

* Parameterise ERROR_DISCONNECT_COUNT.
2021-06-18 09:10:06 +10:00
Stefan Kerkmann
ef92c9ee2c
Add CRC8 calculation subsystem to quantum (#12641)
* Intended usage is data validation in split transport code.
* Default space efficient algorithm.
* Opt-in fast table based algorithmn with #define CRC8_USE_TABLE switch.
* Define switches for size and speed optimized versions, the default is size
  optimized by using uint_least8_t as datatype for calculations.
  * #define CRC8_OPTIMIZE_SPEED uses uint_fast8_t as datatype for
    calculations, this only affects 32-bit Archs like ARM and RISC-V.
* Placeholder crc_init() function for hardware backed crc calculation,
  not implemented yet.
2021-06-18 00:09:43 +01:00
Michael Stapelberg
9956ff4e03
core: wire up flash make target for Teensy 4.x (#13077)
related to https://github.com/kinx-project/kint/issues/5
2021-06-17 04:15:45 +10:00
Michael Stapelberg
e2c5893405
core: make RESET key work with Teensy 4.x (#13076)
related to https://github.com/kinx-project/kint/issues/5
2021-06-15 21:53:27 -07:00
QMK Bot
06971da0be Merge remote-tracking branch 'origin/master' into develop 2021-06-16 04:20:45 +00:00
Purdea Andrei
ed0451bc28
Make atmel-dfu and chibios-dfu flashing behave more like caterina flashing. (#12552)
This commit makes atmel-dfu and chibios-dfu bootloaders retry to detect the bootloader
every 0,5 seconds (now configurable via the BOOTLOADER_RETRY_TIME makefile variable),
and a period is printed after every try. This is a much more pleasant behaviour than
the 5s retry timeout.
2021-06-16 14:20:44 +10:00
Ryan
b2fdd48744
Add ST7565 LCD driver (#13089)
Co-authored-by: Joakim Tufvegren <jocke@barbanet.com>
2021-06-10 17:16:09 +10:00
Simon Arlott
b829a1d264
Avoid 8-bit timer overflows in debounce algorithms (#12240)
* Add fast_timer_t that is 16-bit or 32-bit based on architecture

A 16-bit timer will overflow sooner but be faster to compare on AVR.

* Avoid 8-bit timer overflows in debounce algorithms

Count down remaining elapsed time instead of trying to do 8-bit timer
comparisons.

Add a "none" implementation that is automatically used if DEBOUNCE is
0 otherwise it will break the _pk/_pr count down.

* Avoid unnecessary polling of the entire matrix in sym_eager_pk

The matrix only needs to be updated when a debounce timer expires.

* Avoid unnecessary polling of the entire matrix in sym_eager_pr

The matrix only needs to be updated when a debounce timer expires.

The use of the "needed_update" variable is trying to do what
"matrix_need_update" was added to fix but didn't work because it only
applied when all keys finished debouncing.

* Fix sym_defer_g timing inconsistency compared to other debounce algorithms

DEBOUNCE=5 should process the key after 5ms, not 6ms

* Add debounce tests
2021-06-09 17:23:21 +10:00
Takeshi ISHII
b72f10c635
Add readPort() and some API to 'tmk_core/common/*/gpio.h' (#12754)
* add readPort() and some API to 'tmk_core/common/*/gpio.h'

The following macros have been added to gpio.h.

* readPort(port)
* setPortBitInput(port, bit)
* setPortBitInputHigh(port, bit)
* setPortBitOutput(port, bit)
* writePortBitLow(port, bit)
* writePortBitHigh(port, bit)

* add data type 'port_data_t' into gpio.h

* rename qmk_pin to pin
2021-06-07 18:23:21 +09:00
Sergey Vlasov
680cc1fab4
Fix firmware size check with avr-libc 1:2.0.0+Atmel3.6.2-1.1 (Debian bullseye) (#12951)
Debian bullseye (testing at the moment, but seems close to release) has
avr-libc 1:2.0.0+Atmel3.6.2-1.1 with some changes taken from the
Atmel-distributed toolchain.  In particular, the <avr/io.h> header for
ATmega32A (avr/iom32a.h) now defines the FLASHEND constant as `0x7FFFU`,
and that `U` suffix breaks the firmware size check code, because the
shell arithmetic expansion that is used to calculate `MAX_SIZE` does not
support those C-specific suffixes.

As a workaround, add `-D__ASSEMBLER__` to the C preprocessor invocation
that is used to expand those macros; in this case avr/iom32a.h defines
`FLASHEND` without the `U` suffix, and everything works as it did before
with older avr-libc versions.

The exact same code is present in two places; they are both changed,
even though the code in `tmk_core/avr.mk` is actually never used for
ATmega32A (and the header for ATmega32U4 does not add that `U` suffix to
`FLASHEND` for some reason).
2021-06-06 22:42:08 -07:00
Stefan Kerkmann
49fd3c0760
[Core] ChibiOS fix O3 and LTO breakage of extra keys and joystick (#12819) 2021-06-06 22:16:55 -07:00
Michael Stapelberg
7e4f01f454
core: bump USB spec version in device descriptor to 2.0 (#13078)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-06-07 08:48:26 +10:00
James Young
1646c0f26c
2021 May 29 Breaking Changes Update (#13034)
* Add Per Key functionality for AutoShift (#11536)

* LED Matrix: Reactive effect buffers & advanced indicators (#12588)

* [Keyboard] kint36: switch to sym_eager_pk debouncing (#12626)

* [Keyboard] kint2pp: reduce input latency by ≈10ms (#12625)

* LED Matrix: Split (#12633)

* [CI] Format code according to conventions (#12650)

* feat: infinite timeout for leader key (#6580)

* feat: implement leader_no_timeout logic

* docs(leader_key): infinite leader timeout docs

* Format code according to conventions (#12680)

* Update ADC driver for STM32F1xx, STM32F3xx, STM32F4xx (#12403)

* Fix default ADC_RESOLUTION for ADCv3 (and ADCv4)

Recent ChibiOS update removed ADC_CFGR1_RES_10BIT from the ADCv3 headers
(that macro should not have been there, because ADCv3 has CFGR instead of
CFGR1).  Fix the default value for ADC_RESOLUTION to use ADC_CFGR_RES_10BITS
if it is defined (that name is used for ADCv3 and ADCv4).

* Update ADC docs to match the actually used resolution

ADC driver for ChibiOS actually uses the 10-bit resolution by default
(probably to match AVR); fix the documentation accordingly.  Also add
both ADC_CFGR_RES_10BITS and ADC_CFGR1_RES_10BIT constants (these names
differ according to the ADC implementation in the particular MCU).

* Fix pinToMux() for B12 and B13 on STM32F3xx

Testing on STM32F303CCT6 revealed that the ADC mux values for B12 and
B13 pins were wrong.

* Add support for all possible analog pins on STM32F1xx

Added ADC mux values for pins A0...A7, B0, B1, C0...C5 on STM32F1xx
(they are the same at least for STM32F103x8 and larger F103 devices, and
also F102, F105, F107 families).  Actually tested on STM32F103C8T6
(therefore pins C0...C5 were not tested).

Pins F6...F10, which are present on STM32F103x[C-G] in 144-pin packages,
cannot be supported at the moment, because those pins are connected only
to ADC3, but the ChibiOS ADC driver for STM32F1xx supports only ADC1.

* Add support for all possible analog pins on STM32F4xx

Added ADC mux values for pins A0...A7, B0, B1, C0...C5 and optionally
F3...F10 (if STM32_ADC_USE_ADC3 is enabled).  These mux values are
apparently the same for all F4xx devices, except some smaller devices may
not have ADC3.

Actually tested on STM32F401CCU6, STM32F401CEU6, STM32F411CEU6 (using
various WeAct “Blackpill” boards); only pins A0...A7, B0, B1 were tested.

Pins F3...F10 are inside `#if STM32_ADC_USE_ADC3` because some devices
which don't have ADC3 also don't have the GPIOF port, therefore the code
which refers to Fx pins does not compile.

* Fix STM32F3xx ADC mux table in documentation

The ADC driver documentation had some errors in the mux table for STM32F3xx.
Fix this table to match the datasheet and the actual code (mux settings for
B12 and B13 were also tested on a real STM32F303CCT6 chip).

* Add STM32F1xx ADC pins to the documentation

* Add STM32F4xx ADC pins to the documentation

* Add initial support for tinyuf2 bootloader (when hosted on F411 blackpill) (#12600)

* Add support for jumping to tinyuf2 bootloader. Adds blackpill UF2 example.

* Update flashing.md

* Update chconf.h

* Update config.h

* Update halconf.h

* Update mcuconf.h

* eeprom driver: Refactor where eeprom driver initialisation (and EEPROM emulation initialisation) occurs to make it non-target-specific. (#12671)

* Add support for MCU = STM32F446 (#12619)

* Add support for MCU = STM32F446

* Update platforms/chibios/GENERIC_STM32_F446XE/configs/config.h

* Restore mcuconf.h to the one used by RT-STM32F446RE-NUCLEO64

* stm32f446: update mcuconf.h and board.h for 16MHz operation, with USB enabled, and other peripherals disabled.

* Format code according to conventions (#12682)

* Format code according to conventions (#12687)

* Add STM32L433 and L443 support (#12063)

* initial L433 commit

* change to XC

* fix L433

* disable all peripherals

* update system and peripheral clocks

* 433 change

* use its own board  files

* revert its own board files

* l433 specific change

* fix stm32l432xx define

* remove duplicate #define

* fix bootloader jump

* move to L443xx and add i2c2, spi2, usart3 to mcuconf.h

* move to L443

* move to L443

* fix sdmmc in mcuconf.h

* include STM32L443

* add L443

* Include L443 in compatible microcontrollers

* Include L443 in compatible microcontrollers

* Update config bootloader jump description

* Update ChibiOS define reasoning

* Update quantum/mcu_selection.mk

* fix git conflict

* Updated Function96 with V2 files and removed chconf.h and halconf.h (#12613)

* Fix bad PR merge for #6580. (#12721)

* Change RGB/LED Matrix to use a simple define for USB suspend (#12697)

* [CI] Format code according to conventions (#12731)

* Fixing transport's led/rgb matrix suspend state logic (#12770)

* [CI] Format code according to conventions (#12772)

* Fix comment parsing (#12750)

* Added OLED fade out support (#12086)

* fix some references to bin/qmk that slipped in (#12832)

* Resolve a number of warnings in `qmk generate-api` (#12833)

* New command: qmk console (#12828)

* stash poc

* stash

* tidy up implementation

* Tidy up slightly for review

* Tidy up slightly for review

* Bodge environment to make tests pass

* Refactor away from asyncio due to windows issues

* Filter devices

* align vid/pid printing

* Add hidapi to the installers

* start preparing for multiple hid_listeners

* udev rules for hid_listen

* refactor to move closer to end state

* very basic implementation of the threaded model

* refactor how vid/pid/index are supplied and parsed

* windows improvements

* read the report directly when usage page isn't available

* add per-device colors, the choice to show names or numbers, and refactor

* add timestamps

* Add support for showing bootloaders

* tweak the color for bootloaders

* Align bootloader disconnect with connect color

* add support for showing all bootloaders

* fix the pyusb check

* tweaks

* fix exception

* hide a stack trace behind -v

* add --no-bootloaders option

* add documentation for qmk console

* Apply suggestions from code review

* pyformat

* clean up and flesh out KNOWN_BOOTLOADERS

* Remove pointless SERIAL_LINK_ENABLE rules (#12846)

* Make Swap Hands use PROGMEM (#12284)

This converts the array that the Swap Hands feature uses to use PROGMEM,
and to read from that array, as such. Since this array never changes at
runtime, there is no reason to keep it in memory. Especially for AVR
boards, as memory is a precious resource.

* Fix another bin/qmk reference (#12856)

* [Keymap] Turn OLED off on suspend in soundmonster keymap (#10419)

* Fixup build errors on `develop` branch. (#12723)

* LED Matrix: Effects! (#12651)

* Fix syntax error when compiling for ARM (#12866)

* Remove KEYMAP and LAYOUT_kc (#12160)

* alias KEYMAP to LAYOUT

* remove KEYMAP and LAYOUT_kc

* Add setup, clone, and env to the list of commands we allow even with broken modules (#12868)

* Rename `point_t` -> `led_point_t` (#12864)

* [Keyboard] updated a vendor name / fixed minor keymap issues (#12881)

* Add missing LED Matrix suspend code to suspend.c (#12878)

* LED Matrix: Documentation (#12685)

* Deprecate `send_unicode_hex_string()` (#12602)

* Fix spelling mistake regarding LED Matrix in split_common. (#12888)

* [Keymap] Fix QWERTY/DVORAK status output for kzar keymap (#12895)

* Use milc.subcommand.config instead of qmk.cli.config (#12915)

* Use milc.subcommand.config instead

* pyformat

* remove the config test

* Add function to allow repeated blinking of one layer (#12237)

* Implement function rgblight_blink_layer_repeat to allow repeated blinking of one layer at a time

* Update doc

* Rework rgblight blinking according to requested change

* optimize storage

* Fixup housekeeping from being invoked twice per loop. (#12933)

* matrix: wait for row signal to go HIGH for every row (#12945)

I noticed this discrepancy (last row of the matrix treated differently than the
others) when optimizing the input latency of my keyboard controller, see also
https://michael.stapelberg.ch/posts/2021-05-08-keyboard-input-latency-qmk-kinesis/

Before this commit, when tuning the delays I noticed ghost key presses when
pressing the F2 key, which is on the last row of the keyboard matrix: the
dead_grave key, which is on the first row of the keyboard matrix, would be
incorrectly detected as pressed.

After this commit, all keyboard matrix rows are interpreted correctly.

I suspect that my setup is more susceptible to this nuance than others because I
use GPIO_INPUT_PIN_DELAY=0 and hence don’t have another delay that might mask
the problem.

* ensure we do not conflict with existing keymap aliases (#12976)

* Add support for up to 4 IS31FL3733 drivers (#12342)

* Convert Encoder callbacks to be boolean functions (#12805)

* [Keyboard] Fix Terrazzo build failure (#12977)

* Do not hard set config in CPTC files (#11864)

* [Keyboard] Corne - Remove legacy revision support (#12226)

* [Keymap] Update to Drashna keymap and user code (based on develop) (#12936)

* Add Full-duplex serial driver for ARM boards (#9842)

* Document LED_MATRIX_FRAMEBUFFER_EFFECTS (#12987)

* Backlight: add defines for default level and breathing state (#12560)

* Add dire message about LUFA mass storage bootloader (#13014)

* [Keyboard] Remove redundant legacy and common headers for crkbd (#13023)

Was causing compiler errors on some systems.

* Fix keyboards/keymaps for boolean encoder callback changes (#12985)

* `backlight.c`: include `eeprom.h` (#13024)

* Add changelog for 2021-05-29 Breaking Changes merge (#12939)

* Add ChangeLog for 2021-05-29 Breaking Changes Merge: initial version

* Add recent develop changes

* Sort recent develop changes

* Remove sections for ChibiOS changes per tzarc

No ChibiOS changes this round.

* Add and sort recent develop changes

* add notes about keyboard moves/deletions

* import changelog for PR 12172

Documents the change to BOOTMAGIC_ENABLE.

* update section headings

* re-sort changelog

* add additional note regarding Bootmagic changes

* remove changelog timestamp

* update dates in main Breaking Changes docs

* fix broken section anchors in previous changelogs

* add link to backlight/eeprom patch to changelog

* highlight some more changes

* link PRs from section headers

* Restore standard readme

* run: qmk cformat --core-only
2021-05-29 14:38:50 -07:00
James Young
7d1194de01
run: qmk cformat --core-only 2021-05-29 13:53:10 -07:00
Ryan
06aea834c4
Backlight: add defines for default level and breathing state (#12560) 2021-05-26 22:21:15 -07:00
Nick Brassel
58142f0726
Fixup housekeeping from being invoked twice per loop. (#12933) 2021-05-18 17:02:28 +10:00
Drashna Jaelre
da0c551692
Add missing LED Matrix suspend code to suspend.c (#12878)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-05-13 11:24:44 +10:00
Ryan
d84cbc3cec
Fix syntax error when compiling for ARM (#12866) 2021-05-11 08:17:28 -07:00
Sergey Vlasov
ffe81cbec1
Fix another bin/qmk reference (#12856) 2021-05-10 09:21:13 -07:00
Drashna Jaelre
f0b30e0027
Make Swap Hands use PROGMEM (#12284)
This converts the array that the Swap Hands feature uses to use PROGMEM,
and to read from that array, as such. Since this array never changes at
runtime, there is no reason to keep it in memory. Especially for AVR
boards, as memory is a precious resource.
2021-05-09 23:21:09 -07:00
QMK Bot
447bd64013 Merge remote-tracking branch 'origin/master' into develop 2021-05-06 16:16:51 +00:00
Ryan
3d922e6257
Add a handful of consumer/gendesk page usages (#12811) 2021-05-06 17:16:07 +01:00
QMK Bot
45f710f3ff Merge remote-tracking branch 'origin/master' into develop 2021-05-05 23:27:27 +00:00
Mateusz Piotrowski
38b9f67c3b
Fix qmk flash on FreeBSD (#12085)
When the USB device is connected, FreeBSD creates not one, but three
device nodes in /dev, e.g.: /dev/ttyU0, /dev/ttyU0.init, and
/dev/ttyU0.lock.

As a result, this leads to the USB variable containing 3 paths
(and therefore, whitespace) and messages like this one:

    Device /dev/ttyU0
    /dev/ttyU0.init
    /dev/ttyU0.lock has appeared; assuming it is the controller.

This changes fixes the use of the -z flag of "[" (see test(1)). Also, it
removes undesired paths from the USB variable, leaving only
one path there (i.e., "/dev/ttyU0").
2021-05-06 09:26:50 +10:00
github-actions[bot]
39bc8163d0
[CI] Format code according to conventions (#12731)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-29 13:36:47 +10:00
Drashna Jaelre
d8167779cd
Change RGB/LED Matrix to use a simple define for USB suspend (#12697) 2021-04-29 12:39:54 +10:00
github-actions[bot]
8c12fa2e59
Format code according to conventions (#12682)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-25 19:00:22 +10:00
Purdea Andrei
412e7a03e4
eeprom driver: Refactor where eeprom driver initialisation (and EEPROM emulation initialisation) occurs to make it non-target-specific. (#12671) 2021-04-25 18:57:49 +10:00
Nick Brassel
891d18d356
Add initial support for tinyuf2 bootloader (when hosted on F411 blackpill) (#12600)
* Add support for jumping to tinyuf2 bootloader. Adds blackpill UF2 example.

* Update flashing.md

* Update chconf.h

* Update config.h

* Update halconf.h

* Update mcuconf.h
2021-04-25 13:40:56 +10:00
QMK Bot
2a61a500de Merge remote-tracking branch 'origin/master' into develop 2021-04-25 03:16:16 +00:00
github-actions[bot]
d3bf3d3b1c
Format code according to conventions (#12681)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-25 13:15:48 +10:00
QMK Bot
64a9cf18e1 Merge remote-tracking branch 'origin/master' into develop 2021-04-25 03:12:09 +00:00
Purdea Andrei
dbd65d01b6
Fix how USB queue overflow is handled in chibios. (#12576)
* Fix how USB queue overflow is handled in chibios.

This commit reverts PR 12472 (commit c823fe2d3f23ed090e36ce39beed4c448298bd2f),
and it implements the original intent of the commit in a better way.
The original intent of the above mentioned commit was to not deadlock the
keyboard when console is enabled, and hid_listen is not started.

The above mentioned commit had a few drawbacks:
1) When a lot of data was printed to the console, the queue would get full,
and drop data, even if hid_listen was running. (For example having matrix debug
enabled just didn't work right at all)
2) I believe the function in which this was implemented is used by all other
USB endpoints, so with the above change, overflow, and data loss could
happen in other important functions of QMK as well.

This commit implements deadlock prevention in a slightly similar way to how
it's done on AVR. There is an additional static local variable, that memorizes
whether the console has timeouted before. If we are in the timeouted=false
state, then we send the character normally with a 5ms timeout. If it does
time out, then hid_listen is likely not running, and future characters should
not be sent with a timeout, but those characters should still be sent if there
is space in the queue. The difference between the AVR implementation and this
one is that the AVR implementation checks the queue state directly, but this
implementation instead attempts to write the character with a zero timeout.
If it fails, then we remain in the timeouted=true state, if it succeeds, then
hid_listen started removing data from the queue, so we can go out of the
timeouted=true state.

* Added comment explaining the timeouted logic to console flow control.

* Console flow control: refactor chibios flowcontrol code to make it more readable, and rename the timeouted variable to timed_out on both chibios and lufa. Changed comments to says timed_out is an approximation of listener_disconnected, to make it clear that it's not the same thing

* fix typo
2021-04-25 13:11:41 +10:00
QMK Bot
b09d068bf6 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 17:52:32 +00:00
Joel Challis
1cecd593c8
Fix for gcc10 teensy_lc eeprom build warning (#12587) 2021-04-20 10:51:55 -07:00
Purdea Andrei
dcb8407ed6
Apply the "NO_LIMITED_CONTROLLER_CONNECT" fix to atmega16u2 (#12482)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-19 09:33:24 -07:00
Ryan
ce99f98bb5
LED Matrix: suspend code (#12509) 2021-04-13 19:51:03 +10:00
QMK Bot
34323ecd8b Merge remote-tracking branch 'origin/master' into develop 2021-04-10 16:34:58 +00:00
github-actions[bot]
7daa2e210c
Format code according to conventions (#12540)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-10 17:34:26 +01:00
QMK Bot
d5a8431af4 Merge remote-tracking branch 'origin/master' into develop 2021-04-10 15:04:12 +00:00
Michael Stapelberg
7d953332e0
ChibiOS USB driver: prevent deadlock with CONSOLE_ENABLE = yes (#12472)
Before this commit, attaching an ARM-based (i.e. ChibiOS-based) keyboard that
uses CONSOLE_ENABLE = yes and produces debug messages would deadlock the
keyboard unless one was running hid_listen.

With this commit, dead-locking writes to the queue are detected and prevented.

fixes #5631
2021-04-10 16:03:38 +01:00
Nick Brassel
64a0f5a659
Add support for producing UF2-format binaries. (#12435)
* First stab at enabling builds of UF2-format binaries.

* Add description on producing a UF2 file.
2021-04-06 16:39:15 +10:00
QMK Bot
9bedc6300d Merge remote-tracking branch 'origin/master' into develop 2021-04-03 16:29:37 +00:00
Joel Challis
60e1910e5b
Add WSL specific logic for avrdude device detection (#12392) 2021-04-03 17:29:06 +01:00
Michael Stapelberg
e95a4f4f52
core: add pin_defs for MK66F18 (#12419)
This is in preparation for https://github.com/qmk/qmk_firmware/pull/10171
2021-03-30 21:11:40 +11:00
Ryan
2ae38e9c43
LED Matrix: Config functions (#12361) 2021-03-28 17:59:44 +11:00
QMK Bot
25f1a3d759 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:20:42 +00:00
github-actions[bot]
0a056cfd81
Format code according to conventions (#12380)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-03-25 23:18:59 +11:00
QMK Bot
5a0be4c6d8 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:14:17 +00:00
purple-rw
5c1442766c
fix permissive hold when both PERMISSIVE_HOLD_PER_KEY and TAPPING_TERM_PER_KEY are defined (#12125)
Co-authored-by: checyr <32964049+checyr@users.noreply.github.com>
2021-03-25 23:13:41 +11:00
QMK Bot
8086837f69 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:34:28 +00:00
Joel Challis
1bb6d8de6f
Fix USER_PRINT on avr/atsam (#12269)
* Fix USER_PRINT on avr/atsam

* Update tmk_core/common/arm_atsam/_print.h

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-25 22:33:53 +11:00
QMK Bot
2f6236d1ea Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:31:17 +00:00
Ryan
eae7343741
Move API_SYSEX_MAX_SIZE out of config_common.h (#12302) 2021-03-25 22:30:42 +11:00
QMK Bot
af5c10ef0c Merge remote-tracking branch 'origin/master' into develop 2021-03-18 01:29:25 +00:00
github-actions[bot]
9807225f90
[CI] Format code according to conventions (#12277)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-03-18 12:28:50 +11:00
QMK Bot
4aa57e9e46 Merge remote-tracking branch 'origin/master' into develop 2021-03-18 00:48:52 +00:00
Ryan
9331c22620
XT converter cleanup (#12264) 2021-03-18 11:48:09 +11:00
Michael Stapelberg
1d341ffbb0
core: add support for MK66F18 (Teensy 3.6) micro controller (#12258)
This is in preparation for https://github.com/qmk/qmk_firmware/pull/10171
2021-03-17 06:45:21 +11:00
QMK Bot
2f59e1c1d9 Merge remote-tracking branch 'origin/master' into develop 2021-03-15 01:21:48 +00:00
github-actions[bot]
a18e1305b3
Format code according to conventions (#12244)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-03-15 12:21:14 +11:00
QMK Bot
998c58e89b Merge remote-tracking branch 'origin/master' into develop 2021-03-15 01:19:36 +00:00
xyzz
0779c34db8
Fix keycode mappings for via and ensure they don't change within protocol (#12130)
* Fix keycode mappings for via and ensure they don't change within protocol

* Update keycodes

* Fix broken keyboards

* added the missing keycodes found in via

* Remove invalid keycodes

Co-authored-by: David Hoelscher <infinityis@users.noreply.github.com>
2021-03-15 12:19:01 +11:00
Joel Challis
40c7ecfdea
Move gpio wait logic to wait.h (#12067) 2021-03-10 22:47:36 +00:00
Ryan
9155b59e1a
LED Matrix: decouple from Backlight (#12054) 2021-03-08 16:55:00 +11:00
QMK Bot
37d1fa53e0 Merge remote-tracking branch 'origin/master' into develop 2021-03-07 06:40:08 +00:00
Ryan
8556068534
Require BOOTLOADER = qmk-dfu for :bootloader target (#12136) 2021-03-07 17:39:35 +11:00
XScorpion2
cde2859a65
Split RGB Matrix (#11055)
* Split RGB Matrix

* Suspend State sync for rgb matrix
2021-03-03 07:32:15 +11:00
QMK Bot
4c04c848b5 Merge remote-tracking branch 'origin/master' into develop 2021-03-02 14:32:29 +00:00
Drashna Jaelre
ab3986a684
Set default for USB_SUSPEND_WAKEUP_DELAY to 0/disabled (#12081) 2021-03-02 14:31:23 +00:00
Drashna Jaelre
0e984b6e7e
Add ability to toggle One Shot functionality (#4198)
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-01 08:57:02 -08:00
QMK Bot
93a1d4f156 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 21:25:41 +00:00
Joel Challis
f8266a228c
Migrate make_dfu_header to CLI (#12061)
* Migrate make_dfu_header to CLI

* lint fixes

* Update lib/python/qmk/cli/generate/dfu_header.py

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

* Rename object

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-02-28 21:25:09 +00:00
QMK Bot
3b8ca5f343 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 16:01:51 +00:00
Fabián González Martín
90c7ae70c6
Modified tmk_core/rules.mk to avoid linking errors (#10728)
* Modified tmk_core/rules.mk to avoid linking errors

Added -fcommon flag to avoid linking errors due to multiple variable definitions. Though this is neither a definitive nor good solution, proper changes and use of extern  keyword to avoid those multiple definitions must be made

* Comment updated
2021-02-28 08:01:16 -08:00
Joel Challis
5ba4391cf2
Refactor of USB code within split_common (#11890)
* Initial refactor of usb code within split_common

* Add headers

* Correct disable condition

* Format

* Align func name
2021-02-28 15:52:58 +00:00
Joel Challis
415a8bc249
ARM - Refactor SLEEP_LED to support more platforms (#8403)
* Initial refactor of ARM SLEEP_LED to enable more platforms

* fix build issues

* Disable SLEEP_LED for boards with no caps lock code

* Enable GPT14 for boards with caps lock code and SLEEP_LED enabled

* Enable GPT for boards with caps lock code and SLEEP_LED enabled
2021-02-28 15:52:43 +00:00
Joel Challis
a3cbc8a004
Overhaul bootmagic logic to have single entrypoint (#8532)
* Relocate bootmagic logic to have single entrypoint

* Align init of layer state
2021-02-28 15:50:15 +00:00
Isaac Elenbaas
765d8a33dd
Fixes #4072, #6214. Revision of #156 to clear before AS/TD. (#9941) 2021-02-28 15:48:19 +11:00
github-actions[bot]
deaabff752
Format code according to conventions (#12046)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-02-27 22:35:41 +00:00
Nick Brassel
6623744172
Fix build for attiny85-based boards. (#12044) 2021-02-28 09:33:33 +11:00
github-actions[bot]
d99e330548
Format code according to conventions (#12024)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-02-26 17:47:22 +11:00
Nick Brassel
abe189377c
[BUG] Massdrop develop rgb fix (#12022)
* Allow for disabling RGB_MATRIX on Massdrop boards.

* Fixup init sequence.

* Make some functions static as they've got very generic names.
2021-02-26 17:07:05 +11:00
fauxpark
23fd1aee00 Merge remote-tracking branch 'upstream/master' into develop 2021-02-25 16:04:53 +11:00
Ryan
39694d5eb0
V-USB suspend refactor (#11891) 2021-02-25 15:54:25 +11:00
Liyang HU
c4bd6af837
tmk_core/common/action.c: refactor for code size; merge multiple cases into one (#11943)
* tmk_core/common/report.h: define `enum mouse_buttons` in terms of `#define MOUSE_BTN_MASK()`

* tmk_core/common/action.c: collapse multiple `case KC_MS_BTN[1-8]:` into single `MOUSE_BTN_MASK(action.key.code - KC_MS_BTN1)`

We all love tapping on our keyboards but this is taking the piss.

This saves ~134 bytes on my ATmega32.
2021-02-20 14:53:53 -05:00
Ryan
7ab9f6a101
Output selection: Remove "USB and BT" option (#11940) 2021-02-20 18:11:02 +11:00
github-actions[bot]
a5f63dbf93
Format code according to conventions (#11936)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-02-17 17:30:16 +11:00
Ryan
be70f466fe
Fix compilation error for tap_code_delay() (#11938) 2021-02-17 17:26:57 +11:00
Ryan
3345ce2686
Add tap_code_delay(code, delay) (#11913)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-02-17 07:26:52 +11:00
github-actions[bot]
b0e161e33d
Format code according to conventions (#11928)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-02-16 11:33:03 +11:00
XScorpion2
d1806a26e4
Split transport mirror (#11046)
* Split transport mirror support

* Updated RGB Matrix to respond to electrical events instead of key events

* split matrix slave fix
2021-02-16 11:30:33 +11:00
Joshua Diamond
f1a3ce49cc Merge branch 'master' into develop 2021-02-14 19:59:26 -05:00
github-actions[bot]
c27a778281
Format code according to conventions (#11905)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-02-15 06:55:43 +11:00
Joel Challis
1f2fe2eab9
Refactor platform logic within print.h (#11863)
* Remove GCC check from debug

* Remove platform logic from common.mk

* Refactor platform logic within print.h

* restore debug.c format

* headers

* Rename function pointer type

* review comments

* Update tmk_core/common/printf.c

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

* Format

Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-02-14 01:44:22 +00:00
Joel Challis
de8caf708c
Split gpio and atomic to platform (#11792) 2021-02-14 11:51:06 +11:00
Drashna Jaelre
7161d65070
Remove FAUXCLICKY feature (deprecated) (#11829) 2021-02-09 09:49:05 -08:00
QMK Bot
3a98bd75c8 Merge remote-tracking branch 'origin/master' into develop 2021-02-07 23:16:47 +00:00
Joel Challis
99bffc2a21
Migrate some tmk_core files to quantum (#11791)
* Migrate some tmk_core files to quantum

* Fix build errors
2021-02-07 23:16:15 +00:00
Alexander Ulitin
9146d30f06
[Bug] Fix media key missing upstroke event (#11162)
[Bug] Pressing media key on a momentarily activated layer may leads to
missing key up events.
2021-02-07 08:43:39 -08:00
Joel Challis
0288142769
Migrate mousekey to quantum (#11804) 2021-02-07 13:56:08 +00:00
Joel Challis
f5a38b95c1
Remove legacy print backward compatiblitly (#11805)
* Remove legacy print backward compatiblitly

* Remove legacy print backward compatiblitly - core

* revert comment changes
2021-02-06 16:56:13 +00:00
QMK Bot
a1ddba6bc4 Merge remote-tracking branch 'origin/master' into develop 2021-02-06 14:16:03 +00:00
Ryan
9b874d5071
Manual formatting fix for serial_uart.c (#11806) 2021-02-06 14:15:30 +00:00
QMK Bot
843643aef3 Merge remote-tracking branch 'origin/master' into develop 2021-02-05 22:21:23 +00:00
Ryan
5ea92a9c1c
Serial refactor (#11521) 2021-02-06 09:20:48 +11:00
QMK Bot
b4e02f8ddf Merge remote-tracking branch 'origin/master' into develop 2021-02-05 13:28:01 +00:00
Joel Challis
b2d0e8a491
Manually run formatting job (#11797) 2021-02-05 13:27:24 +00:00
QMK Bot
00b9ec088d Merge remote-tracking branch 'origin/master' into develop 2021-02-03 01:31:03 +00:00
Drashna Jaelre
c0de49e393
Fix DEBUG_MATRIX_SCAN_RATE on chibiOS when console is enabled (#11776)
* Fix DEBUG_MATRIX_SCAN_RATE on chibiOS when console is enabled

* update type in dprintf

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-02-03 12:30:33 +11:00
Joshua Diamond
9a4618b05b
Address wake from sleep instability (#11450)
* resolve race condition between suspend and wake in LUFA

* avoid multiple calls to suspend_power_down() / suspend_wakeup_init()

* Remove duplicate suspend_power_down_kb() call

* pause on wakeup to wait for USB state to settle

* need the repeated suspend_power_down() (that's where the sleep is)

* more efficient implementation

* fine tune the pause after sending wakeup

* speculative chibios version of pause-after-wake

* make wakeup delay configurable, and adjust value

* better location for wakeup delay
2021-02-02 11:12:41 +11:00
Joshua Diamond
ae4ee7553a
Stop sounds when suspended (#11553)
* fix stopping audio on suspend vs. startup sound

* trim firmware size

* fix stuck audio on startup (ARM)
2021-02-01 09:25:55 +11:00
Nick Brassel
db11a2a1fd
Decouple USB events from the USB interrupt handler. (#10437) 2021-02-01 08:19:00 +11:00
Nick Brassel
d65db68f9f Merge remote-tracking branch 'upstream/master' into develop 2021-01-28 10:52:59 +11:00
Drashna Jaelre
99f3df2893
Add support for 8 buttons to mouse report (#10807)
* Add support for 8 buttons to mouse report

This includes support for 8 buttons in mousekeys.  However, this does move the keys around due to the fact that the last mousekey keycode is already 0xFF, so any past that would not work with register_code and the like, breaking them for tap hold keys, encoders, and other features.

* Update mouse key docs

* Add changes based on feedback

* Fix VUSB report size comment

Because drashna red gud

* Fix typo in action.c

* Fix IS_MOUSE_BUTTON check

* Change start range for mousekeys so that the end is 0xFF properly

* condense mousekeys check
2021-01-28 04:38:34 +11:00
Takeshi ISHII
c27f16158d
add get_matrix_scan_rate() to tmk_core/common/keyboard.c (#11489) 2021-01-28 04:34:50 +11:00
Ryan
30b46fad57
UART driver refactor (#11637) 2021-01-27 17:42:49 +11:00
Gentoli
28b1c913b4
Remove duplicated housekeeping in arm_atsam (#11672) 2021-01-24 12:55:43 +11:00
Nick Brassel
1108210f1b
Keep track of encoder activity (#11595)
* Keep track of encoder activity, provide API for either matrix/encoder.

* Fixup build when no RGBLIGHT or Backlight enabled.
2021-01-21 22:24:07 +11:00
Joel Challis
14c2f671cb
Switch to nano specs on ChibiOS builds - Round 2 (#11607) 2021-01-20 10:27:21 +11:00
Nick Brassel
9e18f41fcf Merge remote-tracking branch 'upstream/master' into develop 2021-01-20 10:00:28 +11:00
Nick Brassel
49dcc824db
Fixup declaration for _kill, add other missing syscalls, populate errno. (#11608) 2021-01-19 14:23:03 +00:00
Nick Brassel
31c57aab35 qmk cformat 2021-01-17 10:19:56 -08:00
Nick Brassel
e702c7f1b4
Keep track of last matrix activity. (#11552)
Co-authored-by: Dasky <daskygit@users.noreply.github.com>

Co-authored-by: Dasky <daskygit@users.noreply.github.com>
2021-01-18 05:01:38 +11:00
QMK Bot
d6d15b91f3 Merge remote-tracking branch 'origin/master' into develop 2021-01-17 17:46:01 +00:00
Nick Brassel
e524e0a397
Add syscall fallbacks to ChibiOS builds (#11573)
* Add fallback syscalls to ChibiOS builds that are present but able to be overridden as appropriate.

* Modified location to be ChibiOS-specific.
2021-01-18 04:45:21 +11:00
fauxpark
ca7da3866d Merge remote-tracking branch 'upstream/master' into develop 2021-01-15 18:34:12 +11:00
Ryan
84e2f1ec17
Adafruit BLE cleanups (#11556) 2021-01-15 14:32:00 +11:00
Ryan
f519a9908e
arm_atsam: temporarily lower raw HID endpoint/report size (#11554) 2021-01-15 14:11:04 +11:00
Nick Brassel
ab375d3d07 Revert "Keep track of last matrix activity (#10730)"
This reverts commit 79d1db332477963555416d9fff82ecac4399bd52.
2021-01-15 06:55:07 +11:00
Takeshi ISHII
302b35c2a0
fix matrix_io_delay() timing in quantum/matrix.c (#9603)
* fix matrix_io_delay() timing in quantum/matrix.c

* Updated comments explaining the need for matrix_io_delay() in quantum/matrix.c

* fix matrix_io_delay() timing in quantum/split_common/matrix.c

* Update quantum/matrix.c

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

* Update quantum/split_common/matrix.c

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

* Update quantum/matrix.c

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

* Update quantum/split_common/matrix.c

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

* add waitOutputPinValid() and wait_cpuclock() into quantum/quantum.h and tmk_core/common/wait.h

* add matrix_output_select_delay() and matrix_output_unselect_delay()

* fix quantum/matrix_common.c, tmk_core/common/matrix.h

* fix tmk_core/common/wait.h

* fix quantum/quantum.h, tmk_core/common/wait.h

* waitOutputPinValid() rename to waitInputPinDelay() in quantum/quantum.h.

* waitOutputPinValid() rename to waitInputPinDelay() in quantum/matrix_common.c

* update tmk_core/common/wait.h

* update comment in quantum/matrix.c, quantum/split_common/matrix.c

* update quantum/quantum.h: Make more margin in the GPIO_INPUT_PIN_DELAY default value.

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-13 12:46:22 +11:00
Nick Brassel
79d1db3324
Keep track of last matrix activity (#10730)
* Allow recording of the last matrix activity time, to simplify implementation of display timeouts and the like.

* Add requested changes from code review.

* Simplify split matrix last changed.
2021-01-12 19:48:24 +11:00
QMK Bot
3bc436988d Merge remote-tracking branch 'origin/master' into develop 2021-01-11 08:47:07 +00:00
Ryan
aa0e33eca0
Add support for shared EP on V-USB boards (#11103) 2021-01-11 19:46:30 +11:00
QMK Bot
6f9db2b48e Merge remote-tracking branch 'origin/master' into develop 2021-01-11 08:07:48 +00:00
Joshua Diamond
4d96b85b6f
Lighting Layers should be disabled when suspended (#11442)
* Lighting Layers should be disabled when suspended

* bugfixes
2021-01-11 00:07:09 -08:00
QMK Bot
c8320726bd Merge remote-tracking branch 'origin/master' into develop 2021-01-10 22:16:06 +00:00
Joel Challis
d58d7dd192
manually run formatting job (#11503) 2021-01-10 22:15:29 +00:00
QMK Bot
621d54f662 Merge remote-tracking branch 'origin/master' into develop 2021-01-05 22:27:48 +00:00
Takeshi ISHII
3edfb93d5d
Add build debug option to tmk_core/rules.mk (#11324)
* Add DUMP_C_MACROS to tmk_core/rules.mk

* update DUMP_C_MACROS

* add VERBOSE_LD_CMD, VERBOSE_AS_CMD

* add VERBOSE_C_CMD, VERBOSE_C_INCLUDE

* update DUMP_C_MACROS, VERBOSE_C_INCLUDE, VERBOSE_C_CMD
2021-01-06 07:27:10 +09:00
Dasky
e7db582e35
Set avr's bootloader_jump function to be weak (#11418)
Co-authored-by: Dasky <dasky@nowhere>
2021-01-04 21:53:37 -08:00
QMK Bot
d0aa9ff972 Merge remote-tracking branch 'origin/master' into develop 2021-01-05 00:37:55 +00:00
Drashna Jaelre
810eafad12
Fix Tap-Hold Configs (#11127)
* Add proper prototypes for Tap-Hold Per Key functions

* Fix handwired/tennie default keymap

* Remove unneeded references

* Fix tapping term per key check in space cadet

* Pre-emptive fix for tap dance

* Fix marksard/leftover30

* Replace hard coded tapping term with define
2021-01-04 16:37:20 -08:00
Nick Brassel
25e972e8a4
Fix up build dependencies. (#11435) 2021-01-05 07:36:02 +11:00
QMK Bot
1f8acb7619 Merge remote-tracking branch 'origin/master' into develop 2021-01-03 20:30:50 +00:00
Joel Elkins
070240f212
arm_atsam: Use PROGRAM_CMD for :flash target if set (#11424) 2021-01-04 07:30:22 +11:00
Zach White
11bd98f684
Fix broken keyboards (#11412)
* Fix a couple errors

* add a dependency for the generated headers
2021-01-03 13:08:17 +11:00
fauxpark
e3da93e658 Merge remote-tracking branch 'upstream/master' into develop 2021-01-01 05:09:50 +11:00
Joel Challis
a68d289fa5
Manually run formatting CI process (#11375) 2021-01-01 03:50:32 +11:00
QMK Bot
633d2cb648 Merge remote-tracking branch 'origin/master' into develop 2020-12-31 06:21:45 +00:00
Takeshi ISHII
6169b47e82
Add target 'check-md5' to build_keyboard.mk (#11338)
* Add target 'build-for-compare' to `build_keyboard.mk`

The `build-for-compare` target provides an easy way to check the md5 checksum of the generated binary.

You can easily see if there is any change in the generated binaries between the two versions, as in the example below.

```
$ git checkout 0.11.0
M	build_keyboard.mk
M	tmk_core/rules.mk
Note: checking out '0.11.0'.
HEAD is now at c66df1664 2020 November 28 Breaking Changes Update (#11053)

$ make helix:all:build-for-compare | grep ^MD5
MD5 (.build/helix_rev2_default.hex) = 5c3606562c944bb4d18832e601b45d4a
MD5 (.build/helix_rev2_edvorakjp.hex) = 9e43d13d389d518ba7e99cd7337e28d6
MD5 (.build/helix_rev2_five_rows.hex) = 8bcb61c2fd5d237c2997f2fa007d4934
MD5 (.build/helix_rev2_five_rows_jis.hex) = b97cd818d52f73ca2d4e78c86d90a791
MD5 (.build/helix_rev2_froggy.hex) = c492172364188f4e2918b10bf0f3a0a6
MD5 (.build/helix_rev2_froggy_106.hex) = b0861fd735a8f81881a8c02730641a2b
MD5 (.build/helix_rev2_led_test.hex) = 5c97d982a5da5cfb3dacb28a8934b81d
MD5 (.build/helix_rev2_xulkal.hex) = 01f603dc46bcf9094d7e106831d8f5b1
MD5 (.build/helix_rev2_yshrsmz.hex) = 5a008bca2d0c5790a151c02834c529ba

$ git checkout 0.11.1
M	build_keyboard.mk
M	tmk_core/rules.mk
Previous HEAD position was c66df1664 2020 November 28 Breaking Changes Update (#11053)
HEAD is now at cc08e3082 nix-shell: add milc dependency (#11086)

$ make helix:all:build-for-compare | grep ^MD5
MD5 (.build/helix_rev2_default.hex) = 5c3606562c944bb4d18832e601b45d4a
MD5 (.build/helix_rev2_edvorakjp.hex) = 9e43d13d389d518ba7e99cd7337e28d6
MD5 (.build/helix_rev2_five_rows.hex) = 8bcb61c2fd5d237c2997f2fa007d4934
MD5 (.build/helix_rev2_five_rows_jis.hex) = b97cd818d52f73ca2d4e78c86d90a791
MD5 (.build/helix_rev2_froggy.hex) = c492172364188f4e2918b10bf0f3a0a6
MD5 (.build/helix_rev2_froggy_106.hex) = b0861fd735a8f81881a8c02730641a2b
MD5 (.build/helix_rev2_led_test.hex) = 5c97d982a5da5cfb3dacb28a8934b81d
MD5 (.build/helix_rev2_xulkal.hex) = d848383adfd7463b138c6da179cf1436
MD5 (.build/helix_rev2_yshrsmz.hex) = 5a008bca2d0c5790a151c02834c529ba
```

* make builds reproducable by default

* update build_keyboard.mk: remove 'build-for-compare' target

* GNU make (3.81) on macOS 10.14(Mojave) does not have the 'undefine' directive.

* Adopted fauxpark's suggestion.

* Update tmk_core/rules.mk

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

* update tmk_core/rules.mk

* fix tmk_core/rules.mk

Co-authored-by: Zach White <skullydazed@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-12-31 15:20:56 +09:00
QMK Bot
b51cc6d67a Merge remote-tracking branch 'origin/master' into develop 2020-12-30 15:45:24 +00:00
Ryan
7071900407
Missed a couple more #pragma onces (#11351) 2020-12-30 15:44:53 +00:00
QMK Bot
f801c69c75 Merge remote-tracking branch 'origin/master' into develop 2020-12-30 09:59:32 +00:00
Ryan
411b92e206
Remove useless wait in AVR suspend code (#11352) 2020-12-30 20:58:57 +11:00
siggie0815
1b3504e329
Update ADB impelemtation in TMK Core (#11168)
* Update ADB impelmentation in tmk_core to recent version.

Pcked from tmk_keyboard repository revision: 48d696443857512d45f9a7329e0dd0a76345860f

* Restore convenient ADB functions used in QMK port.

* Do cformat.
2020-12-29 19:18:16 -08:00
QMK Bot
9634c72d7e Merge remote-tracking branch 'origin/master' into develop 2020-12-29 21:45:35 +00:00
xyzz
2573ed8c6b
Remove MATRIX_IS_ON macro (#11330)
* Remove MATRIX_IS_ON macro

this macro is both incorrect and excessive given that macro_is_on()
exists

* Remove massdrop matrix.h
2020-12-29 21:45:04 +00:00
QMK Bot
99d6349978 Merge remote-tracking branch 'origin/master' into develop 2020-12-27 17:37:04 +00:00
Ryan
1b7b72c0e9
Ensure single newline at EOF for core files (#11310) 2020-12-28 04:36:32 +11:00
QMK Bot
0b37c0dfa0 Merge remote-tracking branch 'origin/master' into develop 2020-12-26 04:56:43 +00:00
Ryan
1d1d5da43f
Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
Jan Christoph Ebersbach
010271d6ea
Implement kinetic mouse movement algorithm (#6739)
* Implement kinetic mouse movement algorithm

* Adjust mouse wheel speed

* Remove unused math.h include

* Wrap mouse_timer definition in ifdef

* Replace double space by single space

* Clarify documentation of kinetic mouse speed

Co-Authored-By: lf <software@lfcode.ca>

* Clarify documentation of kinetic mouse speed

Co-Authored-By: lf <software@lfcode.ca>

* Remove superfluous definition of speed

* fix(variable): remove unused variable

Co-authored-by: lf <software@lfcode.ca>
2020-12-24 14:12:19 -08:00
QMK Bot
b02c694992 Merge remote-tracking branch 'origin/master' into develop 2020-12-23 00:45:29 +00:00
Reza Jelveh
fd177582ad
chibios: honor PLATFORMASM in chibios build (#11219) 2020-12-23 11:44:49 +11:00
QMK Bot
1c04608b0a Merge remote-tracking branch 'origin/master' into develop 2020-12-22 20:33:41 +00:00
Ryan
78b2f120e5
V-USB: Fix initial dropped keypress (#11263) 2020-12-23 07:33:04 +11:00
QMK Bot
c8cd2caeac Merge remote-tracking branch 'origin/master' into develop 2020-12-21 02:12:40 +00:00
Ryan
e3211e307e
Fix small typo in V-USB configuration descriptor (#11253) 2020-12-21 13:12:07 +11:00
fauxpark
7797070b37 Merge remote-tracking branch 'upstream/master' into develop 2020-12-18 02:15:28 +11:00
Ryan
6ea4b06f9f
Run cformat and dos2unix manually (#11235) 2020-12-17 14:06:30 +00:00
QMK Bot
2e0f2025bd Merge remote-tracking branch 'origin/master' into develop 2020-12-16 03:27:52 +00:00
Ryan
9366ed7282
Normalise include statements in keyboard code (#11185) 2020-12-16 14:27:23 +11:00
QMK Bot
fdfcce57e1 Merge remote-tracking branch 'origin/master' into develop 2020-12-11 02:46:19 +00:00
Ryan
501f2fdef1
Normalise include statements in core code (#11153)
* Normalise include statements in core code

* Missed one
2020-12-11 13:45:24 +11:00
Jesper Jensen
63d06655e6
gcc 10 compatibility for Drop alt (#9485)
* Split dmac_desc declaration and definition

According to the official documentation[1] gcc 10 is more strict about
correct extern usage.

I've had to move the definition of dmac_desc and dmac_desc_wb from
i2c_master.h to the corresponding .c file. This could be an issue if
anyone includes the i2c_master.h file without liking with the object
file.

[1]: https://gcc.gnu.org/gcc-10/porting_to.html

* Remove the keymap_config definition from keymaps

The keymap_config def was conflicting with the one found in
tmk_core/common/magic.c. Declaring it extern in magic.c breaks a bunch
of keyboard that rely on that declaration (like the ergodox). Instead
I've removed the one found in the keymap.c of the massdrop alt.

The same change will have to be made to other keyboards.
2020-12-06 17:24:49 +11:00
QMK Bot
15200bd8f5 Merge remote-tracking branch 'origin/master' into develop 2020-12-05 10:14:47 +00:00
Ryan
15faffacf4
Omit serial number if not defined (#11104) 2020-12-05 21:14:19 +11:00
Nick Brassel
87291437bd
Add board specific to Proton-C, with usual defaults turned on. (#10976)
- Set all other ChibiOS defaults to 'off', when not targeting Proton-C
- Modified all existing F303 boards to point at the QMK_PROTON_C to ensure repeatable binary output
- Modified version.h generation so that SKIP_VERSION=yes generates the same output
2020-12-03 13:04:28 +11:00
XScorpion2
a8d0ec0749
[Split] Sync Timer feature (#10997)
A timer that is kept in sync between the halves of a split keyboard
2020-12-01 10:04:42 -08:00
XScorpion2
485e4524f4
Fix int wrapping for timer_expired macros and use MAX defines for consistency and clarity (#10996) 2020-11-30 21:18:19 +11:00
James Young
c66df16644
2020 November 28 Breaking Changes Update (#11053)
* Branch point for 2020 November 28 Breaking Change                                                

* Remove matrix_col_t to allow MATRIX_ROWS > 32 (#10183)                                           

* Add support for soft serial to ATmega32U2 (#10204)                                               

* Change MIDI velocity implementation to allow direct control of velocity value (#9940)            

* Add ability to build a subset of all keyboards based on platform.                                

* Actually use eeprom_driver_init().                                                               

* Make bootloader_jump weak for ChibiOS. (#10417)                                                  

* Joystick 16-bit support (#10439)                                                                 

* Per-encoder resolutions (#10259)                                                                 

* Share button state from mousekey to pointing_device (#10179)                                     

* Add hotfix for chibios keyboards not wake (#10088)                                               

* Add advanced/efficient RGB Matrix Indicators (#8564)                                             

* Naming change.                                                                                   

* Support for STM32 GPIOF,G,H,I,J,K (#10206)                                                       

* Add milc as a dependency and remove the installed milc (#10563)                                  

* ChibiOS upgrade: early init conversions (#10214)                                                 

* ChibiOS upgrade: configuration file migrator (#9952)                                             

* Haptic and solenoid cleanup (#9700)                                                              

* XD75 cleanup (#10524)                                                                            

* OLED display update interval support (#10388)                                                    

* Add definition based on currently-selected serial driver. (#10716)                               

* New feature: Retro Tapping per key (#10622)                                                      

* Allow for modification of output RGB values when using rgblight/rgb_matrix. (#10638)             

* Add housekeeping task callbacks so that keyboards/keymaps are capable of executing code for each main loop iteration. (#10530)

* Rescale both ChibiOS and AVR backlighting.                                                       

* Reduce Helix keyboard build variation (#8669)                                                    

* Minor change to behavior allowing display updates to continue between task ticks (#10750)        

* Some GPIO manipulations in matrix.c change to atomic. (#10491)                                   

* qmk cformat (#10767)                                                                             

* [Keyboard] Update the Speedo firmware for v3.0 (#10657)                                          

* Maartenwut/Maarten namechange to evyd13/Evy (#10274)                                             

* [quantum] combine repeated lines of code (#10837)                                                

* Add step sequencer feature (#9703)                                                               

* aeboards/ext65 refactor (#10820)                                                                 

* Refactor xelus/dawn60 for Rev2 later (#10584)                                                    

* add DEBUG_MATRIX_SCAN_RATE_ENABLE to common_features.mk (#10824)                                 

* [Core] Added `add_oneshot_mods` & `del_oneshot_mods` (#10549)                                    

* update chibios os usb for the otg driver (#8893)                                                 

* Remove HD44780 References, Part 4 (#10735)                                                       

* [Keyboard] Add Valor FRL TKL (+refactor) (#10512)                                                

* Fix cursor position bug in oled_write_raw functions (#10800)                                     

* Fixup version.h writing when using SKIP_VERSION=yes (#10972)                                     

* Allow for certain code in the codebase assuming length of string. (#10974)                       

* Add AT90USB support for serial.c (#10706)                                                        

* Auto shift: support repeats and early registration (#9826)                                       

* Rename ledmatrix.h to match .c file (#7949)                                                      

* Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER (#10231)                                        

* Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER (#10840)                                        

* Merge point for 2020 Nov 28 Breaking Change
2020-11-28 12:02:18 -08:00
Joel Challis
b8443863c0
Remove references to ch-bootloader-jump.patch (#10998) 2020-11-22 21:12:30 +00:00
Drashna Jaelre
e7497b3fba
Add references for is_keyboard_left() (#10850)
* Add references for is_keyboard_left()

* Remove proto from bootmagic_lite.c
2020-11-18 16:50:32 -08:00
Chris Merrill
16fe4b8b77
Update massdrop/alt and arm_atsam/led_matrix to fix #10813 (#10818)
* Update massdrop/alt keyboard to fix Caps Lock LED flickering.

* Fix Caps-lock LED during underglow-only for massdrop/ctrl

* Update keyboards/massdrop/ctrl/keymaps/default/keymap.c
2020-11-09 13:33:40 -08:00
Joel Challis
1ff5ee255f
Indicator LEDs as config (#10816)
* First pass

* Add config options to docs

* Update some wording

* Slight tidy up of backlight caps logic

* Init pin to correct state

* Move init location

* Reverse default state
2020-11-08 22:31:16 +00:00
Sergey Vlasov
f149c07d68
Fix KEYBOARD_SHARED_EP incompatibility with VIA (#9930)
The `KEYBOARD_SHARED_EP=yes` option was breaking the VIA support,
because the raw HID interface number in this case was 0 instead of 1,
and the VIA app depends on the exact interface number for raw HID.
Change the interface ordering to put the shared interface before the raw
HID interface if `KEYBOARD_SHARED_EP` is enabled, so that the raw HID
interface can keep its number.
2020-10-27 10:40:59 +11:00
Adrian
120c42255b
Added EEPROM emulation for STM32F042x6 series processors (#10685)
* Added STM32F042x6 support for EEPROM emulation

* Default to lower stack size on STM32F042

* Moved stack setting

* Re-moved stack definition

* Removed unnecessary check
2020-10-22 21:05:01 +11:00
Peter Landoll
0fbb1e550a
Add description in Bluetooth docs for requiring NKRO to be disabled (#10359) 2020-09-22 22:31:37 +10:00
David Cuthbert
b846480d5a
Output an error message if LINK_TIME_OPTIMIZATION_ENABLE is set but LTO_ENABLE is not (#10217)
* Output an error message if LINK_TIME_OPTIMIZATION_ENABLE is set but LTO_ENABLE is not.

* Update common.mk

Specify that LINK_TIME_OPTIMZATION_ENABLE has been renamed, not deprecated.
2020-09-17 15:14:39 -07:00
Frans de Jonge
2b9f200a2a
[fix] dfu-programmer <0.7 doesn't support --force flag (#10292)
Fixes <https://github.com/qmk/qmk_firmware/issues/10286>.
2020-09-13 02:17:47 +01:00
Ryan
6e948feb6a
Use the force when flashing with dfu-programmer (#10070) 2020-09-10 00:00:27 +10:00
QMK Bot
a3db72df72 format code according to conventions [skip ci] 2020-08-29 22:57:48 +00:00
Ryan
0f596881b3 Remove support for Adafruit EZ-Key (#10103)
* Remove support for Adafruit EZ-Key

* Update docs/ja/feature_bluetooth.md

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
2020-08-29 14:30:02 -07:00
Ryan
b89b2030af Kiibohd bootloader, take 2 (#10129) 2020-08-29 14:30:02 -07:00
Drashna Jaelre
92385b3fb6 Better handle LTO_ENABLE (#9832)
* Better handle LTO_ENABLE

Especially when calling from command line

* Replace LINK_TIME_OPTIMIZATION_ENABLE with LTO_ENABLE

* Remove long for LTO from show_options.mk
2020-08-29 14:30:02 -07:00
Ryan
3f392c09b6 More Bluetooth refactoring (#9905) 2020-08-29 14:30:02 -07:00
yiancar
47f8947bf5 Update vusb to match 3rd endpoint. (#9020)
* Update vusb to match 3rd endpoint.

- With the addition of https://github.com/qmk/v-usb/pull/1 a 3rd endpoint (endpoint4) becomes available.
- We can assign mouse/extrakeys to that endpoint as its a desirable feature and leave rawhid and console to compete for the 2nd endpoint.

NOTE: The version of vusb.c in future branch is older than master. Just remember that it will need a #error if both raw_hid and console are enabled at the same time.

* Final Fixes

* Update tmk_core/protocol/vusb/vusb.c

* Update tmk_core/protocol/vusb/vusb.c

* Update tmk_core/protocol/vusb/usbconfig.h

* Update tmk_core/protocol/vusb/usbconfig.h

* Update tmk_core/protocol/vusb/usbconfig.h

* Update tmk_core/protocol/vusb/usbconfig.h

* Updated vusb submodule to latest commit
2020-08-29 14:30:02 -07:00
Nick Brassel
167daa9cf8 Add ability to dump all makefile variables for the specified target. (#8256) 2020-08-29 14:30:02 -07:00
Sergey Vlasov
d00ac5dfb6 Add st-flash flash target (#9964)
* Add `st-flash` flash target

Add support for flashing the firmware via the `st-flash` utility from
the STLink Tools package (https://github.com/stlink-org/stlink).

* Add `st-flash` to the `qmk flash -b` output
2020-08-29 14:30:02 -07:00
Ryan
12333b7c5e Fix joystick compile issues (#9949) 2020-08-29 14:30:02 -07:00
Drashna Jaelre
e6266b19be Initialize Layer State on startup (#8318)
* Initialize Layer State on startup

Right now, on startup, the default layer state gets called and set, triggering the callback functions for the default layer state. However, the normal layer state never actually gets initialized.  It's set to 0 directly, by default, but the callback functions are never actually called.  This creates some inconsistency in the behavior for end users.  This adds a simple "clear" that triggers the callback on startup.  This should produce more consisten behavior between the two functions and layer masks.

* Stupid hack

* Fix type casting?

* Fix compile issues with magic is disabled
2020-08-29 14:30:02 -07:00
a-chol
d4be07dad3 Hid joystick interface (#4226)
* add support for hid gamepad interface
add documentation for HID joystick
Add joystick_task to read analog axes values even when no key is pressed or release. update doc
Update docs/feature_joystick.md
Manage pin setup and read to maintain matrix scan after analog read

* Incorporates patches and changes to HID reporting

There are some patches provided by @a-chol incorporated on this commit,
and also some changes I made to the HID Report structure.

The most interesting is the one dealing with number of buttons: Linux
doesn't seem to care, but Windows requires the HID structure to be byte
aligned (that's in the spec). So if one declares 8/16/32... buttons they
should not have any issues, but this is what happens when you have 9
buttons:

```
 bits |0|1|2|3|4|5|6|7|
      |*|*|*|*|*|*|*|*| axis 0 (report size 8)
      |*|*|*|*|*|*|*|*| ...
      |*|*|*|*|*|*|*|*|
      |*|*|*|*|*|*|*|*|
      |*|*|*|*|*|*|*|*|
      |*|*|*|*|*|*|*|*|
      |*|*|*|*|*|*|*|*| axis 6
      |*|*|*|*|*|*|*|*| first 8 buttons (report size 1)
      |*| | | | | | | | last of 9 buttons, not aligned
```

So for that I added a conditonal that will add a number of reports with
size 1 to make sure it aligns to the next multiple of 8. Those reports
send dummy inputs that don't do anything aside from aligning the data.

Tested on Linux, Windows 10 and Street Fighter (where the joystick is
recognized as direct-input)

* Add save and restore of each pin used in reading joystick (AVR).
Allow output pin to be JS_VIRTUAL_AXIS if the axis is connected to Vcc
instead of an output pin from the MCU.

Fix joystick report id

Fix broken v-usb hid joystick interface. Make it more resilient to unusual settings (none multiple of eight button count, 0 buttons or 0 axes)

Correct adc reading for multiple axes. Piecewise range conversion for uncentered raw value range. Input, output and ground pin configuration per axis.

Documentation fixes

* Fix port addressing for joystick analog read

* The other required set of changes
As per the PR, the changes still holding it up.
Add onekey for testing.
Fix ARM builds.
Fix device descriptor when either axes or buttons is zero.
Add compile-time check for at least one axis or button.
Move definition to try to fix conflict.
PR review comments.
qmk cformat

* avoid float functions to compute range mapping for axis adc reading

* Remove V-USB support for now. Updated docs accordingly.

* Update tmk_core/protocol/lufa/lufa.c

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

* Update tmk_core/protocol/usb_descriptor.c

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

* Update tmk_core/protocol/usb_descriptor.c

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

* Update tmk_core/protocol/usb_descriptor.c

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

* Add support for joystick adc reading for stm32 MCUs. Fix joystick hid report sending for chibios

* Fix HID joystick report sending for ChibiOS.
Add one analog axis to the onekey:joystick keymap.
Fix pin state save and restore during joystick analog read for STM32
MCUs.

* Update tmk_core/protocol/chibios/usb_main.c

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

* Update tmk_core/protocol/lufa/lufa.c

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

* Add missing mcuconf.h and halconf.h to onekey:joystick keymap.
Add suggested fixes from PR.

* Switch saveState and restoreState signature to use pin_t type.
onekey:joystick : add a second axis, virtual and programmatically animated.

* Update docs/feature_joystick.md

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

* Update docs/feature_joystick.md

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

* Add PR corrections

* Remove halconf.h and mcuconf.h from onekey keymaps

* Change ADC_PIN to A0

Co-authored-by: achol <allecooll@hotmail.com>
Co-authored-by: José Júnior <jose.junior@gmail.com>
Co-authored-by: a-chol <achol@notamail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-08-29 14:30:02 -07:00
Drashna Jaelre
3c74edbc69 Disable NKRO on V-USB controllers (#9054)
* Disable NKRO on V-USB controllers

* not _currently_ supported text

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-08-29 14:30:02 -07:00
Nick Brassel
686a9d35ff Re-fix the STM32 dual-bank bootloader stuff. (#9738)
* Re-fix the dual-bank bootloader stuff.

* Use wait_ms() instead of using nop's for a delay, as ChibiOS is actually running at the time of bootloader jump.
2020-08-29 14:30:02 -07:00
Nick Brassel
93e7a8f74c Add dual-bank STM32 bootloader support, given GPIO toggle on BOOT0 to charge RC circuit. (#8778) 2020-08-29 14:30:02 -07:00
dhong44
d0abad27ab Fix the mousekey scrolling (#9174)
Mousekey scrolling should have a separate repeat variable
to keep track of scrolling acceleration, instead of being
tied to mouse movement scolling in mousekeys. The send function
should record when the last movement was made since this is
when movement is actually sent. Doing this fixes the bug where
the initial press of a mousekey scroll button causes a double scroll.

Signed-off-by: Daniel Hong <daniel.hong@live.com>
2020-08-29 14:30:02 -07:00
Ryan
8a4a0c25fd Change analogRead calls to analogReadPin (#9023)
* Change analogRead calls to analogReadPin

* Add ChangeLog

* Update docs, remove mention of `analogRead()`

* Retarget changelog for next round
2020-08-29 14:30:02 -07:00
Nick Brassel
60e5733c48 qmk cformat on develop (#9501) 2020-08-29 14:30:02 -07:00
Ryan
3b34858b77 Don't compile outputselect.c if Bluetooth is disabled (#9356) 2020-08-29 14:30:02 -07:00
Ryan
69e0ad1b2c Additional cleanups for V-USB code (#9310) 2020-08-29 14:30:02 -07:00
Ryan
1193e45bf4 Convert CONSUMER2BLUEFRUIT() and CONSUMER2RN42() macros to static inline functions (#9055) 2020-08-29 14:30:02 -07:00
Ryan
f209f91c7c Various tidyups for USB descriptor code (#9005) 2020-08-29 14:30:02 -07:00
Nick Brassel
385d49cc39 Initial work for consolidation of ChibiOS platform files (#8327)
* Initial work for consolidation of board files and default ChibiOS configs.

* Migrate F401/F411 black pills for testing.

* Add early init bootloader jump flag.

* Add support for I2C in order to use i2c_scanner keymap.

* Add F401/F411 HSE bypass to get things booting.

* Exempt "hooked" ChibiOS conf files from updater script.

* Fix up ordering for bootloader_defs file check.

* Match previous $(KEYBOARD_PATHS) value for Proton-C, updated for all board configs.
2020-08-29 14:30:02 -07:00
Ryan
5cc3ab38c9 Remove iWRAP protocol (#9284) 2020-08-29 14:30:02 -07:00
Ryan
d949932c08
Fix ChibiOS backlight not turning off on suspend (#10114)
* Fix ChibiOS backlight not turning off on suspend

* Add missing code for backlight as caps lock too
2020-08-26 11:15:43 -07:00
Nick Brassel
70ce4ba56f
Revert "Add Kiibohd bootloader type to bootloader.mk (#9908)" (#10126)
This reverts commit e2d4cd1a41c667da186891e3dbaf535c6b0717df.
2020-08-21 15:42:28 -07:00
Ryan
e2d4cd1a41
Add Kiibohd bootloader type to bootloader.mk (#9908) 2020-08-12 12:28:20 +10:00
Drashna Jaelre
c7b56bee96
[Bug] Fix Swap Hands bug introduced by OSH (#9968)
Fixes the handling for the oneshot cleanup, so it only cleans up if it is active.  It should not cleanup of SHO is off (eg using a normal oneshot key), nor if it's actively pressed or used.  

Previous behavior BROKE swap hand key.
2020-08-08 16:41:10 -07:00