551 Commits (0412c92b68fbc3b3d3eefd44c1b04d05b47c826a)

Author SHA1 Message Date
Joakim Tufvegren 8d9f527081
Add sync_timer support over serial_link (i.e. Ergodox Infinity) (#12845) 5 years ago
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.
5 years ago
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.
5 years ago
Michael Stapelberg e2c5893405
core: make RESET key work with Teensy 4.x (#13076)
related to https://github.com/kinx-project/kint/issues/5
5 years ago
Ryan b2fdd48744
Add ST7565 LCD driver (#13089)
Co-authored-by: Joakim Tufvegren <jocke@barbanet.com>
5 years ago
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
5 years ago
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
5 years ago
James Young 7d1194de01
run: qmk cformat --core-only 5 years ago
Ryan 06aea834c4
Backlight: add defines for default level and breathing state (#12560) 5 years ago
Nick Brassel 58142f0726
Fixup housekeeping from being invoked twice per loop. (#12933) 5 years ago
Drashna Jaelre da0c551692
Add missing LED Matrix suspend code to suspend.c (#12878)
Co-authored-by: Ryan <fauxpark@gmail.com>
5 years ago
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.
5 years ago
QMK Bot 447bd64013 Merge remote-tracking branch 'origin/master' into develop 5 years ago
Ryan 3d922e6257
Add a handful of consumer/gendesk page usages (#12811) 5 years ago
github-actions[bot] 39bc8163d0
[CI] Format code according to conventions (#12731)
Co-authored-by: QMK Bot <hello@qmk.fm>
5 years ago
Drashna Jaelre d8167779cd
Change RGB/LED Matrix to use a simple define for USB suspend (#12697) 5 years ago
github-actions[bot] 8c12fa2e59
Format code according to conventions (#12682)
Co-authored-by: QMK Bot <hello@qmk.fm>
5 years ago
Purdea Andrei 412e7a03e4
eeprom driver: Refactor where eeprom driver initialisation (and EEPROM emulation initialisation) occurs to make it non-target-specific. (#12671) 5 years ago
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
5 years ago
QMK Bot b09d068bf6 Merge remote-tracking branch 'origin/master' into develop 5 years ago
Joel Challis 1cecd593c8
Fix for gcc10 teensy_lc eeprom build warning (#12587) 5 years ago
Ryan ce99f98bb5
LED Matrix: suspend code (#12509) 5 years ago
Michael Stapelberg e95a4f4f52
core: add pin_defs for MK66F18 (#12419)
This is in preparation for https://github.com/qmk/qmk_firmware/pull/10171
5 years ago
Ryan 2ae38e9c43
LED Matrix: Config functions (#12361) 5 years ago
QMK Bot 25f1a3d759 Merge remote-tracking branch 'origin/master' into develop 5 years ago
github-actions[bot] 0a056cfd81
Format code according to conventions (#12380)
Co-authored-by: QMK Bot <hello@qmk.fm>
5 years ago
QMK Bot 5a0be4c6d8 Merge remote-tracking branch 'origin/master' into develop 5 years ago
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>
5 years ago
QMK Bot 8086837f69 Merge remote-tracking branch 'origin/master' into develop 5 years ago
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>
5 years ago
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
5 years ago
QMK Bot 2f59e1c1d9 Merge remote-tracking branch 'origin/master' into develop 5 years ago
github-actions[bot] a18e1305b3
Format code according to conventions (#12244)
Co-authored-by: QMK Bot <hello@qmk.fm>
5 years ago
QMK Bot 998c58e89b Merge remote-tracking branch 'origin/master' into develop 5 years ago
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>
5 years ago
Joel Challis 40c7ecfdea
Move gpio wait logic to wait.h (#12067) 5 years ago
Ryan 9155b59e1a
LED Matrix: decouple from Backlight (#12054) 5 years ago
XScorpion2 cde2859a65
Split RGB Matrix (#11055)
* Split RGB Matrix

* Suspend State sync for rgb matrix
5 years ago
QMK Bot 4c04c848b5 Merge remote-tracking branch 'origin/master' into develop 5 years ago
Drashna Jaelre ab3986a684
Set default for USB_SUSPEND_WAKEUP_DELAY to 0/disabled (#12081) 5 years ago
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>
5 years ago
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
5 years ago
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
5 years ago
Joel Challis a3cbc8a004
Overhaul bootmagic logic to have single entrypoint (#8532)
* Relocate bootmagic logic to have single entrypoint

* Align init of layer state
5 years ago
Isaac Elenbaas 765d8a33dd
Fixes #4072, #6214. Revision of #156 to clear before AS/TD. (#9941) 5 years ago
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.
5 years ago
fauxpark 23fd1aee00 Merge remote-tracking branch 'upstream/master' into develop 5 years ago
Ryan 39694d5eb0
V-USB suspend refactor (#11891) 5 years ago
Liyang HU c4bd6af837
tmk_core/common/action.c: refactor for code size; merge multiple `case`s 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.
5 years ago
github-actions[bot] a5f63dbf93
Format code according to conventions (#11936)
Co-authored-by: QMK Bot <hello@qmk.fm>
5 years ago