Compare commits

..

709 Commits

Author SHA1 Message Date
e293bf243d refactor doctor.py into a directory 2021-06-21 22:48:20 -07:00
286acfe7fd move all our file formatters to the format dir 2021-06-21 22:24:34 -07:00
6d20b28354 make our schema validation more compact and flexible 2021-06-21 12:30:26 -07:00
846da06380 cleanup 2021-06-21 09:58:11 -07:00
243fc17e41 make flake8 happy 2021-06-20 12:27:51 -07:00
f394f23ac6 fix formatting after vscode broke it 2021-06-20 11:57:37 -07:00
0ca53fa307 optimize our jsonschema using refs 2021-06-20 11:52:57 -07:00
8c361d6c41 fix some broken info.json files 2021-06-20 11:52:57 -07:00
8d30209260 Merge remote-tracking branch 'origin/master' into develop 2021-06-20 18:37:17 +00:00
40bf61118e Merge remote-tracking branch 'origin/master' into develop 2021-06-20 16:38:52 +00:00
c234341cf6 Merge remote-tracking branch 'origin/master' into develop 2021-06-20 15:30:49 +00:00
291455098f Merge remote-tracking branch 'origin/master' into develop 2021-06-20 13:30:43 +00:00
8f36af8409 Merge remote-tracking branch 'origin/master' into develop 2021-06-20 08:01:01 +00:00
25f1c242f8 Merge remote-tracking branch 'origin/master' into develop 2021-06-20 07:50:19 +00:00
f80ee5639e Merge remote-tracking branch 'origin/master' into develop 2021-06-20 07:37:50 +00:00
085db5ec8d Merge remote-tracking branch 'origin/master' into develop 2021-06-20 07:17:15 +00:00
8f1eccc59b Merge remote-tracking branch 'origin/master' into develop 2021-06-20 07:15:10 +00:00
2cb4301656 Merge remote-tracking branch 'origin/master' into develop 2021-06-20 07:14:00 +00:00
f106f77692 Merge remote-tracking branch 'origin/master' into develop 2021-06-20 03:09:08 +00:00
e4c5b1bbbb Add Per Key exclusions for Haptic Feedback (#12386)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-06-19 19:28:54 -07:00
f6ac5abd95 Merge remote-tracking branch 'origin/master' into develop 2021-06-20 02:21:53 +00:00
18f6ded5fa Merge remote-tracking branch 'origin/master' into develop 2021-06-20 02:21:20 +00:00
67af692c97 Merge remote-tracking branch 'origin/master' into develop 2021-06-20 02:19:07 +00:00
8d9f527081 Add sync_timer support over serial_link (i.e. Ergodox Infinity) (#12845) 2021-06-19 19:18:00 -07:00
fc749b40e6 Merge remote-tracking branch 'origin/master' into develop 2021-06-20 02:14:49 +00:00
76e856d052 Merge remote-tracking branch 'origin/master' into develop 2021-06-20 02:13:09 +00:00
e3030bff5e Merge remote-tracking branch 'upstream/master' into develop 2021-06-20 12:10:59 +10:00
5b7cf9fdc8 RGB Matrix eeprom write limiting (#13238) 2021-06-19 19:03:06 -07:00
3c790123ce Temporary disable of CRC (#13252) 2021-06-20 09:31:18 +10:00
1272ecd73c Fixing incorrect keymap build when switching between multiple keymap.jsons (#12632) 2021-06-19 15:30:23 -07:00
7c5ef4060e allow LINE_PINxx for Teensy 4.x pins (#13247)
fixes https://github.com/qmk/qmk_firmware/issues/13052
2021-06-19 15:21:56 -07:00
8dc036c2e4 Upgrades Vagrant box to Debian 10 to fix Docker build error on Debian 9. (#13236) 2021-06-19 13:52:34 +01:00
37fba09021 ST7565 invert (#13237) 2021-06-19 18:51:35 +10:00
0311c8036d Add oled_invert (#13172)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-06-19 01:08:22 +10:00
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
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
67fa2568fe ChibiOS SVN mirror script. (#13070) 2021-06-18 00:04:17 +01:00
658ab47908 Merge remote-tracking branch 'origin/master' into develop 2021-06-17 17:05:15 +00:00
d04f7bc160 Merge remote-tracking branch 'upstream/master' into develop 2021-06-17 17:22:01 +10:00
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
d59f8d1c02 Fix overrun in st7565_write_raw when not at (0, 0) (#13209) 2021-06-15 22:30:27 -07:00
f8d0ea9206 Merge remote-tracking branch 'origin/master' into develop 2021-06-16 05:21:59 +00:00
706c8bebca Merge remote-tracking branch 'origin/master' into develop 2021-06-16 05:21:26 +00:00
25004123ce Merge remote-tracking branch 'origin/master' into develop 2021-06-16 05:19:41 +00:00
d150595f29 Merge remote-tracking branch 'origin/master' into develop 2021-06-16 05:15:23 +00:00
a61c38c7ec Merge remote-tracking branch 'origin/master' into develop 2021-06-16 05:07:37 +00:00
03f7bec6c8 Merge remote-tracking branch 'origin/master' into develop 2021-06-16 04:55:03 +00:00
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
d37900b906 Merge remote-tracking branch 'origin/master' into develop 2021-06-16 04:28:45 +00:00
06971da0be Merge remote-tracking branch 'origin/master' into develop 2021-06-16 04:20:45 +00:00
2d6fe6eed4 Merge remote-tracking branch 'origin/master' into develop 2021-06-16 04:20:30 +00:00
346f4548db Merge remote-tracking branch 'origin/master' into develop 2021-06-16 04:18:48 +00:00
ff61df103e Limit saturation for RGB_MATRIX_JELLYBEAN_RAINDROPS (#12669)
* Set saturation limit to jellybean_raindrops_anim.h

* Use faster bit-shift maths and qadd8

* Remove extra parenthesis

* Single bitmask operation is sufficient.

Co-authored-by: filterpaper <filterpaper@localhost>
2021-06-16 14:04:21 +10:00
a0959f1b33 Add asym_eager_defer_pk debounce type (#12689) 2021-06-16 14:00:37 +10:00
b151153211 Merge remote-tracking branch 'origin/master' into develop 2021-06-16 03:54:19 +00:00
41ba616463 Merge remote-tracking branch 'origin/master' into develop 2021-06-16 03:39:48 +00:00
d82e5055dd Merge remote-tracking branch 'origin/master' into develop 2021-06-16 03:36:03 +00:00
3be3cdafa2 Merge remote-tracking branch 'origin/master' into develop 2021-06-16 03:34:34 +00:00
f5c2f7153d [Keyboard] Moved tokyo60/ into tokyokeyboard/tokyo60/. (#12023)
* Moved tokyo60/ into tokyokeyboard/tokyo60/.

* Updated make instruction, fixed broken image link

* Fixed still broken image link.
2021-06-15 20:21:13 -07:00
640f0fc7c6 Merge remote-tracking branch 'origin/master' into develop 2021-06-15 21:43:53 +00:00
d7ecfa8382 Merge remote-tracking branch 'origin/master' into develop 2021-06-15 03:07:31 +00:00
a2a524afbb Merge remote-tracking branch 'origin/master' into develop 2021-06-14 23:52:31 +00:00
8d0a610f6e Merge remote-tracking branch 'origin/master' into develop 2021-06-14 06:32:22 +00:00
6dc94019e4 Merge remote-tracking branch 'origin/master' into develop 2021-06-14 03:20:48 +00:00
fda4149cc3 Fix LED mapping for GMMK Pro (#13189) 2021-06-14 12:38:20 +10:00
836b8f7d64 Merge remote-tracking branch 'origin/master' into develop 2021-06-14 00:53:06 +00:00
52028ceea1 Merge remote-tracking branch 'origin/master' into develop 2021-06-12 19:15:34 +00:00
f8acb1ee10 Merge remote-tracking branch 'origin/master' into develop 2021-06-12 19:12:28 +00:00
dc17180f84 Merge remote-tracking branch 'origin/master' into develop 2021-06-12 19:10:49 +00:00
421fd75541 Merge remote-tracking branch 'origin/master' into develop 2021-06-12 19:09:03 +00:00
0f226a30be Merge remote-tracking branch 'origin/master' into develop 2021-06-11 10:35:43 +00:00
641141c519 Merge remote-tracking branch 'origin/master' into develop 2021-06-10 21:50:54 +00:00
6fe3943ad3 Migrate keyboards using uGFX to LED_MATRIX (#9657) 2021-06-10 17:46:09 +10:00
b2fdd48744 Add ST7565 LCD driver (#13089)
Co-authored-by: Joakim Tufvegren <jocke@barbanet.com>
2021-06-10 17:16:09 +10:00
cfc7ee61c5 Merge remote-tracking branch 'origin/master' into develop 2021-06-10 06:06:03 +00:00
7a6e630ffd Fix RGB/LED Suspend defines (#13146) 2021-06-09 22:59:19 -07:00
32b2ac0a80 GMMK Pro RGB Support (#13147)
* Enable SPI1 for GMMK pro

* Setup initial boilerplate for new LED driver

* RGB matrix minimally functional

* Map full LED matrix

* Return keymap to default

* Fix printscreen LED mapping

* Reduce max brightness

* Default values for AW20216

* Add documentation for AW20216

* Disable console and warnings

* Run cformat

* Update drivers/awinic/aw20216.h

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

* make aw struct match issi struct

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

* add led location defines

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

* Use led pin definitions in keyboard.c

* Add driver indices to led map

* Fix elif typo

* Run cformat

* Update docs

* Fix typo in docs

* Document global brightness limits

Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-06-10 11:40:25 +10:00
e21a039901 Merge remote-tracking branch 'origin/master' into develop 2021-06-09 17:48:11 +00:00
ca0070d11c Updated encoder_update_user on my keymap to follow the new signature on quantum (#13152) 2021-06-10 03:32:16 +10:00
a47f482d24 Merge remote-tracking branch 'origin/master' into develop 2021-06-09 09:15:29 +00:00
9177e22d2c Merge remote-tracking branch 'origin/master' into develop 2021-06-09 07:25:59 +00:00
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
f287597c19 Use single memcmp to determine if matrix changed. (#13064)
* Use memcmp to determine if matrix changed.

* Firmware size issues.

* Add documentation for the lack of need of MATRIX_ROW_PINS/MATRIX_COL_PINS, when overriding low-level matrix functions.
2021-06-09 17:19:42 +10:00
cbfa2dba25 Merge remote-tracking branch 'origin/master' into develop 2021-06-09 07:19:28 +00:00
d9add95037 Merge remote-tracking branch 'origin/master' into develop 2021-06-08 19:07:33 +00:00
17d0fad762 spi_master Kinetis support (#13098) 2021-06-08 19:54:33 +10:00
13defb0bef Merge remote-tracking branch 'origin/master' into develop 2021-06-08 09:49:23 +00:00
84e691717c Merge remote-tracking branch 'origin/master' into develop 2021-06-07 23:38:33 +00:00
f3fb3849a2 Merge remote-tracking branch 'origin/master' into develop 2021-06-07 23:31:29 +00:00
c508da8a8e Merge remote-tracking branch 'origin/master' into develop 2021-06-07 17:43:48 +00:00
9399865b0d Merge remote-tracking branch 'origin/master' into develop 2021-06-07 17:42:07 +00:00
827e742bd4 Merge remote-tracking branch 'origin/master' into develop 2021-06-07 17:40:30 +00:00
5e3ec2faf0 Merge remote-tracking branch 'origin/master' into develop 2021-06-07 17:39:16 +00:00
2f910e1b2a Merge remote-tracking branch 'origin/master' into develop 2021-06-07 17:37:20 +00:00
f922133d30 Merge remote-tracking branch 'origin/master' into develop 2021-06-07 17:35:21 +00:00
5686a00a9c Merge remote-tracking branch 'origin/master' into develop 2021-06-07 10:47:09 +00:00
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
59862d30d0 Merge remote-tracking branch 'origin/master' into develop 2021-06-07 06:53:52 +00:00
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
2e68897a62 [Keymap] RGB Matrix working for Sofle RGB (#12861)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-06-06 22:30:48 -07:00
49fd3c0760 [Core] ChibiOS fix O3 and LTO breakage of extra keys and joystick (#12819) 2021-06-06 22:16:55 -07:00
415dd21206 Merge remote-tracking branch 'origin/master' into develop 2021-06-07 05:11:07 +00:00
102442a841 Merge remote-tracking branch 'origin/master' into develop 2021-06-07 05:08:50 +00:00
fff115c1a4 Merge remote-tracking branch 'origin/master' into develop 2021-06-07 04:55:22 +00:00
c7277a1420 Merge remote-tracking branch 'origin/master' into develop 2021-06-07 03:38:32 +00:00
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
56ce0e4e33 Merge remote-tracking branch 'origin/master' into develop 2021-06-06 20:14:07 +00:00
a1e575780d Merge remote-tracking branch 'origin/master' into develop 2021-06-05 22:27:07 +00:00
3d3b9807ab Merge remote-tracking branch 'origin/master' into develop 2021-06-05 18:37:16 +00:00
3e1e64ca19 Merge remote-tracking branch 'origin/master' into develop 2021-06-05 18:17:12 +00:00
25fffb7da8 Merge remote-tracking branch 'origin/master' into develop 2021-06-05 15:09:04 +00:00
c38332a5c7 Merge remote-tracking branch 'origin/master' into develop 2021-06-04 03:03:05 +00:00
01cb2867db Merge remote-tracking branch 'origin/master' into develop 2021-06-04 00:30:59 +00:00
17f51fa9df Merge remote-tracking branch 'origin/master' into develop 2021-06-03 18:40:18 +00:00
a6f030fb42 Merge remote-tracking branch 'origin/master' into develop 2021-06-03 15:53:38 +00:00
2344d06475 Merge remote-tracking branch 'origin/master' into develop 2021-06-03 06:27:15 +00:00
eaa2e0cb24 Merge remote-tracking branch 'origin/master' into develop 2021-06-03 06:07:03 +00:00
65fe74fde0 Merge remote-tracking branch 'origin/master' into develop 2021-06-02 23:48:58 +00:00
b8711b9726 Merge remote-tracking branch 'origin/master' into develop 2021-06-02 21:00:26 +00:00
9544b41640 Merge remote-tracking branch 'origin/master' into develop 2021-06-01 08:12:46 +00:00
e5d3e5a989 Add weak refs on reading rows/cols. (#13062) 2021-06-01 15:10:39 +10:00
d64a853b55 Merge remote-tracking branch 'origin/master' into develop 2021-06-01 04:56:53 +00:00
554c36a055 Update ChibiOS, ChibiOS-Contrib. (#13056)
* Update ChibiOS, ChibiOS-Contrib.

* Add instructions.

* Wrong remote name

* Explicit version tag.

* Add link to procedure on the breaking changes page.
2021-06-01 08:11:50 +10:00
5c6c37e3a9 Merge remote-tracking branch 'origin/master' into develop 2021-05-31 04:16:56 +00:00
c22f4aeb8e Merge remote-tracking branch 'origin/master' into develop 2021-05-31 04:04:59 +00:00
234d37ec16 Merge remote-tracking branch 'origin/master' into develop 2021-05-30 21:59:09 +00:00
bc01ee2a6e Merge remote-tracking branch 'origin/master' into develop 2021-05-30 21:58:08 +00:00
aa923b2034 Merge remote-tracking branch 'origin/master' into develop 2021-05-30 21:56:39 +00:00
160f9144c2 Merge remote-tracking branch 'origin/master' into develop 2021-05-30 21:48:16 +00:00
0d74ed3c35 Merge remote-tracking branch 'origin/master' into develop 2021-05-30 15:18:09 +00:00
a72172a8fd Merge remote-tracking branch 'origin/master' into develop 2021-05-29 21:39:21 +00:00
7d1194de01 run: qmk cformat --core-only 2021-05-29 13:53:10 -07:00
e628051505 Restore standard readme 2021-05-29 12:58:42 -07:00
275996f4c1 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

Co-authored-by: Zach White <skullydazed@gmail.com>
2021-05-29 12:30:31 -07:00
3ea3f32dfe Merge remote-tracking branch 'origin/master' into develop 2021-05-29 19:06:14 +00:00
d66090af19 backlight.c: include eeprom.h (#13024) 2021-05-28 09:04:13 -07:00
b963049305 Fix keyboards/keymaps for boolean encoder callback changes (#12985) 2021-05-27 21:30:47 -07:00
5386c4c7b2 [Keyboard] Remove redundant legacy and common headers for crkbd (#13023)
Was causing compiler errors on some systems.

Co-authored-by: filterpaper <filterpaper@localhost>
2021-05-27 21:27:16 -07:00
c1a3060431 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 16:43:10 +00:00
b769b36202 Add dire message about LUFA mass storage bootloader (#13014) 2021-05-27 09:20:47 -07:00
879185a214 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 15:46:56 +00:00
726368ce67 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 05:31:07 +00:00
995c9dff49 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 05:26:24 +00:00
69604e1750 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 05:22:29 +00:00
06aea834c4 Backlight: add defines for default level and breathing state (#12560) 2021-05-26 22:21:15 -07:00
e128d45420 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 05:20:39 +00:00
0717890353 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 05:17:47 +00:00
cd78ab25a9 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 05:14:01 +00:00
beaebdf8eb Merge remote-tracking branch 'origin/master' into develop 2021-05-27 05:12:06 +00:00
a5c2a74b8c Merge remote-tracking branch 'origin/master' into develop 2021-05-27 05:11:33 +00:00
ebaba80287 Document LED_MATRIX_FRAMEBUFFER_EFFECTS (#12987) 2021-05-26 21:22:56 -07:00
15e408a6a5 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 04:21:21 +00:00
1593e78c97 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 04:20:40 +00:00
452a5216e2 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 04:17:34 +00:00
769396839b Merge remote-tracking branch 'origin/master' into develop 2021-05-27 04:07:29 +00:00
17991629c1 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 04:03:42 +00:00
513f5b0655 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 04:02:15 +00:00
b158afee93 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 04:00:46 +00:00
57306fb61c Merge remote-tracking branch 'origin/master' into develop 2021-05-27 03:48:46 +00:00
d9610120de Add Full-duplex serial driver for ARM boards (#9842) 2021-05-26 20:37:54 -07:00
a78964c918 Merge remote-tracking branch 'origin/master' into develop 2021-05-26 18:50:04 +00:00
f461adbd1d [Keymap] Update to Drashna keymap and user code (based on develop) (#12936) 2021-05-25 09:24:01 -07:00
cc815c4d83 Merge remote-tracking branch 'origin/master' into develop 2021-05-25 09:52:37 +00:00
5cecfe8c9b Merge remote-tracking branch 'origin/master' into develop 2021-05-24 23:39:24 -07:00
57158cc3bc [Keyboard] Corne - Remove legacy revision support (#12226) 2021-05-24 23:23:20 -07:00
8e22da67c1 Merge remote-tracking branch 'origin/master' into develop 2021-05-25 02:39:02 +00:00
330fe1d1cc Do not hard set config in CPTC files (#11864) 2021-05-22 19:43:54 -07:00
f5820059e4 Merge remote-tracking branch 'origin/master' into develop 2021-05-22 19:03:28 +00:00
54c368d3aa Merge remote-tracking branch 'origin/master' into develop 2021-05-22 17:19:26 +00:00
8f4767d966 [Keyboard] Fix Terrazzo build failure (#12977) 2021-05-21 23:56:17 -07:00
9ce4bdfd6a Merge remote-tracking branch 'origin/master' into develop 2021-05-22 06:53:54 +00:00
a0fed0ea17 Convert Encoder callbacks to be boolean functions (#12805)
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2021-05-21 23:17:32 -07:00
76c23b15ab Merge remote-tracking branch 'origin/master' into develop 2021-05-22 06:13:13 +00:00
4c1ea0a522 Merge remote-tracking branch 'origin/master' into develop 2021-05-22 06:12:29 +00:00
c01f873978 Merge remote-tracking branch 'origin/master' into develop 2021-05-22 05:43:00 +00:00
924c25e702 Merge remote-tracking branch 'origin/master' into develop 2021-05-22 05:33:55 +00:00
95d2f7c3c5 Merge remote-tracking branch 'origin/master' into develop 2021-05-22 05:30:46 +00:00
3d49563535 Merge remote-tracking branch 'origin/master' into develop 2021-05-22 05:30:09 +00:00
ca570947b0 Merge remote-tracking branch 'origin/master' into develop 2021-05-22 05:29:17 +00:00
31130b9031 Merge remote-tracking branch 'origin/master' into develop 2021-05-22 04:44:51 +00:00
8e96c5a060 Add support for up to 4 IS31FL3733 drivers (#12342)
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2021-05-21 21:42:39 -07:00
81821f0a12 Merge remote-tracking branch 'origin/master' into develop 2021-05-22 04:39:17 +00:00
e1500ce493 Merge remote-tracking branch 'origin/master' into develop 2021-05-22 04:33:46 +00:00
4c0d8ae8d7 ensure we do not conflict with existing keymap aliases (#12976) 2021-05-21 16:59:10 -07:00
de8fada3a3 Merge remote-tracking branch 'origin/master' into develop 2021-05-20 11:47:42 +00:00
aeaa209b9d Merge remote-tracking branch 'origin/master' into develop 2021-05-20 10:04:45 +00:00
6955c5a002 Merge remote-tracking branch 'origin/master' into develop
Resolved Conflicts:
	lib/python/qmk/tests/test_cli_commands.py
	util/install/fedora.sh
2021-05-19 15:49:11 -07:00
82aa9ad4a5 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.
2021-05-20 06:43:36 +10:00
068af97b7a Merge remote-tracking branch 'origin/master' into develop 2021-05-19 19:01:52 +00:00
e756586f41 Merge remote-tracking branch 'origin/master' into develop 2021-05-18 19:26:46 +00:00
58142f0726 Fixup housekeeping from being invoked twice per loop. (#12933) 2021-05-18 17:02:28 +10:00
6cdc996e0b Merge remote-tracking branch 'origin/master' into develop 2021-05-17 23:52:14 +00:00
7e06393407 Merge remote-tracking branch 'origin/master' into develop 2021-05-17 22:54:15 +00:00
b098757a7e Merge remote-tracking branch 'origin/master' into develop 2021-05-17 15:52:41 +00:00
8508fc8b98 Merge remote-tracking branch 'origin/master' into develop 2021-05-17 08:56:10 +00:00
6c7450dad7 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
2021-05-16 20:59:02 -04:00
c14fa1e28f Merge remote-tracking branch 'origin/master' into develop 2021-05-16 22:44:12 +00:00
e6887f4260 Merge remote-tracking branch 'origin/master' into develop 2021-05-16 22:34:45 +00:00
d8e38ef0b1 Merge remote-tracking branch 'origin/master' into develop 2021-05-16 22:34:14 +00:00
39b2b2b010 Merge remote-tracking branch 'origin/master' into develop 2021-05-16 22:31:26 +00:00
fef78c41cd Merge remote-tracking branch 'origin/master' into develop 2021-05-16 22:20:57 +00:00
de5c30a9ba Use milc.subcommand.config instead of qmk.cli.config (#12915)
* Use milc.subcommand.config instead

* pyformat

* remove the config test
2021-05-16 11:06:57 -07:00
8761e973ec Merge remote-tracking branch 'origin/master' into develop 2021-05-16 01:57:14 +00:00
433834fb8b Merge remote-tracking branch 'origin/master' into develop 2021-05-16 00:35:33 +00:00
86422f87c6 Merge remote-tracking branch 'origin/master' into develop 2021-05-16 00:29:33 +00:00
388c151de7 Merge remote-tracking branch 'origin/master' into develop 2021-05-16 00:19:04 +00:00
396abb0244 Merge remote-tracking branch 'origin/master' into develop 2021-05-16 00:15:19 +00:00
7599cd4e50 Merge remote-tracking branch 'origin/master' into develop 2021-05-16 00:14:49 +00:00
de2294413f Merge remote-tracking branch 'origin/master' into develop 2021-05-16 00:09:46 +00:00
4e32465f06 Merge remote-tracking branch 'origin/master' into develop 2021-05-16 00:08:53 +00:00
08ec7618a1 Merge remote-tracking branch 'origin/master' into develop 2021-05-16 00:05:11 +00:00
2bc35205a7 Merge remote-tracking branch 'origin/master' into develop 2021-05-15 23:52:01 +00:00
14c0f4e44b Merge remote-tracking branch 'origin/master' into develop 2021-05-15 18:52:47 +00:00
d6b707403e Merge remote-tracking branch 'upstream/master' into develop 2021-05-15 13:43:46 +10:00
1dca3a8e3a Merge remote-tracking branch 'origin/master' into develop 2021-05-14 22:44:36 +00:00
75da5e9742 [Keymap] Fix QWERTY/DVORAK status output for kzar keymap (#12895) 2021-05-14 08:30:21 -07:00
36a2297deb Merge remote-tracking branch 'origin/master' into develop 2021-05-14 04:10:46 +00:00
16014fe31c Merge remote-tracking branch 'origin/master' into develop 2021-05-14 03:54:43 +00:00
188bcf7636 Merge remote-tracking branch 'origin/master' into develop 2021-05-14 03:21:19 +00:00
4a5f575ef4 Merge remote-tracking branch 'origin/master' into develop 2021-05-14 03:12:06 +00:00
8bf7a1452d Merge remote-tracking branch 'origin/master' into develop 2021-05-14 03:10:57 +00:00
2fcf761f33 Merge remote-tracking branch 'origin/master' into develop 2021-05-14 02:48:33 +00:00
70bbcdf084 Merge remote-tracking branch 'origin/master' into develop 2021-05-14 02:46:09 +00:00
178fbdac16 Merge remote-tracking branch 'origin/master' into develop 2021-05-14 02:40:36 +00:00
5f9906eccc Merge remote-tracking branch 'origin/master' into develop 2021-05-14 02:34:21 +00:00
16c4590396 Merge remote-tracking branch 'origin/master' into develop 2021-05-14 02:22:22 +00:00
8d85171f16 Merge remote-tracking branch 'origin/master' into develop 2021-05-14 02:21:08 +00:00
eeb8ba4e62 Merge remote-tracking branch 'origin/master' into develop 2021-05-14 02:00:53 +00:00
19810f4a8b Merge remote-tracking branch 'origin/master' into develop 2021-05-13 18:08:17 +00:00
c48ce4c259 Merge remote-tracking branch 'origin/master' into develop 2021-05-13 17:54:55 +00:00
75ffb4b7e2 Merge remote-tracking branch 'origin/master' into develop 2021-05-13 17:52:38 +00:00
929d06a65f Merge remote-tracking branch 'origin/master' into develop 2021-05-13 17:46:41 +00:00
cbdc3fb81b Fix spelling mistake regarding LED Matrix in split_common. (#12888) 2021-05-14 03:37:24 +10:00
04ab5de73c Deprecate send_unicode_hex_string() (#12602) 2021-05-14 03:25:40 +10:00
cae9eb4d8d Merge remote-tracking branch 'origin/master' into develop 2021-05-13 17:23:24 +00:00
f70dc8435a Merge remote-tracking branch 'origin/master' into develop 2021-05-13 17:22:42 +00:00
673c12fa3b Merge remote-tracking branch 'origin/master' into develop 2021-05-13 17:20:16 +00:00
008d8a740e Merge remote-tracking branch 'origin/master' into develop 2021-05-13 17:13:20 +00:00
b4039ec515 Merge remote-tracking branch 'origin/master' into develop 2021-05-13 16:36:43 +00:00
f8f0ca458d Merge remote-tracking branch 'origin/master' into develop 2021-05-13 16:29:39 +00:00
40907fa98a Merge remote-tracking branch 'origin/master' into develop 2021-05-13 06:53:27 +00:00
89a3ef7699 Merge remote-tracking branch 'origin/master' into develop 2021-05-13 05:38:06 +00:00
1dd6adffbe Merge remote-tracking branch 'origin/master' into develop 2021-05-13 04:15:42 +00:00
7078d5a5bd LED Matrix: Documentation (#12685) 2021-05-13 12:57:57 +10:00
dbfe2d7e9e Merge remote-tracking branch 'origin/master' into develop 2021-05-13 02:36:23 +00:00
c24d29ef54 Merge remote-tracking branch 'origin/master' into develop 2021-05-13 02:30:14 +00:00
2d29ce5de1 Merge remote-tracking branch 'origin/master' into develop 2021-05-13 01:54:43 +00:00
54a8b5af01 Merge remote-tracking branch 'origin/master' into develop 2021-05-13 01:32:21 +00:00
bc9cd3e997 Merge remote-tracking branch 'origin/master' into develop 2021-05-13 01:27:46 +00:00
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
d200e3de8e [Keyboard] updated a vendor name / fixed minor keymap issues (#12881) 2021-05-12 17:19:48 -07:00
49bc835aa9 Merge remote-tracking branch 'origin/master' into develop 2021-05-13 00:18:40 +00:00
536df7c240 Merge remote-tracking branch 'origin/master' into develop 2021-05-13 00:02:42 +00:00
9c80db1fdc Merge remote-tracking branch 'origin/master' into develop 2021-05-12 23:25:56 +00:00
53075ccc5d Merge remote-tracking branch 'origin/master' into develop 2021-05-12 23:25:03 +00:00
92fbadeb1b Rename point_t -> led_point_t (#12864) 2021-05-13 09:17:18 +10:00
07800e82c9 Merge remote-tracking branch 'origin/master' into develop 2021-05-12 16:50:09 +00:00
6da60d4a5d Add setup, clone, and env to the list of commands we allow even with broken modules (#12868) 2021-05-12 09:40:58 -07:00
3a1ce81d29 Merge remote-tracking branch 'origin/master' into develop 2021-05-12 00:52:47 +00:00
4bb00c6a0a Merge remote-tracking branch 'origin/master' into develop 2021-05-11 18:43:25 +00:00
38d8d5445e Remove KEYMAP and LAYOUT_kc (#12160)
* alias KEYMAP to LAYOUT

* remove KEYMAP and LAYOUT_kc
2021-05-11 10:10:31 -07:00
d84cbc3cec Fix syntax error when compiling for ARM (#12866) 2021-05-11 08:17:28 -07:00
3edc43964d LED Matrix: Effects! (#12651) 2021-05-11 13:41:06 +10:00
f41fc6b70c Fixup build errors on develop branch. (#12723) 2021-05-11 11:01:58 +10:00
0432bde962 Merge remote-tracking branch 'origin/master' into develop 2021-05-11 00:33:02 +00:00
17586ea7c4 Merge remote-tracking branch 'origin/master' into develop 2021-05-10 22:43:41 +00:00
069cfb61b8 [Keymap] Turn OLED off on suspend in soundmonster keymap (#10419) 2021-05-10 15:40:18 -07:00
6bb9113e27 Merge remote-tracking branch 'origin/master' into develop 2021-05-10 22:38:06 +00:00
0e7c66e891 Merge remote-tracking branch 'origin/master' into develop
Conflicts:
	bin/qmk
	lib/python/qmk/cli/__init__.py

Merge conflicts fixed by skullydazed.
2021-05-10 12:16:04 -07:00
911b45ce3b Merge remote-tracking branch 'origin/master' into develop 2021-05-10 18:19:15 +00:00
cfc6e4bfac Merge remote-tracking branch 'origin/master' into develop 2021-05-10 17:37:36 +00:00
ffe81cbec1 Fix another bin/qmk reference (#12856) 2021-05-10 09:21:13 -07:00
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
40d1506527 Merge remote-tracking branch 'origin/master' into develop 2021-05-09 20:40:22 +00:00
2549b4b082 Merge remote-tracking branch 'origin/master' into develop 2021-05-09 19:16:57 +00:00
201dc6d024 Merge remote-tracking branch 'origin/master' into develop 2021-05-09 18:30:52 +00:00
2f367bab98 Merge remote-tracking branch 'origin/master' into develop 2021-05-09 17:20:16 +00:00
ad1244e2cf Merge remote-tracking branch 'origin/master' into develop 2021-05-09 17:15:32 +00:00
62c3e3d11f Remove pointless SERIAL_LINK_ENABLE rules (#12846) 2021-05-10 02:53:21 +10:00
12292ba264 Merge remote-tracking branch 'origin/master' into develop 2021-05-09 15:07:13 +00:00
bfb052db1d Merge remote-tracking branch 'origin/master' into develop 2021-05-09 13:53:46 +00:00
a0c95cb07e Merge remote-tracking branch 'origin/master' into develop 2021-05-09 10:58:43 +00:00
7a25dcacff 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

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

* pyformat

* clean up and flesh out KNOWN_BOOTLOADERS

Co-authored-by: zvecr <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-05-08 20:56:07 -07:00
d0a3bca9ec Merge remote-tracking branch 'origin/master' into develop 2021-05-09 03:46:23 +00:00
0e6359bce9 Merge remote-tracking branch 'origin/master' into develop 2021-05-09 03:00:40 +00:00
767089384f Resolve a number of warnings in qmk generate-api (#12833) 2021-05-08 12:44:05 -07:00
3e9f809988 fix some references to bin/qmk that slipped in (#12832) 2021-05-08 12:25:04 -07:00
a871444743 Merge remote-tracking branch 'origin/master' into develop 2021-05-08 17:27:30 +00:00
fd5da75bdd Merge remote-tracking branch 'origin/master' into develop 2021-05-08 16:35:59 +00:00
fca7cc1747 Added OLED fade out support (#12086) 2021-05-08 12:27:13 +02:00
992b146bc4 Merge remote-tracking branch 'origin/master' into develop 2021-05-07 17:22:41 +00:00
5d7b026ce2 Merge remote-tracking branch 'origin/master' into develop 2021-05-07 09:52:46 +00:00
8c2db395c4 Merge remote-tracking branch 'origin/master' into develop 2021-05-06 21:08:29 +00:00
c820a5732c Merge remote-tracking branch 'origin/master' into develop 2021-05-06 18:17:55 +00:00
447bd64013 Merge remote-tracking branch 'origin/master' into develop 2021-05-06 16:16:51 +00:00
45f710f3ff Merge remote-tracking branch 'origin/master' into develop 2021-05-05 23:27:27 +00:00
15f4ab6a3f Merge remote-tracking branch 'origin/master' into develop 2021-05-04 19:39:11 +00:00
65ee9d1b09 Merge remote-tracking branch 'origin/master' into develop 2021-05-04 08:40:56 +00:00
084d0ae96e Merge remote-tracking branch 'origin/master' into develop 2021-05-04 00:32:09 +00:00
5d27c772fd Fix comment parsing (#12750)
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2021-05-03 19:09:53 +02:00
0ec438289d Merge remote-tracking branch 'origin/master' into develop 2021-05-02 15:59:41 +00:00
79e86adfb6 Merge remote-tracking branch 'origin/master' into develop 2021-05-02 15:44:16 +00:00
f5b6bef4b3 [CI] Format code according to conventions (#12772)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-05-02 05:15:50 +10:00
3c2e69af79 Fixing transport's led/rgb matrix suspend state logic (#12770) 2021-05-01 12:14:17 -07:00
e9b0e9286e Merge remote-tracking branch 'origin/master' into develop 2021-05-01 01:00:34 +00:00
876352a030 Merge remote-tracking branch 'origin/master' into develop 2021-04-30 20:24:18 +00:00
109b462789 Merge remote-tracking branch 'origin/master' into develop 2021-04-30 17:46:15 +00:00
fc29068986 Merge remote-tracking branch 'origin/master' into develop 2021-04-29 18:26:09 +00:00
c05fef752e Merge remote-tracking branch 'origin/master' into develop 2021-04-29 16:55:32 +00:00
9d5cd52284 Merge remote-tracking branch 'origin/master' into develop 2021-04-29 16:49:03 +00:00
b481f554a0 Merge remote-tracking branch 'origin/master' into develop 2021-04-29 10:39:51 +00:00
39bc8163d0 [CI] Format code according to conventions (#12731)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-29 13:36:47 +10:00
d8167779cd Change RGB/LED Matrix to use a simple define for USB suspend (#12697) 2021-04-29 12:39:54 +10:00
7409f03cbf Merge remote-tracking branch 'origin/master' into develop 2021-04-28 10:46:45 +00:00
0a8e37509b Fix bad PR merge for #6580. (#12721) 2021-04-28 11:42:53 +01:00
cd6168ee64 Merge remote-tracking branch 'origin/master' into develop 2021-04-28 01:39:39 +00:00
d89d341541 Merge remote-tracking branch 'origin/master' into develop 2021-04-27 20:55:11 +00:00
e95c76aaed Merge remote-tracking branch 'origin/master' into develop 2021-04-27 19:37:23 +00:00
eea33df1f9 Merge remote-tracking branch 'origin/master' into develop 2021-04-27 18:37:47 +00:00
3e43a7f044 Merge remote-tracking branch 'origin/master' into develop 2021-04-27 17:42:03 +00:00
f30637ee11 Merge remote-tracking branch 'origin/master' into develop 2021-04-27 17:24:11 +00:00
86ab4fcb71 Merge remote-tracking branch 'origin/master' into develop 2021-04-27 06:45:17 +00:00
a8c0954db5 Merge remote-tracking branch 'origin/master' into develop 2021-04-26 19:18:51 +00:00
171f3e840b Merge remote-tracking branch 'origin/master' into develop 2021-04-26 17:24:58 +00:00
JTM
54c1548247 Updated Function96 with V2 files and removed chconf.h and halconf.h (#12613)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: JuanTapMan <68515848+JuanTapMan@users.noreply.github.com>
2021-04-26 10:38:13 +02:00
9cf82fae95 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

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

* Include L443 in compatible microcontrollers

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

* Update config bootloader jump description

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

* Update ChibiOS define reasoning

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

* Update quantum/mcu_selection.mk

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

* fix git conflict

Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-04-26 13:07:15 +10:00
5168af9a9b Merge remote-tracking branch 'origin/master' into develop 2021-04-26 02:52:29 +00:00
61a1915cce Merge remote-tracking branch 'origin/master' into develop 2021-04-25 20:46:54 +00:00
03db48af75 Format code according to conventions (#12687)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-25 19:01:49 +10:00
8c12fa2e59 Format code according to conventions (#12682)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-25 19:00:22 +10:00
3f7350732c Add support for MCU = STM32F446 (#12619)
* Add support for MCU = STM32F446

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

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

* 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.

Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-04-25 18:59:25 +10:00
5b1c3e360a Merge remote-tracking branch 'origin/master' into develop 2021-04-25 08:57:56 +00:00
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
23e70fa857 Merge remote-tracking branch 'origin/master' into develop 2021-04-25 04:03:14 +00:00
ee26e3df60 Merge remote-tracking branch 'origin/master' into develop 2021-04-25 04:00:00 +00:00
ab6d07b585 Merge remote-tracking branch 'origin/master' into develop 2021-04-25 03:42:04 +00:00
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
2a61a500de Merge remote-tracking branch 'origin/master' into develop 2021-04-25 03:16:16 +00:00
64a9cf18e1 Merge remote-tracking branch 'origin/master' into develop 2021-04-25 03:12:09 +00:00
19b3aa3a12 Merge remote-tracking branch 'origin/master' into develop 2021-04-25 01:48:16 +00:00
7718b1598e Merge remote-tracking branch 'origin/master' into develop 2021-04-25 01:16:24 +00:00
65c9752762 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
2021-04-25 11:15:37 +10:00
f12aea5dfb Merge remote-tracking branch 'origin/master' into develop 2021-04-25 01:14:55 +00:00
7845cf1fac Merge remote-tracking branch 'origin/master' into develop 2021-04-25 01:05:05 +00:00
33a5468a60 Merge remote-tracking branch 'origin/master' into develop 2021-04-25 01:02:27 +00:00
34b63cecb1 Merge remote-tracking branch 'origin/master' into develop 2021-04-25 01:01:19 +00:00
7748a093cb Merge remote-tracking branch 'origin/master' into develop 2021-04-25 01:00:39 +00:00
d8f113bf98 Format code according to conventions (#12680)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-25 10:34:38 +10:00
26b9b3aa23 feat: infinite timeout for leader key (#6580)
* feat: implement leader_no_timeout logic

* docs(leader_key): infinite leader timeout docs
2021-04-25 10:22:47 +10:00
8f5cc8d762 Merge remote-tracking branch 'origin/master' into develop 2021-04-22 21:16:12 +00:00
6be87836dc Merge remote-tracking branch 'origin/master' into develop 2021-04-22 17:14:44 +00:00
417803d7ae Merge remote-tracking branch 'origin/master' into develop 2021-04-22 14:58:49 +00:00
15ff1927db [CI] Format code according to conventions (#12650)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-22 19:26:17 +10:00
d6ab908272 LED Matrix: Split (#12633) 2021-04-22 19:21:13 +10:00
5d458c6c8a Merge remote-tracking branch 'origin/master' into develop 2021-04-21 23:51:07 +00:00
fbc5a6c24b Merge remote-tracking branch 'origin/master' into develop 2021-04-20 19:02:29 +00:00
15872bde61 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 18:13:34 +00:00
b09d068bf6 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 17:52:32 +00:00
f7f8f97e6a Merge remote-tracking branch 'origin/master' into develop 2021-04-20 17:50:40 +00:00
2927af43e1 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 17:48:10 +00:00
7795e167ab Merge remote-tracking branch 'origin/master' into develop 2021-04-20 17:46:58 +00:00
b68ed9ebea Merge remote-tracking branch 'origin/master' into develop 2021-04-20 17:25:10 +00:00
ed59337239 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 17:23:34 +00:00
120b15458c Merge remote-tracking branch 'origin/master' into develop 2021-04-20 17:23:01 +00:00
19887f2d35 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 17:22:13 +00:00
a9e6dc3629 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 17:18:12 +00:00
c922fc2cf3 [Keyboard] kint2pp: reduce input latency by ≈10ms (#12625) 2021-04-20 10:08:29 -07:00
3d32cbb0dc [Keyboard] kint36: switch to sym_eager_pk debouncing (#12626) 2021-04-20 10:08:01 -07:00
8da2c48650 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 16:59:38 +00:00
5aa3fd5ac7 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 16:57:07 +00:00
6620b6c515 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 16:32:55 +00:00
e31f210b59 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 16:24:28 +00:00
39e80a3f5c Merge remote-tracking branch 'origin/master' into develop 2021-04-20 16:15:59 +00:00
bc66d71dae Merge remote-tracking branch 'origin/master' into develop 2021-04-20 16:12:25 +00:00
427bff8504 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 15:18:18 +00:00
cb19c0906e LED Matrix: Reactive effect buffers & advanced indicators (#12588) 2021-04-20 17:38:44 +10:00
b1f48da5ee Merge remote-tracking branch 'origin/master' into develop 2021-04-20 04:13:18 +00:00
c02137a0d2 Add Per Key functionality for AutoShift (#11536)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-19 20:34:14 -07:00
49efd6abb0 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 02:40:47 +00:00
663664e48f Merge remote-tracking branch 'origin/master' into develop 2021-04-19 18:04:50 +00:00
c3d1456615 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 16:40:51 +00:00
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
230f09ca17 [CI] Format code according to conventions (#12623)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-19 20:19:16 +10:00
d562b4fdc5 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 10:15:56 +00:00
46318f36ac Merge remote-tracking branch 'origin/master' into develop 2021-04-19 09:23:28 +00:00
97e7defaae Merge remote-tracking branch 'origin/master' into develop 2021-04-19 09:22:54 +00:00
56fff80e71 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 09:21:56 +00:00
42808238c1 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 09:20:46 +00:00
34df6743f6 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 08:21:39 +00:00
2c0b3649fb Merge remote-tracking branch 'origin/master' into develop 2021-04-19 07:32:45 +00:00
0235fc7ab2 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 06:43:21 +00:00
180a32ec59 Enhancement of WPM feature (#11727) 2021-04-18 23:26:37 -07:00
f65a5d2fb5 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 06:18:08 +00:00
6e5fd1a210 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 06:13:00 +00:00
a66947b7d6 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 06:12:34 +00:00
86ece8e98e Merge remote-tracking branch 'origin/master' into develop 2021-04-19 06:04:50 +00:00
5632c5db31 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 06:00:42 +00:00
ca9da27e16 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 05:44:51 +00:00
54521bd04b Merge remote-tracking branch 'origin/master' into develop 2021-04-19 05:31:08 +00:00
2e7fd319a1 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 05:25:03 +00:00
21997e8894 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 05:05:55 +00:00
ea29874099 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 04:54:01 +00:00
ca11abc201 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 04:02:42 +00:00
8ecdc66700 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 03:54:31 +00:00
9484c46555 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 03:45:01 +00:00
c2d7ebc3df Merge remote-tracking branch 'origin/master' into develop 2021-04-19 03:37:16 +00:00
7728b0f966 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 03:08:31 +00:00
0a9e18fae1 Merge remote-tracking branch 'origin/master' into develop 2021-04-18 22:40:16 +00:00
924b9fcf05 Merge remote-tracking branch 'origin/master' into develop 2021-04-18 22:23:25 +00:00
884f8658ef Merge remote-tracking branch 'origin/master' into develop 2021-04-18 22:14:59 +00:00
99ce84827a Merge remote-tracking branch 'origin/master' into develop 2021-04-18 15:52:15 +00:00
7f809c013a Merge remote-tracking branch 'origin/master' into develop 2021-04-17 15:47:13 +00:00
40365f8297 Merge remote-tracking branch 'origin/master' into develop 2021-04-16 14:26:52 +00:00
1ac030b119 Merge remote-tracking branch 'origin/master' into develop 2021-04-16 14:24:18 +00:00
e2289ffac0 Add missing RGB_MODE_TWINKLE / RGB_M_TW keycodes (#11935)
* Add missing RGB_MODE_TWINKLE / RGB_M_TW keycodes

* Better comment

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-15 19:32:17 -04:00
1629c9b71a Merge remote-tracking branch 'origin/master' into develop 2021-04-15 17:20:12 +00:00
42a57b37fb Merge remote-tracking branch 'origin/master' into develop 2021-04-15 17:05:00 +00:00
be1b5c5a54 Merge remote-tracking branch 'origin/master' into develop 2021-04-15 17:01:54 +00:00
53eb35b6cf LED Matrix: Task system (#12580) 2021-04-15 12:08:52 +10:00
2c0aa27e6c Merge remote-tracking branch 'origin/master' into develop 2021-04-15 02:00:59 +00:00
19b143688f Merge remote-tracking branch 'origin/master' into develop 2021-04-14 21:51:45 +00:00
3c08d27abb Merge remote-tracking branch 'origin/master' into develop 2021-04-14 20:39:01 +00:00
98dd9b6614 Merge remote-tracking branch 'origin/master' into develop 2021-04-14 03:09:16 +00:00
4ed273699a Merge remote-tracking branch 'origin/master' into develop 2021-04-14 01:32:38 +00:00
333cd4ec9b [CI] Format code according to conventions (#12570)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-13 19:58:34 +10:00
30f38c4952 Merge remote-tracking branch 'origin/master' into develop 2021-04-13 09:52:45 +00:00
a28fbcda23 Terrazzo: Fix wrong LED Matrix function names (#12561) 2021-04-13 19:51:31 +10:00
ce99f98bb5 LED Matrix: suspend code (#12509) 2021-04-13 19:51:03 +10:00
15f7cc3bde [Keymap] Add kzar keymap for Kinesis Advantage (#12444) 2021-04-13 11:39:39 +02:00
a8d64c8b89 Change BOOTMAGIC_ENABLE=yes to use Bootmagic Lite (#12172) 2021-04-12 21:18:52 +02:00
f5aaecfdfc Merge remote-tracking branch 'origin/master' into develop 2021-04-12 18:41:12 +00:00
ebdf750cdd Merge remote-tracking branch 'origin/master' into develop 2021-04-12 17:56:32 +00:00
79bdfc1110 Merge remote-tracking branch 'origin/master' into develop 2021-04-11 10:51:12 +00:00
90875997ac Merge remote-tracking branch 'origin/master' into develop 2021-04-11 10:49:39 +00:00
f02af23973 Merge remote-tracking branch 'origin/master' into develop 2021-04-11 10:47:14 +00:00
c9d7a4af45 Merge remote-tracking branch 'origin/master' into develop 2021-04-11 10:45:56 +00:00
34323ecd8b Merge remote-tracking branch 'origin/master' into develop 2021-04-10 16:34:58 +00:00
d5a8431af4 Merge remote-tracking branch 'origin/master' into develop 2021-04-10 15:04:12 +00:00
2e2dd3113b Merge remote-tracking branch 'origin/master' into develop 2021-04-10 13:23:47 +00:00
11e5bb2d8a Merge remote-tracking branch 'origin/master' into develop 2021-04-10 05:58:04 +00:00
29d537ce7b Merge remote-tracking branch 'origin/master' into develop 2021-04-10 00:38:17 +00:00
688fb1999b Merge remote-tracking branch 'origin/master' into develop 2021-04-09 21:36:55 +00:00
bcfa3fb9f2 Merge remote-tracking branch 'origin/master' into develop 2021-04-09 21:32:31 +00:00
58afb87288 Merge remote-tracking branch 'origin/master' into develop 2021-04-09 19:05:51 +00:00
0a453194e8 Merge remote-tracking branch 'origin/master' into develop 2021-04-09 18:49:03 +00:00
3190c2f98d Merge remote-tracking branch 'origin/master' into develop 2021-04-09 02:42:00 +00:00
d4b3d00d88 Merge remote-tracking branch 'origin/master' into develop 2021-04-08 16:48:07 +00:00
15674d0259 Merge remote-tracking branch 'origin/master' into develop 2021-04-08 04:16:47 +00:00
52e8875eba Merge remote-tracking branch 'origin/master' into develop 2021-04-07 13:58:12 +00:00
40c314fe5c LED Matrix: Implement CIE1931 curve (#12417) 2021-04-07 20:06:11 +10:00
69bc465ace Merge remote-tracking branch 'origin/master' into develop 2021-04-07 10:04:21 +00:00
96acb499d2 Fix up builds that are now too big for develop branch. (#12495) 2021-04-06 16:39:31 +10:00
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
3ce8c9fc8f Merge remote-tracking branch 'origin/master' into develop 2021-04-04 09:10:07 +00:00
8428cedc83 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 19:43:05 +00:00
9bedc6300d Merge remote-tracking branch 'origin/master' into develop 2021-04-03 16:29:37 +00:00
cc4066189a Merge remote-tracking branch 'origin/master' into develop 2021-04-03 16:16:12 +00:00
733c861052 Format code according to conventions (#12467)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-03 08:35:26 -07:00
dd7f18f65f Merge remote-tracking branch 'origin/master' into develop 2021-04-03 15:29:28 +00:00
e90ec6a474 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 13:51:51 +00:00
638cc50727 Merge remote-tracking branch 'upstream/master' into develop 2021-04-03 20:15:54 +11:00
1444ebb7f1 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 06:20:42 +00:00
028a0dcd3d Merge remote-tracking branch 'origin/master' into develop 2021-04-03 05:12:49 +00:00
655927ab15 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 05:06:28 +00:00
051e23c782 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 04:45:06 +00:00
887d0fca0e Merge remote-tracking branch 'origin/master' into develop 2021-04-03 04:21:01 +00:00
358b040157 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 04:18:44 +00:00
184c553cab Merge remote-tracking branch 'origin/master' into develop 2021-04-03 03:59:15 +00:00
fc8495a744 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 03:57:51 +00:00
428e9e7886 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 03:48:53 +00:00
d475f04c78 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 03:44:40 +00:00
39e1b5b962 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 02:04:56 +00:00
c375ae3ec7 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 02:03:00 +00:00
f561b857f2 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 00:52:10 +00:00
8880e89bcd Big quantum_keycodes cleanup (#12249) 2021-04-02 17:45:56 -07:00
4c981953ac Merge remote-tracking branch 'origin/master' into develop 2021-04-03 00:26:01 +00:00
41723340de Merge remote-tracking branch 'origin/master' into develop 2021-04-02 21:45:17 +00:00
56560a859b Merge remote-tracking branch 'origin/master' into develop 2021-04-02 21:26:07 +00:00
65fab0ef5b Merge remote-tracking branch 'origin/master' into develop 2021-04-02 21:24:42 +00:00
6e531d0ccc Merge remote-tracking branch 'origin/master' into develop 2021-04-02 10:45:01 +00:00
c1ea97e15d Merge remote-tracking branch 'origin/master' into develop 2021-04-01 01:59:03 +00:00
da51302345 Merge remote-tracking branch 'origin/master' into develop 2021-03-31 13:09:34 +00:00
9d3b11d485 add kinesis/kint36 (#10171)
This moves the config_common.h into the files that include ../config.h,
so that the kint36/config.h does not include it (which would cause
compilation errors).
2021-03-31 10:41:41 +11:00
a8889718aa Merge remote-tracking branch 'origin/master' into develop 2021-03-30 23:17:00 +00:00
1704eb16cd Merge remote-tracking branch 'origin/master' into develop 2021-03-30 22:34:06 +00:00
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
c738d60cef Merge remote-tracking branch 'origin/master' into develop 2021-03-29 03:46:52 +00:00
2ae38e9c43 LED Matrix: Config functions (#12361) 2021-03-28 17:59:44 +11:00
0d1162f180 Merge remote-tracking branch 'origin/master' into develop 2021-03-27 15:56:21 +00:00
ea472b46c9 Merge remote-tracking branch 'origin/master' into develop 2021-03-27 08:04:42 +00:00
76f8e84edd Merge remote-tracking branch 'origin/master' into develop 2021-03-26 17:58:46 +00:00
3d957a33fa Merge remote-tracking branch 'origin/master' into develop 2021-03-26 12:37:54 +00:00
0eb36b5e9a Merge remote-tracking branch 'origin/master' into develop 2021-03-26 02:22:03 +00:00
67252c246c Format code according to conventions (#12381)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-03-25 23:44:37 +11:00
b05565f368 Fix connection issue in split keyboards when slave and OLED display are connected via I2C, fix #9335 (#11487)
* In split keyboards fix connection issue when slave and OLED are connected via I2C. Fix #9335

* Revert "In split keyboards fix connection issue when slave and OLED are connected via I2C. Fix #9335"

This reverts commit 3ee639e1f3.

* In split keyboards fix connection issue when slave and OLED are connected via I2C. Fix #9335

* Update drivers/oled/oled_driver.c

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

Co-authored-by: osenchenko <osechenko@chiefmate.io>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-03-25 23:42:25 +11:00
e2b652d95f Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:41:48 +00:00
56dee4acc6 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:40:23 +00:00
d0d77e8c60 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:39:14 +00:00
3143846ba4 keyboards/xd60/readme.md: link to schematic on EasyEDA (#12018) 2021-03-25 23:38:54 +11:00
25f1a3d759 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:20:42 +00:00
5a0be4c6d8 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:14:17 +00:00
2df1b124a7 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:11:36 +00:00
f2729e8974 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:08:38 +00:00
aa85b5ee1e Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:05:42 +00:00
fd24546787 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:04:35 +00:00
9294c5aa0a Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:03:24 +00:00
712c9fc848 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:02:24 +00:00
96a6214316 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:01:35 +00:00
d2b405066d Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:55:36 +00:00
ea1ed13bc8 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:53:33 +00:00
6ad0b004fa Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:52:32 +00:00
c3483458fe Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:51:33 +00:00
ba5aacbb95 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:50:49 +00:00
a2165b38a0 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:49:40 +00:00
e86b7d0c13 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:47:36 +00:00
5bc5921af4 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:46:26 +00:00
76db2bb39b Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:44:56 +00:00
a3760c0891 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:39:24 +00:00
a747ef966b Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:38:44 +00:00
87f6df0655 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:36:57 +00:00
25b7a5d531 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:36:29 +00:00
c7436e667d Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:35:49 +00:00
183dde75de Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:35:06 +00:00
8086837f69 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:34:28 +00:00
ff41c22fdc Adding keyboard level weak function for slave matrix scan (#12317) 2021-03-25 22:33:18 +11:00
2f6236d1ea Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:31:17 +00:00
921f1ba4cf Merge remote-tracking branch 'origin/master' into develop 2021-03-25 07:06:41 +00:00
1bb04ea598 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 05:29:33 +00:00
600fc8be2b Merge remote-tracking branch 'origin/master' into develop 2021-03-25 03:34:00 +00:00
c823160d94 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 01:33:46 +00:00
d6b18ebfe7 Merge remote-tracking branch 'origin/master' into develop 2021-03-24 19:47:14 +00:00
b515651feb Merge remote-tracking branch 'origin/master' into develop 2021-03-24 19:39:16 +00:00
0dc0516f0c Merge remote-tracking branch 'origin/master' into develop 2021-03-24 16:27:28 +00:00
743d6c430b Merge remote-tracking branch 'origin/master' into develop 2021-03-24 10:13:37 +00:00
87aa3282f0 Merge remote-tracking branch 'origin/master' into develop 2021-03-24 09:07:46 +00:00
bbc48b0ef5 Merge remote-tracking branch 'origin/master' into develop 2021-03-24 04:25:05 +00:00
bd18405cf0 LED Matrix: Fix up eeconfig code (#12327) 2021-03-24 13:09:56 +11:00
dd5a732eac Merge remote-tracking branch 'origin/master' into develop 2021-03-24 02:04:16 +00:00
862b01d4c0 Merge remote-tracking branch 'origin/master' into develop 2021-03-24 02:00:40 +00:00
9afbbf21fd Merge remote-tracking branch 'origin/master' into develop 2021-03-23 18:19:00 +00:00
b2cfb629e4 Merge remote-tracking branch 'origin/master' into develop 2021-03-23 15:11:57 +00:00
34423580e0 Merge remote-tracking branch 'origin/master' into develop 2021-03-23 07:01:25 +00:00
e6d83644e8 Merge remote-tracking branch 'origin/master' into develop 2021-03-23 01:59:02 +00:00
fe58770df8 Merge remote-tracking branch 'origin/master' into develop 2021-03-21 02:43:41 +00:00
00a0c81f8e Durgod keyboard refactor in preparation for adding additional durgod keyboards (#11978)
* Durgod keyboard refactor in preparation for adding additional durgod keyboards

* Moving Durgod board configuration into a common location
* Reformatting layout macro whitespace
* Moving TGUI key functionality to the keyboard level
* Replacing default keymap.c with keymap.json
* Changing default and default_toggle_mac_windows keymaps to LAYOUT_all
* Increasing EEPROM size to support more VIA layers
* Fixing media keys; KC_MRWD/KC_MFFD => KC_MPRV/KC_NXT

* Move ISO Enter key to the correct row in Durgod K320

* Minor whitespace and readme cleanup for K320

* Changing durgod/k320 debounce back to default

* Simplifying DURGOD_STM32_F070's chconf.h

Co-authored-by: Simon Arlott <sa.me.uk>
Co-authored-by: Tyler Tidman <tyler.tidman@draak.ca>
2021-03-21 11:11:22 +11:00
945b7a0613 Merge remote-tracking branch 'origin/master' into develop 2021-03-20 03:53:28 +00:00
ed28795651 LED Matrix: Additional common_features.mk tweaks (#12187) 2021-03-20 14:52:33 +11:00
9d547a8443 Merge remote-tracking branch 'origin/master' into develop 2021-03-20 00:13:10 +00:00
c2dc3008b5 Merge remote-tracking branch 'origin/master' into develop 2021-03-19 19:37:22 +00:00
32f0567ca5 Format code according to conventions (#12292)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-03-19 16:24:36 +00:00
6f7466b6dd ARM WS2812 SPI config (baudrate and circular buffer) (#12216)
* initial commit

* include circular buffer command

* add endif

* circular buffer mode

* remove untrue comment

* revamp and add documentation

* do not allow WS2812_SPI_SYNC & CIRCULAR_BUFFER
2021-03-19 19:29:18 +11:00
f2715a0593 Consistently use bin/qmk when that script is called (#12286)
* Pass QMK_BIN down to build_keyboard.mk

* choose the correct qmk script
2021-03-18 16:10:40 -07:00
90b1e271a8 Merge remote-tracking branch 'origin/master' into develop 2021-03-18 17:25:01 +00:00
d97a9fb4ff Merge remote-tracking branch 'origin/master' into develop 2021-03-18 14:26:24 +00:00
6d050b7282 Merge remote-tracking branch 'origin/master' into develop 2021-03-18 13:17:59 +00:00
74c89de3e9 Merge remote-tracking branch 'origin/master' into develop 2021-03-18 03:38:43 +00:00
af5c10ef0c Merge remote-tracking branch 'origin/master' into develop 2021-03-18 01:29:25 +00:00
4aa57e9e46 Merge remote-tracking branch 'origin/master' into develop 2021-03-18 00:48:52 +00:00
d0c2f3c403 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 22:33:49 +00:00
31b657e8ea Merge remote-tracking branch 'origin/master' into develop 2021-03-17 17:08:39 +00:00
3367705ac2 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 17:02:38 +00:00
6671344602 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 16:44:59 +00:00
60837c9d0f [Keyboard] Split RGB Matrix Zygomorph support (#11083) 2021-03-16 23:56:39 -07:00
d4ac56226d Merge remote-tracking branch 'origin/master' into develop 2021-03-17 06:50:58 +00:00
29589ce832 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 06:48:33 +00:00
5e7a7c7e2f Merge remote-tracking branch 'origin/master' into develop 2021-03-17 06:47:59 +00:00
71b38e0cee Merge remote-tracking branch 'origin/master' into develop 2021-03-17 06:32:31 +00:00
8c00003466 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 06:23:19 +00:00
33852d14af Merge remote-tracking branch 'origin/master' into develop 2021-03-17 06:18:20 +00:00
6bc4528776 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 06:01:16 +00:00
b4b3be4f05 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 04:58:19 +00:00
6817771df7 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 04:57:18 +00:00
ed8ffa4bb4 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 03:10:20 +00:00
3c92142f12 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 03:06:02 +00:00
c680c84a31 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 02:50:20 +00:00
da752e5d7d Merge remote-tracking branch 'origin/master' into develop 2021-03-17 02:44:50 +00:00
cefa23e4eb Merge remote-tracking branch 'origin/master' into develop 2021-03-17 02:24:08 +00:00
07ea935533 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 01:39:42 +00:00
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
319031154d Merge remote-tracking branch 'origin/master' into develop 2021-03-16 07:01:35 +00:00
2defbde5ab Merge remote-tracking branch 'origin/master' into develop 2021-03-15 23:10:08 +00:00
c12eae0c5e Merge remote-tracking branch 'origin/master' into develop 2021-03-15 23:03:53 +00:00
56d193c5c8 Merge remote-tracking branch 'origin/master' into develop 2021-03-15 17:42:47 +00:00
c3a2a7659e Merge remote-tracking branch 'origin/master' into develop 2021-03-15 08:25:35 +00:00
8b9419aaf7 Merge remote-tracking branch 'origin/master' into develop 2021-03-15 08:07:38 +00:00
2f59e1c1d9 Merge remote-tracking branch 'origin/master' into develop 2021-03-15 01:21:48 +00:00
998c58e89b Merge remote-tracking branch 'origin/master' into develop 2021-03-15 01:19:36 +00:00
35db567c9c Merge remote-tracking branch 'origin/master' into develop 2021-03-14 21:51:52 +00:00
93929e8d01 Merge remote-tracking branch 'origin/master' into develop 2021-03-14 20:19:39 +00:00
75867ff164 Merge remote-tracking branch 'origin/master' into develop 2021-03-14 20:17:43 +00:00
78be537eff Merge remote-tracking branch 'origin/master' into develop 2021-03-14 19:56:33 +00:00
d036ebeaf6 Merge remote-tracking branch 'origin/master' into develop 2021-03-14 19:24:07 +00:00
f236395176 LED Matrix: Clean up includes (#12197) 2021-03-13 11:38:26 +11:00
5590c40b5b Merge remote-tracking branch 'origin/master' into develop 2021-03-13 00:38:14 +00:00
71bb07d10a Merge remote-tracking branch 'origin/master' into develop 2021-03-12 22:38:13 +00:00
e83f4e0173 Merge remote-tracking branch 'origin/master' into develop 2021-03-12 21:58:40 +00:00
0ee473afd1 Merge remote-tracking branch 'origin/master' into develop 2021-03-12 21:50:57 +00:00
f279f4731b Merge remote-tracking branch 'origin/master' into develop 2021-03-12 21:48:20 +00:00
d95df57297 Merge remote-tracking branch 'origin/master' into develop 2021-03-12 07:44:20 +00:00
71f8f5048b Merge remote-tracking branch 'origin/master' into develop 2021-03-12 07:04:21 +00:00
183c49f352 Merge remote-tracking branch 'origin/master' into develop 2021-03-12 06:34:50 +00:00
97268662fe Merge remote-tracking branch 'origin/master' into develop 2021-03-11 18:02:34 +00:00
b113772bb1 Merge remote-tracking branch 'origin/master' into develop 2021-03-10 22:48:53 +00:00
40c7ecfdea Move gpio wait logic to wait.h (#12067) 2021-03-10 22:47:36 +00:00
2e24cfadb7 Remove FUNC() (#12161) 2021-03-11 05:21:28 +11:00
bb01ea3809 Merge remote-tracking branch 'origin/master' into develop 2021-03-10 05:18:14 +00:00
25ec655162 Merge remote-tracking branch 'origin/master' into develop 2021-03-09 21:37:12 +00:00
4496983233 Merge remote-tracking branch 'origin/master' into develop 2021-03-09 18:37:19 +00:00
7b91af780a Merge remote-tracking branch 'origin/master' into develop 2021-03-09 16:07:25 +00:00
9155b59e1a LED Matrix: decouple from Backlight (#12054) 2021-03-08 16:55:00 +11:00
b0069c5c05 Begin the process of deprecating bin/qmk in favor of the global cli (#12109)
* Begin the process of deprecating bin/qmk in favor of the global cli

* Correctly set the qmk bin
2021-03-07 19:10:03 -08:00
7d45b7f269 Merge remote-tracking branch 'origin/master' into develop 2021-03-07 23:34:13 +00:00
43b47495e3 Merge remote-tracking branch 'origin/master' into develop 2021-03-07 20:20:33 +00:00
b15288fb87 trivial change to trigger api update 2021-03-07 12:01:13 -08:00
e6e572bf5c Merge remote-tracking branch 'origin/master' into develop 2021-03-07 16:15:38 +00:00
37d1fa53e0 Merge remote-tracking branch 'origin/master' into develop 2021-03-07 06:40:08 +00:00
f48d95b415 Merge remote-tracking branch 'origin/master' into develop 2021-03-07 05:26:50 +00:00
5fb16e3442 Merge remote-tracking branch 'origin/master' into develop 2021-03-07 05:22:57 +00:00
d170a1c0e2 Merge remote-tracking branch 'origin/master' into develop 2021-03-07 05:18:28 +00:00
fbd6b28633 Merge remote-tracking branch 'origin/master' into develop 2021-03-06 23:57:11 +00:00
56d5131715 Merge remote-tracking branch 'origin/master' into develop 2021-03-06 23:13:57 +00:00
bee226b3ee Merge remote-tracking branch 'origin/master' into develop 2021-03-06 21:04:21 +00:00
6e19dbc923 Merge remote-tracking branch 'origin/master' into develop 2021-03-06 18:57:16 +00:00
cde4165097 Merge remote-tracking branch 'origin/master' into develop 2021-03-06 08:50:30 +00:00
c375a8d75b Merge remote-tracking branch 'origin/master' into develop 2021-03-06 06:45:23 +00:00
b7f2f40ae5 Set default OLED Update Interval for Split Keyboards (#12107)
Because the matrix scanning is slower for splits, in general,
the frequent updating of the OLEDs can slow down the matrix scanning.
To help prevent that, set the update interval for the OLEDs to not
update as frequently.
2021-03-05 16:26:57 -08:00
6e938f1f24 Merge remote-tracking branch 'origin/master' into develop 2021-03-05 22:23:19 +00:00
e1ce619bf7 Merge remote-tracking branch 'origin/master' into develop 2021-03-05 20:26:58 +00:00
3acb3a09fc Merge remote-tracking branch 'origin/master' into develop 2021-03-05 18:43:45 +00:00
7ca9604422 Merge remote-tracking branch 'origin/master' into develop 2021-03-05 18:30:41 +00:00
ebfd555ad1 Merge remote-tracking branch 'origin/master' into develop 2021-03-05 18:26:10 +00:00
f8f2cf7500 Merge remote-tracking branch 'origin/master' into develop 2021-03-05 18:04:50 +00:00
cc6cd394e5 Merge remote-tracking branch 'origin/master' into develop 2021-03-05 05:16:14 +00:00
7e051e0619 Merge remote-tracking branch 'origin/master' into develop 2021-03-05 04:25:54 +00:00
a71fb6057d Merge remote-tracking branch 'origin/master' into develop 2021-03-04 23:04:36 +00:00
474cffbc0f Merge remote-tracking branch 'origin/master' into develop 2021-03-04 23:00:06 +00:00
4fcc709f4e Merge remote-tracking branch 'origin/master' into develop 2021-03-04 19:08:37 +00:00
01c5ee6f7d Merge remote-tracking branch 'origin/master' into develop 2021-03-04 18:16:03 +00:00
8f54152fab Merge remote-tracking branch 'origin/master' into develop 2021-03-04 15:20:45 +00:00
54f6ff3bd5 Merge remote-tracking branch 'origin/master' into develop 2021-03-04 04:10:10 +00:00
d3092ced99 Merge remote-tracking branch 'origin/master' into develop 2021-03-04 01:02:37 +00:00
6c3af2670e Fixup line endings. 2021-03-04 10:35:02 +11:00
6a4960889e Merge remote-tracking branch 'origin/master' into develop 2021-03-03 21:33:06 +00:00
064265166c Merge remote-tracking branch 'origin/master' into develop 2021-03-03 21:32:18 +00:00
9f6ce448bd Merge remote-tracking branch 'origin/master' into develop 2021-03-03 21:15:31 +00:00
c26344fc93 Merge remote-tracking branch 'origin/master' into develop 2021-03-03 20:38:58 +00:00
4235160dcf Merge remote-tracking branch 'origin/master' into develop 2021-03-03 20:37:52 +00:00
73120947cf Merge remote-tracking branch 'origin/master' into develop 2021-03-03 20:28:54 +00:00
5762bc4a5f Merge remote-tracking branch 'origin/master' into develop 2021-03-03 18:52:36 +00:00
41933efbf0 [Keyboard] Enable RGB Matrix for Corne (#12091) 2021-03-03 10:38:21 -08:00
18a333ec6b Add support for complementary outputs to the WS2812 PWM driver (#11988) 2021-03-02 20:26:06 -08:00
8f5d2e546e Merge remote-tracking branch 'origin/master' into develop 2021-03-03 04:07:13 +00:00
4132dd87a4 Merge remote-tracking branch 'origin/master' into develop 2021-03-03 02:59:37 +00:00
d950b97115 Format code according to conventions (#12088)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-03-03 07:54:11 +11:00
cde2859a65 Split RGB Matrix (#11055)
* Split RGB Matrix

* Suspend State sync for rgb matrix
2021-03-03 07:32:15 +11:00
967d7c47dc Merge remote-tracking branch 'origin/master' into develop 2021-03-02 14:33:32 +00:00
4c04c848b5 Merge remote-tracking branch 'origin/master' into develop 2021-03-02 14:32:29 +00:00
27d2fb88ca Merge remote-tracking branch 'origin/master' into develop 2021-03-02 05:29:53 +00:00
de585e3109 Merge remote-tracking branch 'origin/master' into develop 2021-03-02 04:34:43 +00:00
e662de94f6 Merge remote-tracking branch 'origin/master' into develop 2021-03-02 03:10:19 +00:00
4fedf6efbd Merge remote-tracking branch 'origin/master' into develop 2021-03-02 01:18:42 +00:00
1beb6b686a Merge remote-tracking branch 'origin/master' into develop 2021-03-01 19:57:19 +00:00
50290c78b6 Format code according to conventions (#12076)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-03-01 18:08:18 +00:00
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
86f6f68274 Merge remote-tracking branch 'origin/master' into develop 2021-03-01 05:04:27 +00:00
93a1d4f156 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 21:25:41 +00:00
80e8e20a89 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 20:19:42 +00:00
0efafdd408 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 20:12:15 +00:00
3718f5149a Merge remote-tracking branch 'origin/master' into develop 2021-02-28 16:16:16 +00:00
3b8ca5f343 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 16:01:51 +00:00
b2f5bd7c60 Format code according to conventions (#12056)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-02-28 15:53:54 +00:00
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
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
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
02dc3b6722 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:16:09 +00:00
0f084751b4 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:13:59 +00:00
d57b44153e Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:13:24 +00:00
fcf1ec132f Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:12:24 +00:00
4a31d0a9c9 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:11:35 +00:00
656c39909a Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:10:56 +00:00
70bdf25284 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:10:13 +00:00
15af423d86 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:08:29 +00:00
8428dee47e Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:07:06 +00:00
cf8097138e Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:05:14 +00:00
c4c3e774cd Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:04:19 +00:00
a19363ab25 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:03:04 +00:00
b6a39f61e5 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:02:30 +00:00
13d44a2281 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:57:31 +00:00
fad596a159 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:51:25 +00:00
55d85b89c0 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:50:33 +00:00
43bd843f37 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:44:26 +00:00
85dd0556d7 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:42:46 +00:00
e86e7c351d Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:39:17 +00:00
c2f446f40e Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:38:43 +00:00
d9d03d5af8 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:36:34 +00:00
b64fd093ad Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:32:12 +00:00
bd4b7f8b25 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:30:56 +00:00
93d3cf52ab Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:04:17 +00:00
33c7d6eb93 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:00:12 +00:00
9525d5b5ae Merge remote-tracking branch 'origin/master' into develop 2021-02-28 04:54:08 +00:00
00cb9029f5 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 04:48:45 +00:00
72abf86870 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 00:17:42 +00:00
605fd0eda8 Merge remote-tracking branch 'origin/master' into develop 2021-02-27 23:26:10 +00:00
4db695f932 Merge remote-tracking branch 'origin/master' into develop 2021-02-27 22:36:14 +00:00
89936c66b0 Merge remote-tracking branch 'origin/master' into develop 2021-02-27 22:34:01 +00:00
37690f2651 Merge remote-tracking branch 'origin/master' into develop 2021-02-27 22:21:12 +00:00
6ae72f3980 Merge remote-tracking branch 'origin/master' into develop 2021-02-27 22:08:25 +00:00
06071dc76d Merge remote-tracking branch 'origin/master' into develop 2021-02-27 22:02:34 +00:00
c7a7982e23 Branch point for 2021 May 29 Breaking Change 2021-02-27 12:54:23 -08:00
1015 changed files with 15229 additions and 31244 deletions

87
.gitignore vendored
View File

@ -1,33 +1,36 @@
# Junk files
*.bak
*.swp
*~
.DS_Store
# Build artifacts
.clang_complete
.build/
.history/
.dep
*.o
*.bin
*.eep
*.elf
*.hex
*.uf2
*.qmk
!util/bootloader.hex
!quantum/tools/eeprom_reset.hex
*.log
*.lss
*.lst
*.map
*.o
*.stackdump
*.sym
# QMK-specific
*.swp
tags
*~
api_data/v1
doxygen/
build/
.build/
*.bak
.vagrant/
quantum/version.h
!quantum/tools/eeprom_reset.hex
*.bin
*.eep
*.hex
*.qmk
*.uf2
# Old-style QMK Makefiles
.idea/
CMakeLists.txt
cmake-build-debug
.clang_complete
doxygen/
.DS_Store
/util/wsl_downloaded
/util/win_downloaded
/keyboards/*/Makefile
/keyboards/*/*/Makefile
/keyboards/*/*/*/Makefile
@ -40,49 +43,39 @@ quantum/version.h
/keyboards/*/*/*/*/*/keymaps/Makefile
# Eclipse/PyCharm/Other IDE Settings
*.iml
.browse.VC.db*
.cproject
.idea
.idea/
.project
.settings/
.vagrant/
# ?
.dep
.history/
build/
cmake-build-debug
CMakeLists.txt
.idea
*.iml
.browse.VC.db*
*.stackdump
# Let these ones be user specific, since we have so many different configurations
*.code-workspace
.stfolder
.tags
.vscode/c_cpp_properties.json
.vscode/ipch/
.vscode/last.sql
.vscode/launch.json
.vscode/tasks.json
.vscode/last.sql
.vscode/temp.sql
tags
.vscode/ipch/
.stfolder
.tags
# Ignore image files
# ignore image files
*.png
*.gif
*.jpg
*.png
# Things Travis sees
/.vs
id_rsa_*
# things travis sees
secrets.tar
id_rsa_*
/.vs
# Python things
# python things
__pycache__
.python-version
# Prerequisites for updating ChibiOS
# prerequisites for updating ChibiOS
/util/fmpp*
# Allow to exist but don't include it in the repo

View File

@ -23,8 +23,5 @@
"editor.trimAutoWhitespace": false,
"files.trimTrailingWhitespace": false
},
"python.formatting.provider": "yapf",
"[json]": {
"editor.formatOnSave": false
}
"python.formatting.provider": "yapf"
}

2
Vagrantfile vendored
View File

@ -6,7 +6,7 @@ Vagrant.configure(2) do |config|
config.vm.define "qmk_firmware"
# VMware/Virtualbox ( and also Hyperv/Parallels) 64 bit
config.vm.box = "generic/debian9"
config.vm.box = "generic/debian10"
config.vm.synced_folder '.', '/vagrant'

View File

@ -1,22 +1,22 @@
# Look for a json keymap file
ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.json)","")
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_C := $(KEYMAP_OUTPUT)/keymap.c
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_5)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.json)","")
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_C := $(KEYMAP_OUTPUT)/keymap.c
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_4)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.json)","")
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_C := $(KEYMAP_OUTPUT)/keymap.c
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_3)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.json)","")
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_C := $(KEYMAP_OUTPUT)/keymap.c
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_2)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.json)","")
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_C := $(KEYMAP_OUTPUT)/keymap.c
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_1)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
endif
@ -27,5 +27,5 @@ ifneq ("$(wildcard $(KEYMAP_PATH))", "")
endif
# Generate the keymap.c
$(KEYBOARD_OUTPUT)/src/keymap.c: $(KEYMAP_JSON)
$(KEYMAP_C): $(KEYMAP_JSON)
$(QMK_BIN) json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON)

View File

@ -103,6 +103,15 @@ MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/rules.mk)
include $(INFO_RULES_MK)
ifneq ($(FORCE_LAYOUT),)
TARGET := $(TARGET)_$(FORCE_LAYOUT)
endif
# Object files and generated keymap directory
# To put object files in current directory, use a dot (.), do NOT make
# this an empty or blank macro!
KEYMAP_OUTPUT := $(BUILD_DIR)/obj_$(TARGET)
# Check for keymap.json first, so we can regenerate keymap.c
include build_json.mk
@ -145,10 +154,6 @@ ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes)
include platforms/chibios/QMK_PROTON_C/convert_to_proton_c.mk
endif
ifneq ($(FORCE_LAYOUT),)
TARGET := $(TARGET)_$(FORCE_LAYOUT)
endif
include quantum/mcu_selection.mk
# Find all the C source files to be compiled in subfolders.
@ -327,11 +332,6 @@ endif
# Disable features that a keyboard doesn't support
-include disable_features.mk
# Object files directory
# To put object files in current directory, use a dot (.), do NOT make
# this an empty or blank macro!
KEYMAP_OUTPUT := $(BUILD_DIR)/obj_$(TARGET)
ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","")
CONFIG_H += $(KEYMAP_PATH)/config.h
endif

View File

@ -49,6 +49,7 @@ endif
include common_features.mk
include $(TMK_PATH)/common.mk
include $(QUANTUM_PATH)/debounce/tests/rules.mk
include $(QUANTUM_PATH)/sequencer/tests/rules.mk
include $(QUANTUM_PATH)/serial_link/tests/rules.mk
ifneq ($(filter $(FULL_TESTS),$(TEST)),)

View File

@ -244,7 +244,7 @@ endif
endif
RGB_MATRIX_ENABLE ?= no
VALID_RGB_MATRIX_TYPES := IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 WS2812 custom
VALID_RGB_MATRIX_TYPES := AW20216 IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 WS2812 custom
ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),)
@ -261,6 +261,13 @@ endif
CIE1931_CURVE := yes
RGB_KEYCODES_ENABLE := yes
ifeq ($(strip $(RGB_MATRIX_DRIVER)), AW20216)
OPT_DEFS += -DAW20216 -DSTM32_SPI -DHAL_USE_SPI=TRUE
COMMON_VPATH += $(DRIVER_PATH)/awinic
SRC += aw20216.c
QUANTUM_LIB_SRC += spi_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3731)
OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/issi
@ -529,7 +536,11 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
# Determine which (if any) transport files are required
ifneq ($(strip $(SPLIT_TRANSPORT)), custom)
QUANTUM_LIB_SRC += $(QUANTUM_DIR)/split_common/transport.c
QUANTUM_SRC += $(QUANTUM_DIR)/split_common/transport.c \
$(QUANTUM_DIR)/split_common/transactions.c
OPT_DEFS += -DSPLIT_COMMON_TRANSACTIONS
# Functions added via QUANTUM_LIB_SRC are only included in the final binary if they're called.
# Unused functions are pruned away, which is why we can add multiple drivers here without bloat.
ifeq ($(PLATFORM),AVR)
@ -550,6 +561,11 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
COMMON_VPATH += $(QUANTUM_PATH)/split_common
endif
ifeq ($(strip $(CRC_ENABLE)), yes)
OPT_DEFS += -DCRC_ENABLE
QUANTUM_LIB_SRC += crc.c
endif
HAPTIC_ENABLE ?= no
ifneq ($(strip $(HAPTIC_ENABLE)),no)
COMMON_VPATH += $(DRIVER_PATH)/haptic
@ -580,6 +596,14 @@ ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes)
SRC += oled_driver.c
endif
ifeq ($(strip $(ST7565_ENABLE)), yes)
OPT_DEFS += -DST7565_ENABLE
COMMON_VPATH += $(DRIVER_PATH)/oled # For glcdfont.h
COMMON_VPATH += $(DRIVER_PATH)/lcd
QUANTUM_LIB_SRC += spi_master.c
SRC += st7565.c
endif
include $(DRIVER_PATH)/qwiic/qwiic.mk
ifeq ($(strip $(UCIS_ENABLE)), yes)

View File

@ -1,34 +1,22 @@
{
"$id": "qmk.api.keyboard.v1",
"allOf": [
{ "$ref": "qmk.keyboard.v1" },
{"$ref": "qmk.keyboard.v1"},
{
"$id": "qmk.api.keyboard.v1",
"keymaps": {
"type": "string"
},
"parse_errors": {
"type": "array",
"items": {
"type": "string"
}
},
"parse_warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"processor_type": {
"type": "string"
},
"protocol": {
"type": "string"
},
"keyboard_folder": {
"type": "string"
},
"platform": {
"type": "string"
"properties": {
"keymaps": {
"type": "object",
"properties": {
"url": {"type": "string"}
}
},
"parse_errors": {"$ref": "qmk.definitions.v1#/string_array"},
"parse_warnings": {"$ref": "qmk.definitions.v1#/string_array"},
"processor_type": {"type": "string"},
"protocol": {"type": "string"},
"keyboard_folder": {"type": "string"},
"platform": {"type": "string"}
}
}
]

View File

@ -0,0 +1,107 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "qmk.definitions.v1",
"title": "Common definitions used across QMK's jsonschemas.",
"type": "object",
"boolean_array": {
"type": "object",
"additionalProperties": {"type": "boolean"}
},
"filename": {
"type": "string",
"minLength": 1,
"pattern": "^[0-9a-z_]*$"
},
"hex_number_2d": {
"type": "string",
"pattern": "^0x[0-9A-F]{2}$"
},
"hex_number_4d": {
"type": "string",
"pattern": "^0x[0-9A-F]{4}$"
},
"text_identifier": {
"type": "string",
"minLength": 1,
"maxLength": 250
},
"layout_macro": {
"oneOf": [
{
"type": "string",
"enum": ["LAYOUT", "LAYOUT_planck_1x2uC"]
},
{
"type": "string",
"pattern": "^LAYOUT_[0-9a-z_]*$"
}
]
},
"key_unit": {
"type": "number",
"min": 0.25
},
"mcu_pin_array": {
"type": "array",
"items": {"$ref": "#/mcu_pin"}
},
"mcu_pin": {
"oneOf": [
{
"type": "string",
"pattern": "^[A-K]\\d{1,2}$"
},
{
"type": "string",
"pattern": "^LINE_PIN\\d{1,2}$"
},
{
"type": "number",
"multipleOf": 1
},
{
"type": "null"
}
]
},
"signed_decimal": {
"type": "number"
},
"signed_int": {
"type": "number",
"multipleOf": 1
}
"signed_int_8": {
"type": "number",
"min": -127,
"max": 127,
"multipleOf": 1
}
"string_array": {
"type": "array",
"items": {
"type": "string"
}
},
"string_object": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"unsigned_decimal": {
"type": "number",
"min": 0
},
"unsigned_int": {
"type": "number",
"min": 0,
"multipleOf": 1
}
"unsigned_int_8": {
"type": "number",
"min": 0,
"max": 255,
"multipleOf": 1
}
}

File diff suppressed because it is too large Load Diff

View File

@ -93,6 +93,7 @@
* Hardware Features
* Displays
* [HD44780 LCD Controller](feature_hd44780.md)
* [ST7565 LCD Driver](feature_st7565.md)
* [OLED Driver](feature_oled_driver.md)
* Lighting
* [Backlight](feature_backlight.md)

View File

@ -100,3 +100,7 @@ This happens immediately after the previous `develop` branch is merged.
* [ ] `git pull --ff-only`
* [ ] `git merge --no-ff develop`
* [ ] `git push upstream master`
## Post-merge operations
* (Optional) [update ChibiOS + ChibiOS-Contrib on `develop`](chibios_upgrade_instructions.md)

View File

@ -0,0 +1,56 @@
# ChibiOS Upgrade Procedure
ChibiOS and ChibiOS-Contrib need to be updated in tandem -- the latter has a branch tied to the ChibiOS version in use and should not be mixed with different versions.
## Getting ChibiOS
* `svn` Initialisation:
* Only needed to be done once
* You might need to separately install `git-svn` package in your OS's package manager
* `git svn init --stdlayout --prefix='svn/' http://svn.osdn.net/svnroot/chibios/`
* `git remote add qmk git@github.com:qmk/ChibiOS.git`
* Updating:
* `git svn fetch`
* First time around this will take several hours
* Subsequent updates will be incremental only
* Tagging example (work out which version first!):
* `git tag -a ver20.3.3 -m ver20.3.3 svn/tags/ver20.3.3`
* `git push qmk ver20.3.3`
* `git tag -a breaking_YYYY_qN -m breaking_YYYY_qN svn/tags/ver20.3.3`
* `git push qmk breaking_YYYY_qN`
## Getting ChibiOS-Contrib
* `git` Initialisation:
* `git clone git@github.com:qmk/ChibiOS-Contrib`
* `git remote add upstream https://github.com/ChibiOS/ChibiOS-Contrib`
* `git checkout -b chibios-20.3.x upstream/chibios-20.3.x`
* Updating:
* `git fetch --all --tags --prune`
* `git checkout chibios-20.3.x`
* `git pull --ff-only`
* `git push origin chibios-20.3.x`
* `git tag -a breaking_YYYY_qN -m breaking_YYYY_qN chibios-20.3.x`
* `git push origin breaking_YYYY_qN`
## Updating submodules
* Update the submodules
* `cd $QMK_FIRMWARE`
* `git checkout develop`
* `git pull --ff-only`
* `git checkout -b chibios-version-bump`
* `cd lib/chibios`
* `git fetch --all --tags --prune`
* `git checkout breaking_YYYY_qN`
* `cd ../chibios-contrib`
* `git fetch --all --tags --prune`
* `git checkout breaking_YYYY_qN`
* Build everything
* `cd $QMK_FIRMWARE`
* `qmk multibuild -j4`
* Make sure there are no errors
* Push to the repo
* `git commit -am 'Update ChibiOS to XXXXXXXXX'`
* `git push --set-upstream origin chibios-version-bump`
* Make a PR to qmk_firmware with the new branch

View File

@ -51,8 +51,10 @@ This is a C header file that is one of the first things included, and will persi
* the number of columns in your keyboard's matrix
* `#define MATRIX_ROW_PINS { D0, D5, B5, B6 }`
* pins of the rows, from top to bottom
* may be omitted by the keyboard designer if matrix reads are handled in an alternate manner. See [low-level matrix overrides](custom_quantum_functions.md?id=low-level-matrix-overrides) for more information.
* `#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }`
* pins of the columns, from left to right
* may be omitted by the keyboard designer if matrix reads are handled in an alternate manner. See [low-level matrix overrides](custom_quantum_functions.md?id=low-level-matrix-overrides) for more information.
* `#define MATRIX_IO_DELAY 30`
* the delay in microseconds when between changing matrix pin state and reading values
* `#define UNUSED_PINS { D1, D2, D3, B1, B2, B3 }`
@ -272,7 +274,7 @@ There are a few different ways to set handedness for split keyboards (listed in
### Other Options
* `#define USE_I2C`
* For using I2C instead of Serial (defaults to serial)
* For using I2C instead of Serial (default is serial; serial transport is supported on ARM -- I2C is AVR-only)
* `#define SOFT_SERIAL_PIN D0`
* When using serial, define this. `D0` or `D1`,`D2`,`D3`,`E6`.
@ -280,6 +282,7 @@ There are a few different ways to set handedness for split keyboards (listed in
* `#define MATRIX_ROW_PINS_RIGHT { <row pins> }`
* `#define MATRIX_COL_PINS_RIGHT { <col pins> }`
* If you want to specify a different pinout for the right half than the left half, you can define `MATRIX_ROW_PINS_RIGHT`/`MATRIX_COL_PINS_RIGHT`. Currently, the size of `MATRIX_ROW_PINS` must be the same as `MATRIX_ROW_PINS_RIGHT` and likewise for the definition of columns.
* may be omitted by the keyboard designer if matrix reads are handled in an alternate manner. See [low-level matrix overrides](custom_quantum_functions.md?id=low-level-matrix-overrides) for more information.
* `#define DIRECT_PINS_RIGHT { { F1, F0, B0, C7 }, { F4, F5, F6, F7 } }`
* If you want to specify a different direct pinout for the right half than the left half, you can define `DIRECT_PINS_RIGHT`. Currently, the size of `DIRECT_PINS` must be the same as `DIRECT_PINS_RIGHT`.
@ -300,7 +303,7 @@ There are a few different ways to set handedness for split keyboards (listed in
* `#define SPLIT_USB_DETECT`
* Detect (with timeout) USB connection when delegating master/slave
* Default behavior for ARM
* Required for AVR Teensy
* Required for AVR Teensy (without hardware mods)
* `#define SPLIT_USB_TIMEOUT 2000`
* Maximum timeout when detecting master/slave when using `SPLIT_USB_DETECT`
@ -308,6 +311,28 @@ There are a few different ways to set handedness for split keyboards (listed in
* `#define SPLIT_USB_TIMEOUT_POLL 10`
* Poll frequency when detecting master/slave when using `SPLIT_USB_DETECT`
* `#define FORCED_SYNC_THROTTLE_MS 100`
* Deadline for synchronizing data from master to slave when using the QMK-provided split transport.
* `#define SPLIT_TRANSPORT_MIRROR`
* Mirrors the master-side matrix on the slave when using the QMK-provided split transport.
* `#define SPLIT_LAYER_STATE_ENABLE`
* Ensures the current layer state is available on the slave when using the QMK-provided split transport.
* `#define SPLIT_LED_STATE_ENABLE`
* Ensures the current host indicator state (caps/num/scroll) is available on the slave when using the QMK-provided split transport.
* `#define SPLIT_MODS_ENABLE`
* Ensures the current modifier state (normal, weak, and oneshot) is available on the slave when using the QMK-provided split transport.
* `#define SPLIT_WPM_ENABLE`
* Ensures the current WPM is available on the slave when using the QMK-provided split transport.
* `#define SPLIT_TRANSACTION_IDS_KB .....`
* `#define SPLIT_TRANSACTION_IDS_USER .....`
* Allows for custom data sync with the slave when using the QMK-provided split transport. See [custom data sync between sides](feature_split_keyboard.md#custom-data-sync) for more information.
# The `rules.mk` File
This is a [make](https://www.gnu.org/software/make/manual/make.html) file that is included by the top-level `Makefile`. It is used to set some information about the MCU that we will be compiling for as well as enabling and disabling certain features.

View File

@ -144,6 +144,14 @@ This is useful for setting up stuff that you may need elsewhere, but isn't hardw
* Keyboard/Revision: `void matrix_init_kb(void)`
* Keymap: `void matrix_init_user(void)`
### Low-level Matrix Overrides Function Documentation :id=low-level-matrix-overrides
* GPIO pin initialisation: `void matrix_init_pins(void)`
* This needs to perform the low-level initialisation of all row and column pins. By default this will initialise the input/output state of each of the GPIO pins listed in `MATRIX_ROW_PINS` and `MATRIX_COL_PINS`, based on whether or not the keyboard is set up for `ROW2COL`, `COL2ROW`, or `DIRECT_PINS`. Should the keyboard designer override this function, no initialisation of pin state will occur within QMK itself, instead deferring to the keyboard's override.
* `COL2ROW`-based row reads: `void matrix_read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col)`
* `ROW2COL`-based column reads: `void matrix_read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)`
* `DIRECT_PINS`-based reads: `void matrix_read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)`
* These three functions need to perform the low-level retrieval of matrix state of relevant input pins, based on the matrix type. Only one of the functions should be implemented, if needed. By default this will iterate through `MATRIX_ROW_PINS` and `MATRIX_COL_PINS`, configuring the inputs and outputs based on whether or not the keyboard is set up for `ROW2COL`, `COL2ROW`, or `DIRECT_PINS`. Should the keyboard designer override this function, no manipulation of matrix GPIO pin state will occur within QMK itself, instead deferring to the keyboard's override.
## Keyboard Post Initialization code

View File

@ -2,27 +2,24 @@
These allow you to combine a modifier with a keycode. When pressed, the keydown event for the modifier, then `kc` will be sent. On release, the keyup event for `kc`, then the modifier will be sent.
|Key |Aliases |Description |
|----------|----------------------------------|------------------------------------------------------|
|`LCTL(kc)`|`C(kc)` |Hold Left Control and press `kc` |
|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` |
|`LALT(kc)`|`A(kc)`, `LOPT(kc)` |Hold Left Alt and press `kc` |
|`LGUI(kc)`|`G(kc)`, `LCMD(kc)`, `LWIN(kc)` |Hold Left GUI and press `kc` |
|`RCTL(kc)`| |Hold Right Control and press `kc` |
|`RSFT(kc)`| |Hold Right Shift and press `kc` |
|`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt and press `kc` |
|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)` |Hold Right GUI and press `kc` |
|`LSG(kc)` |`SGUI(kc)`, `SCMD(kc)`, `SWIN(kc)`|Hold Left Shift and GUI and press `kc` |
|`LAG(kc)` | |Hold Left Alt and Left GUI and press `kc` |
|`RSG(kc)` | |Hold Right Shift and Right GUI and press `kc` |
|`RAG(kc)` | |Hold Right Alt and Right GUI and press `kc` |
|`LCA(kc)` | |Hold Left Control and Alt and press `kc` |
|`LSA(kc)` | |Hold Left Shift and Left Alt and press `kc` |
|`RSA(kc)` |`SAGR(kc)` |Hold Right Shift and Right Alt (AltGr) and press `kc` |
|`RCS(kc)` | |Hold Right Control and Right Shift and press `kc` |
|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` |
|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` |
|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc` |
|Key |Aliases |Description |
|----------|-------------------------------|------------------------------------------------------|
|`LCTL(kc)`|`C(kc)` |Hold Left Control and press `kc` |
|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` |
|`LALT(kc)`|`A(kc)`, `LOPT(kc)` |Hold Left Alt and press `kc` |
|`LGUI(kc)`|`G(kc)`, `LCMD(kc)`, `LWIN(kc)`|Hold Left GUI and press `kc` |
|`RCTL(kc)`| |Hold Right Control and press `kc` |
|`RSFT(kc)`| |Hold Right Shift and press `kc` |
|`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt and press `kc` |
|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)` |Hold Right GUI and press `kc` |
|`SGUI(kc)`|`SCMD(kc)`, `SWIN(kc)` |Hold Left Shift and GUI and press `kc` |
|`LCA(kc)` | |Hold Left Control and Alt and press `kc` |
|`LSA(kc)` | |Hold Left Shift and Left Alt and press `kc` |
|`RSA(kc)` |`SAGR(kc)` |Hold Right Shift and Right Alt (AltGr) and press `kc` |
|`RCS(kc)` | |Hold Right Control and Right Shift and press `kc` |
|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` |
|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` |
|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc` |
You can also chain them, for example `LCTL(LALT(KC_DEL))` or `C(A(KC_DEL))` makes a key that sends Control+Alt+Delete with a single keypress.

View File

@ -121,16 +121,16 @@ DEBOUNCE_TYPE = <name of algorithm>
Where name of algorithm is one of:
* ```sym_defer_g``` - debouncing per keyboard. On any state change, a global timer is set. When ```DEBOUNCE``` milliseconds of no changes has occurred, all input changes are pushed.
* This is the current default algorithm. This is the highest performance algorithm with lowest memory usage, and it's also noise-resistant.
* ```sym_eager_pr``` - debouncing per row. On any state change, response is immediate, followed by locking the row ```DEBOUNCE``` milliseconds of no further input for that row.
* ```sym_eager_pr``` - debouncing per row. On any state change, response is immediate, followed by locking the row ```DEBOUNCE``` milliseconds of no further input for that row.
For use in keyboards where refreshing ```NUM_KEYS``` 8-bit counters is computationally expensive / low scan rate, and fingers usually only hit one row at a time. This could be
appropriate for the ErgoDox models; the matrix is rotated 90°, and hence its "rows" are really columns, and each finger only hits a single "row" at a time in normal use.
* ```sym_eager_pk``` - debouncing per key. On any state change, response is immediate, followed by ```DEBOUNCE``` milliseconds of no further input for that key
* ```sym_defer_pk``` - debouncing per key. On any state change, a per-key timer is set. When ```DEBOUNCE``` milliseconds of no changes have occurred on that key, the key status change is pushed.
* ```asym_eager_defer_pk``` - debouncing per key. On a key-down state change, response is immediate, followed by ```DEBOUNCE``` milliseconds of no further input for that key. On a key-up state change, a per-key timer is set. When ```DEBOUNCE``` milliseconds of no changes have occurred on that key, the key-up status change is pushed.
### A couple algorithms that could be implemented in the future:
* ```sym_defer_pr```
* ```sym_eager_g```
* ```asym_eager_defer_pk```
### Use your own debouncing code
You have the option to implement you own debouncing algorithm. To do this:

View File

@ -162,4 +162,28 @@ This will set what sequence HPT_RST will set as the active mode. If not defined,
### DRV2605L Continuous Haptic Mode
This mode sets continuous haptic feedback with the option to increase or decrease strength.
This mode sets continuous haptic feedback with the option to increase or decrease strength.
## Haptic Key Exclusion
The Haptic Exclusion is implemented as `__attribute__((weak)) bool get_haptic_enabled_key(uint16_t keycode, keyrecord_t *record)` in haptic.c. This allows a re-definition at the required level with the specific requirement / exclusion.
### NO_HAPTIC_MOD
With the entry of `#define NO_HAPTIC_MOD` in config.h, modifiers from Left Control to Right GUI will not trigger a feedback. This also includes modifiers in a Mod Tap configuration.
### NO_HAPTIC_FN
With the entry of `#define NO_HAPTIC_FN` in config.h, layer keys will not rigger a feedback.
### NO_HAPTIC_ALPHA
With the entry of `#define NO_HAPTIC_ALPHA` in config.h, none of the alpha keys (A ... Z) will trigger a feedback.
### NO_HAPTIC_PUNCTUATION
With the entry of `#define NO_HAPTIC_PUNCTUATION` in config.h, none of the following keys will trigger a feedback: Enter, ESC, Backspace, Space, Minus, Equal, Left Bracket, Right Bracket, Backslash, Non-US Hash, Semicolon, Quote, Grave, Comma, Slash, Dot, Non-US Backslash.
### NO_HAPTIC_LOCKKEYS
With the entry of `#define NO_HAPTIC_LOCKKEYS` in config.h, none of the following keys will trigger a feedback: Caps Lock, Scroll Lock, Num Lock.
### NO_HAPTIC_NAV
With the entry of `#define NO_HAPTIC_NAV` in config.h, none of the following keys will trigger a feedback: Print Screen, Pause, Insert, Delete, Page Down, Page Up, Left Arrow, Up Arrow, Right Arrow, Down Arrow, End, Home.
### NO_HAPTIC_NUMERIC
With the entry of `#define NO_HAPTIC_NUMERIC` in config.h, none of the following keys between 0 and 9 (KC_1 ... KC_0) will trigger a feedback.

View File

@ -346,6 +346,10 @@ bool oled_scroll_left(void);
// Returns true if the screen was not scrolling or stops scrolling
bool oled_scroll_off(void);
// Inverts the display
// Returns true if the screen was or is inverted
bool oled_invert(bool invert);
// Returns the maximum number of characters that will fit on a line
uint8_t oled_max_chars(void);

View File

@ -227,6 +227,74 @@ Configure the hardware via your `config.h`:
#define DRIVER_LED_TOTAL 70
```
---
### AW20216 :id=aw20216
There is basic support for addressable RGB matrix lighting with the SPI AW20216 RGB controller. To enable it, add this to your `rules.mk`:
```makefile
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = AW20216
```
You can use up to 2 AW20216 IC's. Do not specify `DRIVER_<N>_xxx` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`:
| Variable | Description | Default |
|----------|-------------|---------|
| `DRIVER_1_CS` | (Required) MCU pin connected to first RGB driver chip select line | B13 |
| `DRIVER_2_CS` | (Optional) MCU pin connected to second RGB driver chip select line | |
| `DRIVER_1_EN` | (Required) MCU pin connected to first RGB driver hardware enable line | C13 |
| `DRIVER_2_EN` | (Optional) MCU pin connected to second RGB driver hardware enable line | |
| `DRIVER_1_LED_TOTAL` | (Required) How many RGB lights are connected to first RGB driver | |
| `DRIVER_2_LED_TOTAL` | (Optional) How many RGB lights are connected to second RGB driver | |
| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
| `DRIVER_LED_TOTAL` | (Required) How many RGB lights are present across all drivers | |
| `AW_SCALING_MAX` | (Optional) LED current scaling value (0-255, higher values mean LED is brighter at full PWM) | 150 |
| `AW_GLOBAL_CURRENT_MAX` | (Optional) Driver global current limit (0-255, higher values means the driver may consume more power) | 150 |
Here is an example using 2 drivers.
```c
#define DRIVER_1_CS B13
#define DRIVER_2_CS B14
// Hardware enable lines may be connected to the same pin
#define DRIVER_1_EN C13
#define DRIVER_2_EN C13
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 66
#define DRIVER_2_LED_TOTAL 32
#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
```
!> Note the parentheses, this is so when `DRIVER_LED_TOTAL` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`.
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```c
const aw_led g_aw_leds[DRIVER_LED_TOTAL] = {
/* Each AW20216 channel is controlled by a register at some offset between 0x00
* and 0xD7 inclusive.
* See drivers/awinic/aw20216.h for the mapping between register offsets and
* driver pin locations.
* driver
* | R location
* | | G location
* | | | B location
* | | | | */
{ 0, CS1_SW1, CS2_SW1, CS3_SW1 },
{ 0, CS4_SW1, CS5_SW1, CS6_SW1 },
{ 0, CS7_SW1, CS8_SW1, CS9_SW1 },
{ 0, CS10_SW1, CS11_SW1, CS12_SW1 },
{ 0, CS13_SW1, CS14_SW1, CS15_SW1 },
...
{ 1, CS1_SW1, CS2_SW1, CS3_SW1 },
{ 1, CS13_SW1, CS14_SW1, CS15_SW1 },
{ 1, CS16_SW1, CS17_SW1, CS18_SW1 },
{ 1, CS4_SW2, CS5_SW2, CS6_SW2 },
...
};
```
---
## Common Configuration :id=common-configuration
@ -624,39 +692,6 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
}
```
### Indicator Examples :id=indicator-examples
Caps Lock indicator on alphanumeric flagged keys:
```c
void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
if (host_keyboard_led_state().caps_lock) {
for (uint8_t i = led_min; i <= led_max; i++) {
if (g_led_config.flags[i] & LED_FLAG_KEYLIGHT) {
rgb_matrix_set_color(i, RGB_RED);
}
}
}
}
```
Layer indicator on all flagged keys:
```c
void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
for (uint8_t i = led_min; i <= led_max; i++) {
switch(get_highest_layer(layer_state|default_layer_state)) {
case RAISE:
rgb_matrix_set_color(i, RGB_BLUE);
break;
case LOWER:
rgb_matrix_set_color(i, RGB_YELLOW);
break;
default:
break;
}
}
}
```
### Suspended state :id=suspended-state
To use the suspend feature, make sure that `#define RGB_DISABLE_WHEN_USB_SUSPENDED true` is added to the `config.h` file.

View File

@ -8,8 +8,7 @@ QMK Firmware has a generic implementation that is usable by any board, as well a
For this, we will mostly be talking about the generic implementation used by the Let's Split and other keyboards.
!> ARM is not yet fully supported for Split Keyboards and has many limitations. Progress is being made, but we have not yet reached 100% feature parity.
!> ARM split supports most QMK subsystems when using the 'serial' and 'serial_usart' drivers. I2C slave is currently unsupported.
## Compatibility Overview
@ -169,7 +168,7 @@ Because not every split keyboard is identical, there are a number of additional
#define USE_I2C
```
This enables I<sup>2</sup>C support for split keyboards. This isn't strictly for communication, but can be used for OLED or other I<sup>2</sup>C-based devices.
This configures the use of I<sup>2</sup>C support for split keyboard transport (AVR only).
```c
#define SOFT_SERIAL_PIN D0
@ -193,20 +192,115 @@ If you're having issues with serial communication, you can change this value, as
* **`5`**: about 20kbps
```c
#define SPLIT_MODS_ENABLE
#define FORCED_SYNC_THROTTLE_MS 100
```
This enables transmitting modifier state (normal, weak and oneshot) to the non
primary side of the split keyboard. This adds a few bytes of data to the split
communication protocol and may impact the matrix scan speed when enabled.
The purpose of this feature is to support cosmetic use of modifer state (e.g.
displaying status on an OLED screen).
This sets the maximum number of milliseconds before forcing a synchronization of data from master to slave. Under normal circumstances this sync occurs whenever the data _changes_, for safety a data transfer occurs after this number of milliseconds if no change has been detected since the last sync.
```c
#define SPLIT_TRANSPORT_MIRROR
```
This mirrors the master side matrix to the slave side for features that react or require knowledge of master side key presses on the slave side. This adds a few bytes of data to the split communication protocol and may impact the matrix scan speed when enabled. The purpose of this feature is to support cosmetic use of key events (e.g. RGB reacting to Keypresses).
This mirrors the master side matrix to the slave side for features that react or require knowledge of master side key presses on the slave side. The purpose of this feature is to support cosmetic use of key events (e.g. RGB reacting to keypresses). This adds overhead to the split communication protocol and may negatively impact the matrix scan speed when enabled.
```c
#define SPLIT_LAYER_STATE_ENABLE
```
This enables syncing of the layer state between both halves of the split keyboard. The main purpose of this feature is to enable support for use of things like OLED display of the currently active layer. This adds overhead to the split communication protocol and may negatively impact the matrix scan speed when enabled.
```c
#define SPLIT_LED_STATE_ENABLE
```
This enables syncing of the Host LED status (caps lock, num lock, etc) between both halves of the split keyboard. The main purpose of this feature is to enable support for use of things like OLED display of the Host LED status. This adds overhead to the split communication protocol and may negatively impact the matrix scan speed when enabled.
```c
#define SPLIT_MODS_ENABLE
```
This enables transmitting modifier state (normal, weak and oneshot) to the non primary side of the split keyboard. The purpose of this feature is to support cosmetic use of modifer state (e.g. displaying status on an OLED screen). This adds overhead to the split communication protocol and may negatively impact the matrix scan speed when enabled.
```c
#define SPLIT_WPM_ENABLE
```
This enables transmitting the current WPM to the slave side of the split keyboard. The purpose of this feature is to support cosmetic use of WPM (e.g. displaying the current value on an OLED screen). This adds overhead to the split communication protocol and may negatively impact the matrix scan speed when enabled.
### Custom data sync between sides :id=custom-data-sync
QMK's split transport allows for arbitrary data transactions at both the keyboard and user levels. This is modelled on a remote procedure call, with the master invoking a function on the slave side, with the ability to send data from master to slave, process it slave side, and send data back from slave to master.
To leverage this, a keyboard or user/keymap can define a comma-separated list of _transaction IDs_:
```c
// for keyboard-level data sync:
#define SPLIT_TRANSACTION_IDS_KB KEYBOARD_SYNC_A, KEYBOARD_SYNC_B
// or, for user:
#define SPLIT_TRANSACTION_IDS_USER USER_SYNC_A, USER_SYNC_B, USER_SYNC_C
```
These _transaction IDs_ then need a slave-side handler function to be registered with the split transport, for example:
```c
typedef struct _master_to_slave_t {
int m2s_data;
} master_to_slave_t;
typedef struct _slave_to_master_t {
int s2m_data;
} slave_to_master_t;
void user_sync_a_slave_handler(uint8_t in_buflen, const void* in_data, uint8_t out_buflen, void* out_data) {
const master_to_slave_t *m2s = (const master_to_slave_t*)in_data;
slave_to_master_t *s2m = (slave_to_master_t*)out_data;
s2m->s2m_data = m2s->m2s_data + 5; // whatever comes in, add 5 so it can be sent back
}
void keyboard_post_init_user(void) {
transaction_register_rpc(USER_SYNC_A, user_sync_a_slave_handler);
}
```
The master side can then invoke the slave-side handler - for normal keyboard functionality to be minimally affected, any keyboard- or user-level code attempting to sync data should be throttled:
```c
void housekeeping_task_user(void) {
if (is_keyboard_master()) {
// Interact with slave every 500ms
static uint32_t last_sync = 0;
if (timer_elapsed32(last_sync) > 500) {
master_to_slave_t m2s = {6};
slave_to_master_t s2m = {0};
if(transaction_rpc_exec(USER_SYNC_A, sizeof(m2s), &m2s, sizeof(s2m), &s2m)) {
last_sync = timer_read32();
dprintf("Slave value: %d\n", s2m.s2m_data); // this will now be 11, as the slave adds 5
} else {
dprint("Slave sync failed!\n");
}
}
}
}
```
!> It is recommended that any data sync between halves happens during the master side's _housekeeping task_. This ensures timely retries should failures occur.
If only one-way data transfer is needed, helper methods are provided:
```c
bool transaction_rpc_exec(int8_t transaction_id, uint8_t initiator2target_buffer_size, const void *initiator2target_buffer, uint8_t target2initiator_buffer_size, void *target2initiator_buffer);
bool transaction_rpc_send(int8_t transaction_id, uint8_t initiator2target_buffer_size, const void *initiator2target_buffer);
bool transaction_rpc_recv(int8_t transaction_id, uint8_t target2initiator_buffer_size, void *target2initiator_buffer);
```
By default, the inbound and outbound data is limited to a maximum of 32 bytes each. The sizes can be altered if required:
```c
// Master to slave:
#define RPC_M2S_BUFFER_SIZE 48
// Slave to master:
#define RPC_S2M_BUFFER_SIZE 48
```
### Hardware Configuration Options

274
docs/feature_st7565.md Normal file
View File

@ -0,0 +1,274 @@
# ST7565 LCD Driver
## Supported Hardware
LCD modules using ST7565 driver IC, communicating over SPI.
|Module |IC |Size |Notes |
|------------------------------|-------|------|----------------------------------------------------------|
|Newhaven Display NHD-C12832A1Z|ST7565R|128x32|Used by Ergodox Infinity; primary consumer of this feature|
|Zolentech ZLE12864B |ST7565P|128x64|Requires contrast adjustment |
## Usage
To enable the feature, there are three steps. First, when compiling your keyboard, you'll need to add the following to your `rules.mk`:
```make
ST7565_ENABLE = yes
```
Then in your `keymap.c` file, implement the ST7565 task call. This example assumes your keymap has three layers named `_QWERTY`, `_FN` and `_ADJ`:
```c
#ifdef ST7565_ENABLE
void st7565_task_user(void) {
// Host Keyboard Layer Status
st7565_write_P(PSTR("Layer: "), false);
switch (get_highest_layer(layer_state)) {
case _QWERTY:
st7565_write_P(PSTR("Default\n"), false);
break;
case _FN:
st7565_write_P(PSTR("FN\n"), false);
break;
case _ADJ:
st7565_write_P(PSTR("ADJ\n"), false);
break;
default:
// Or use the write_ln shortcut over adding '\n' to the end of your string
st7565_write_ln_P(PSTR("Undefined"), false);
}
// Host Keyboard LED Status
led_t led_state = host_keyboard_led_state();
st7565_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
st7565_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
st7565_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
}
#endif
```
## Logo Example
In the default font, certain ranges of characters are reserved for a QMK logo. To render this logo to the screen, use the following code example:
```c
static void render_logo(void) {
static const char PROGMEM qmk_logo[] = {
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00
};
st7565_write_P(qmk_logo, false);
}
```
## Buffer Read Example
For some purposes, you may need to read the current state of the display buffer. The `st7565_read_raw` function can be used to safely read bytes from the buffer.
In this example, calling `fade_display` in the `st7565_task_user` function will slowly fade away whatever is on the screen by turning random pixels off over time.
```c
//Setup some mask which can be or'd with bytes to turn off pixels
const uint8_t single_bit_masks[8] = {127, 191, 223, 239, 247, 251, 253, 254};
static void fade_display(void) {
//Define the reader structure
display_buffer_reader_t reader;
uint8_t buff_char;
if (random() % 30 == 0) {
srand(timer_read());
// Fetch a pointer for the buffer byte at index 0. The return structure
// will have the pointer and the number of bytes remaining from this
// index position if we want to perform a sequential read by
// incrementing the buffer pointer
reader = st7565_read_raw(0);
//Loop over the remaining buffer and erase pixels as we go
for (uint16_t i = 0; i < reader.remaining_element_count; i++) {
//Get the actual byte in the buffer by dereferencing the pointer
buff_char = *reader.current_element;
if (buff_char != 0) {
st7565_write_raw_byte(buff_char & single_bit_masks[rand() % 8], i);
}
//increment the pointer to fetch a new byte during the next loop
reader.current_element++;
}
}
}
```
## Other Examples
In split keyboards, it is very common to have two displays that each render different content and are oriented or flipped differently. You can do this by switching which content to render by using the return value from `is_keyboard_master()` or `is_keyboard_left()` found in `split_util.h`, e.g:
```c
#ifdef ST7565_ENABLE
display_rotation_t st7565_init_user(display_rotation_t rotation) {
if (!is_keyboard_master()) {
return DISPLAY_ROTATION_180; // flips the display 180 degrees if offhand
}
return rotation;
}
void st7565_task_user(void) {
if (is_keyboard_master()) {
render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
} else {
render_logo(); // Renders a static logo
}
}
#endif
```
## Basic Configuration
|Define |Default |Description |
|------------------------|--------------|-----------------------------------------------------------------------------------------------------|
|`ST7565_A0_PIN` |*Not defined* |(Required) The GPIO connected to the display's A0 (data/command) pin |
|`ST7565_RST_PIN` |*Not defined* |(Required) The GPIO connected to the display's reset pin |
|`ST7565_SS_PIN` |*Not defined* |(Required) The GPIO connected to the display's slave select pin |
|`ST7565_SPI_CLK_DIVISOR`|`4` |The SPI clock divisor to use |
|`ST7565_FONT_H` |`"glcdfont.c"`|The font code file to use for custom fonts |
|`ST7565_FONT_START` |`0` |The starting character index for custom fonts |
|`ST7565_FONT_END` |`223` |The ending character index for custom fonts |
|`ST7565_FONT_WIDTH` |`6` |The font width |
|`ST7565_FONT_HEIGHT` |`8` |The font height (untested) |
|`ST7565_TIMEOUT` |`60000` |Turns off the screen after 60000ms of keyboard inactivity. Helps reduce burn-in. Set to 0 to disable.|
|`ST7565_COLUMN_OFFSET` |`0` |Shift output to the right this many pixels. |
|`ST7565_CONTRAST` |`32` |The default contrast level of the display, from 0 to 255. |
|`ST7565_UPDATE_INTERVAL`|`0` |Set the time interval for updating the display in ms. This will improve the matrix scan rate. |
## Custom sized displays
The default display size for this feature is 128x32 and all necessary defines are precalculated with that in mind.
|Define |Default |Description |
|-----------------------|----------|-----------------------------------------------------------------------------------------------------------|
|`ST7565_DISPLAY_WIDTH` |`128` |The width of the display. |
|`ST7565_DISPLAY_HEIGHT`|`32` |The height of the display. |
|`ST7565_MATRIX_SIZE` |`512` |The local buffer size to allocate.<br>`(ST7565_DISPLAY_HEIGHT / 8 * ST7565_DISPLAY_WIDTH)`. |
|`ST7565_BLOCK_TYPE` |`uint16_t`|The unsigned integer type to use for dirty rendering. |
|`ST7565_BLOCK_COUNT` |`16` |The number of blocks the display is divided into for dirty rendering.<br>`(sizeof(ST7565_BLOCK_TYPE) * 8)`.|
|`ST7565_BLOCK_SIZE` |`32` |The size of each block for dirty rendering<br>`(ST7565_MATRIX_SIZE / ST7565_BLOCK_COUNT)`. |
## API
```c
// Rotation enum values are flags
typedef enum {
DISPLAY_ROTATION_0,
DISPLAY_ROTATION_180
} display_rotation_t;
// Initialize the display, rotating the rendered output based on the define passed in.
// Returns true if the was initialized successfully
bool st7565_init(display_rotation_t rotation);
// Called at the start of st7565_init, weak function overridable by the user
// rotation - the value passed into st7565_init
// Return new display_rotation_t if you want to override default rotation
display_rotation_t st7565_init_user(display_rotation_t rotation);
// Clears the display buffer, resets cursor position to 0, and sets the buffer to dirty for rendering
void st7565_clear(void);
// Renders the dirty chunks of the buffer to display
void st7565_render(void);
// Moves cursor to character position indicated by column and line, wraps if out of bounds
// Max column denoted by 'st7565_max_chars()' and max lines by 'st7565_max_lines()' functions
void st7565_set_cursor(uint8_t col, uint8_t line);
// Advances the cursor to the next page, writing ' ' if true
// Wraps to the begining when out of bounds
void st7565_advance_page(bool clearPageRemainder);
// Moves the cursor forward 1 character length
// Advance page if there is not enough room for the next character
// Wraps to the begining when out of bounds
void st7565_advance_char(void);
// Writes a single character to the buffer at current cursor position
// Advances the cursor while writing, inverts the pixels if true
// Main handler that writes character data to the display buffer
void st7565_write_char(const char data, bool invert);
// Writes a string to the buffer at current cursor position
// Advances the cursor while writing, inverts the pixels if true
void st7565_write(const char *data, bool invert);
// Writes a string to the buffer at current cursor position
// Advances the cursor while writing, inverts the pixels if true
// Advances the cursor to the next page, wiring ' ' to the remainder of the current page
void st7565_write_ln(const char *data, bool invert);
// Pans the buffer to the right (or left by passing true) by moving contents of the buffer
// Useful for moving the screen in preparation for new drawing
void st7565_pan(bool left);
// Returns a pointer to the requested start index in the buffer plus remaining
// buffer length as struct
display_buffer_reader_t st7565_read_raw(uint16_t start_index);
// Writes a string to the buffer at current cursor position
void st7565_write_raw(const char *data, uint16_t size);
// Writes a single byte into the buffer at the specified index
void st7565_write_raw_byte(const char data, uint16_t index);
// Sets a specific pixel on or off
// Coordinates start at top-left and go right and down for positive x and y
void st7565_write_pixel(uint8_t x, uint8_t y, bool on);
// Writes a PROGMEM string to the buffer at current cursor position
// Advances the cursor while writing, inverts the pixels if true
// Remapped to call 'void st7565_write(const char *data, bool invert);' on ARM
void st7565_write_P(const char *data, bool invert);
// Writes a PROGMEM string to the buffer at current cursor position
// Advances the cursor while writing, inverts the pixels if true
// Advances the cursor to the next page, wiring ' ' to the remainder of the current page
// Remapped to call 'void st7565_write_ln(const char *data, bool invert);' on ARM
void st7565_write_ln_P(const char *data, bool invert);
// Writes a PROGMEM string to the buffer at current cursor position
void st7565_write_raw_P(const char *data, uint16_t size);
// Can be used to manually turn on the screen if it is off
// Returns true if the screen was on or turns on
bool st7565_on(void);
// Called when st7565_on() turns on the screen, weak function overridable by the user
// Not called if the screen is already on
void st7565_on_user(void);
// Can be used to manually turn off the screen if it is on
// Returns true if the screen was off or turns off
bool st7565_off(void);
// Called when st7565_off() turns off the screen, weak function overridable by the user
// Not called if the screen is already off
void st7565_off_user(void);
// Returns true if the screen is currently on, false if it is
// not
bool st7565_is_on(void);
// Basically it's st7565_render, but with timeout management and st7565_task_user calling!
void st7565_task(void);
// Called at the start of st7565_task, weak function overridable by the user
void st7565_task_user(void);
// Inverts the display
// Returns true if the screen was or is inverted
bool st7565_invert(bool invert);
// Returns the maximum number of characters that will fit on a line
uint8_t st7565_max_chars(void);
// Returns the maximum number of lines that will fit on the display
uint8_t st7565_max_lines(void);
```

View File

@ -7,9 +7,9 @@
[![Contributeurs GitHub](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly)
[![Forks GitHub](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/)
## Qu'est-ce que QMK Firmware?
## Qu'est-ce que QMK Firmware?
QMK (*Quantum Mechanical Keyboard*) est une communauté open source qui maintient le firmware QMK, la QMK Toolbox (*Boite à outil*), qmk.fm et leurs documentations. QMK Firmware est un firmware dédié aux claviers qui est basé sur [tmk\_keyboard](https://github.com/tmk/tmk_keyboard). Il offre des fonctionnalités très utiles pour les contrôleurs Atmel AVR, et, plus spécifiquement pour [les produits d'OLKB](https://olkb.com), le clavier [ErgoDox EZ](https://www.ergodox-ez.com), et pour les [produits Clueboard](https://clueboard.co/). Il prend désormais aussi en charge les processeurs ARM qui utilisent ChibiOS. Vous pouvez l'utiliser pour contrôler un clavier personnalisé soudé à la main ou alors sur un clavier avec un PCB personnalisé.
QMK (*Quantum Mechanical Keyboard*) est une communauté open source qui maintient le firmware QMK, la QMK Toolbox (*Boite à outil*), qmk.fm et leurs documentations. QMKFirmware est un firmware dédié aux claviers qui est basé sur [tmk\_keyboard](https://github.com/tmk/tmk_keyboard). Il offre des fonctionnalités très utiles pour les contrôleurs Atmel AVR, et, plus spécifiquement pour [les produits d'OLKB](https://olkb.com), le clavier [ErgoDox EZ](https://www.ergodox-ez.com), et pour les [produits Clueboard](https://clueboard.co/). Il prend désormais aussi en charge les processeurs ARM qui utilisent ChibiOS. Vous pouvez l'utiliser pour contrôler un clavier personnalisé soudé à la main ou alors sur un clavier avec un PCB personnalisé.
## Comment l'obtenir
@ -23,7 +23,7 @@ Avant d'être prêt à compiler vous allez devoir [installer un environnement](f
make planck/rev4:default
Cette commande compilera la révision `rev4` du clavier `planck` avec la disposition `default`. Notez que tous les claviers n'ont pas forcément de révisions (aussi appelées sous-projects ou dossiers, ou en anglais «subprojects» ou «folder»). Cette option peut donc être omise:
Cette commande compilera la révision `rev4` du clavier `planck` avec la disposition `default`. Notez que tous les claviers n'ont pas forcément de révisions (aussi appelées sous-projects ou dossiers, ou en anglais «subprojects» ou «folder»). Cette option peut donc être omise:
make preonic:default

View File

@ -9,7 +9,7 @@ Nous vous recommandons d'utiliser l'utilitaire [Zadig](https://zadig.akeo.ie/).
## Installation
Passez votre clavier en mode bootloader, soit en appuyant sur le keycode `RESET` (qui peut se trouver dans un calque différent) ou en appuyant sur le bouton reset qui se trouve en général sous la board. Si votre clavier n'a aucune de ces options, essayez de le brancher en maintenant Escape ou Espace+`B` appuyés (voir la documentation de [Bootmagic](feature_bootmagic.md) pour plus de détails). Certaines boards utilisent [Command](feature_command.md) à la place de Bootmagic. Dans ce cas, vous pouvez entrer en mode bootloader en appuyant, à n'importe quel moment lorsque le clavier est branché, sur les combinaisons de touches Shift Gauche+Shift Droit+`B` ou Shift Gauche+Shift Droit+Escape.
Certains claviers ont des instructions spécifiques pour passer en mode bootloader. Par exemple, la touche [Bootmagic Lite]](feature_bootmagic.md#bootmagic-lite) (défaut: Échap) peut être sur une touche différente telle que Contrôle Gauche. La combinaison pour la Command (défaut: Shift Gauche+Shift Droit) peut être différente, par exemple Contrôle Gauche+Contrôle Droit. Référez-vous au fichier README de votre clavier.
Certains claviers ont des instructions spécifiques pour passer en mode bootloader. Par exemple, la touche [Bootmagic Lite]](feature_bootmagic.md#bootmagic-lite) (défaut:Échap) peut être sur une touche différente telle que Contrôle Gauche. La combinaison pour la Command (défaut:Shift Gauche+Shift Droit) peut être différente, par exemple Contrôle Gauche+Contrôle Droit. Référez-vous au fichier README de votre clavier.
Pour mettre un clavier en mode bootloader avec USBaspLoader, appuyez sur le bouton `RESET` tout en maintenant le bouton `BOOT`. Vous pouvez aussi maintenir le bouton `BOOT` en branchant le câble USB.
@ -43,4 +43,4 @@ Cliquez dessus avec le bouton droit et sélectionner **Désinstaller le périph
![Le dialogue Suppression de périphérique, avec la boîte "suppression de pilote" cochée](https://i.imgur.com/aEs2RuA.png)
Appuyez sur **Action → Analyser les changements de hardware**. A ce stade, vous devriez pouvoir saisir à nouveau. Vérifiez dans Zadig que les périphériques utilisent bien le pilote `HidUsb`. Si c'est le cas, vous avez corrigé le problème, votre clavier devrait fonctionner à nouveau!
Appuyez sur **Action → Analyser les changements de hardware**. A ce stade, vous devriez pouvoir saisir à nouveau. Vérifiez dans Zadig que les périphériques utilisent bien le pilote `HidUsb`. Si c'est le cas, vous avez corrigé le problème, votre clavier devrait fonctionner à nouveau!

View File

@ -20,7 +20,7 @@ Veuillez noter que lancer `make` avec `sudo` est généralement une **mauvaise**
### Règles `udev` pour Linux
Sous Linux, vous aurez besoin des permissions appropriées pour accéder au MCU (le micro-contrôleur). Vous avez le choix d'utiliser `sudo` en flashant le firmware, ou placer ces fichiers dans `/etc/udev/rules.d`. Une fois ajouté, lancez les commandes suivantes:
Sous Linux, vous aurez besoin des permissions appropriées pour accéder au MCU (le micro-contrôleur). Vous avez le choix d'utiliser `sudo` en flashant le firmware, ou placer ces fichiers dans `/etc/udev/rules.d`. Une fois ajouté, lancez les commandes suivantes:
```console
sudo udevadm control --reload-rules

View File

@ -6,13 +6,13 @@ Cette page détaille diverses questions fréquemment posées par les utilisateur
## `hid_listen` ne reconnaît pas de périphérique
Lorsque la console de débugage sur votre périphérique n'est pas prêt, vous obtiendrez un message similaire:
Lorsque la console de débugage sur votre périphérique n'est pas prêt, vous obtiendrez un message similaire:
```
Waiting for device:.........
```
Une fois le périphérique connecté, *hid_listen* le trouve et vous obtiendrez ce message:
Une fois le périphérique connecté, *hid_listen* le trouve et vous obtiendrez ce message:
```
Waiting for new device:.........................
@ -61,7 +61,7 @@ Vous ne voulez probablement pas "briquer" votre clavier, rendre impossible d'éc
- Si votre map de clavier n'inclut pas de RESET, pour entrer en mode DFU, vous devrez appuyer sur le bouton reset du PCB. Cela implique que vous devrez certainement dévisser certaines pièces de votre clavier pour y accéder.
- Modifier les fichiers tmk_core / common peut rendre le clavier inutilisable
- Si un fichier .hex trop large est la cause du problème: `make dfu` supprime le bloc puis teste la taille (il ne fait pas les choses dans le bon ordre), ce qui provoque une erreur. En résultat, le flash naura pas été fait et le clavier restera en mode DFU.
- Si un fichier .hex trop large est la cause du problème: `make dfu` supprime le bloc puis teste la taille (il ne fait pas les choses dans le bon ordre), ce qui provoque une erreur. En résultat, le flash naura pas été fait et le clavier restera en mode DFU.
- Pour finir, notez que la taille maximale d'un fichier .hex sur un Plank est de 7000h (28672 decimal)
```
@ -118,7 +118,7 @@ Sous Windows, activez l'option `Permettre au périphérique de sortir l'ordinate
Appuyer sur n'importe quelle touche en mode veille devrait sortir l'ordinateur de veille.
## Vous utilisez un Arduino?
## Vous utilisez un Arduino?
**Faites attention au fait que le nommage des pin d'un Arduino diffère de la puce**. Par exemple, la pin `D0` n'est pas `PD0`. Vérifiez le circuit avec la fiche technique.

View File

@ -44,7 +44,7 @@ Le premier n'est reconnu que sur macOS, alors que le dernier, `KC_SLEP` et `KC_W
## Modificateur "One Shot"
Cette fonctionnalité permet de corriger un problème avec la touche Shift. En effet, il arrive de saisir plusieurs majuscules en ne voulant en saisir qu'une sur un mot. Ex: `CEtte` à la place de `Cette`. La fonctionnalité «One shot» shift permet de corriger ça.
Cette fonctionnalité permet de corriger un problème avec la touche Shift. En effet, il arrive de saisir plusieurs majuscules en ne voulant en saisir qu'une sur un mot. Ex:`CEtte` à la place de `Cette`. La fonctionnalité «One shot» shift permet de corriger ça.
https://github.com/tmk/tmk_keyboard/issues/67
@ -59,7 +59,7 @@ Pour les touches de modification et les actions de calque, vous devez placer `KC
## Support de touche à verrouillage mécanique
Cette fonctionnalité permet l'usage de *touches à verrouillage mécanique* comme [ces interrupteurs Alps](https://deskthority.net/wiki/Alps_SKCL_Lock). Vous pouvez l'activer en ajoutant ceci à votre `config.h`:
Cette fonctionnalité permet l'usage de *touches à verrouillage mécanique* comme [ces interrupteurs Alps](https://deskthority.net/wiki/Alps_SKCL_Lock). Vous pouvez l'activer en ajoutant ceci à votre `config.h`:
```
#define LOCKING_SUPPORT_ENABLE

View File

@ -27,15 +27,15 @@ Méthodes de flash compatibles :
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (interface graphique recommandé)
* [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` avec QMK (outil en ligne de commande recommandé)
Ordre des actions:
Ordre des actions:
1. Pressez le keycode `RESET`, ou appuyez sur le bouton physique RESET ou alors créez un contact entre RST et GND.
2. Attendez que l'OS detecte l'appareil.
3. Éffacez la mémoire, cela peut être fait automatiquement.
4. Flasher le fichier .hex.
5. Redémarrez l'appareil en mode «application», cela peut être fait automatiquement.
5. Redémarrez l'appareil en mode «application», cela peut être fait automatiquement.
Alternativement:
Alternativement:
make <keyboard>:<keymap>:dfu
@ -48,11 +48,11 @@ QMK a un fork du bootloader LUFA DFU qui vous permet de faire un simple scan de
#define QMK_LED E6
#define QMK_SPEAKER C6
Le fabricant et le nom du produit proviennent de vos définitions dans fichier `config.h`, et la chaîne de caractère «bootloader» est ajoutée au nom du produit.
Le fabricant et le nom du produit proviennent de vos définitions dans fichier `config.h`, et la chaîne de caractère «bootloader» est ajoutée au nom du produit.
Pour génerer le bootloader, utilisez la cible `bootloader`. Exemple: `make planck/rev4:default:bootloader`.
Pour génerer le bootloader, utilisez la cible `bootloader`. Exemple:`make planck/rev4:default:bootloader`.
Pour génerer un fichier .hex prêt pour la production qui contiendra tant l'application que le bootloader, utilisez la cible `production`. Exemple: `make planck/rev4:default:production`.
Pour génerer un fichier .hex prêt pour la production qui contiendra tant l'application que le bootloader, utilisez la cible `production`. Exemple:`make planck/rev4:default:production`.
### Commandes DFU
@ -67,7 +67,7 @@ Il y a plusieurs commandes DFU que vous pouvez utiliser pour flasher le firmware
Les cartes arduinos et leurs clones utilisent le [bootloader Caterina](https://github.com/arduino/ArduinoCore-avr/tree/master/bootloaders/caterina) (tous les claviers utilisant un Pro Micro, ou un clone). Ils utilisent aussi le protocole avr109 pour communiquer en virtuellement en série (serial en anglais). Les bootloaders comme le [A-Star](https://www.pololu.com/docs/0J61/9) sont basés sur Caterina.
Pour vérifier la compatibilité avec un bootloader Caterina, vérifiez que ce bloc est présent dans votre fichier `rules.mk`:
Pour vérifier la compatibilité avec un bootloader Caterina, vérifiez que ce bloc est présent dans votre fichier `rules.mk`:
```make
# Bootloader selection
@ -81,20 +81,20 @@ Pour vérifier la compatibilité avec un bootloader Caterina, vérifiez que ce b
BOOTLOADER = caterina
```
Flashers compatibles:
Flashers compatibles:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (Interface graphique recommandée)
* [avrdude](https://www.nongnu.org/avrdude/) avec avr109 / `:avrdude` (Outil en ligne de commande recommandé)
* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
Séquence de flash :
Séquence de flash :
1. Pressez la touche avec le keycode `RESET`, ou reliez les ports GND et RST. Vous n'avez que 7 secondes pour flasher une fois que l'opération a été faite.
2. Attendez que l'OS détecte l'appareil.
3. Flasher le fichier .hex.
4. Attendez que l'appareil redémarre automatiquement.
ou, utilisez:
ou, utilisez:
make <keyboard>:<keymap>:avrdude
@ -111,7 +111,7 @@ Il existe un certain nombre de commandes DFU que vous pouvez utiliser pour mettr
Halfkay est un protocole ultra-simple développé par PJRC qui utilise HID et qui est fourni avec tous les Teensys après le modèle 2.0.
Pour vérifier la compatibilité avec le booloader Halfkay, vérifiez que ce bloc est présent dans votre fichier `rules.mk`:
Pour vérifier la compatibilité avec le booloader Halfkay, vérifiez que ce bloc est présent dans votre fichier `rules.mk`:
```make
# Bootloader selection
@ -125,24 +125,24 @@ Pour vérifier la compatibilité avec le booloader Halfkay, vérifiez que ce blo
BOOTLOADER = halfkay
```
Flasher compatibles:
Flasher compatibles:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (Interface graphique recomandée)
* [Teensy Loader](https://www.pjrc.com/teensy/loader.html) (petit utilitaire ultra simple)
[Teensy Loader en ligne de commande](https://www.pjrc.com/teensy/loader_cli.html) (Outil en ligne de commande recommandé)
Séquence de flash:
Séquence de flash:
1. Pressez la touche du keycode `RESET`, ou reliez les ports RST et GND rapidement. Vous avez ensuite 7 secondes pour réaliser le flash.
2. Attendez que l'OS détecte l'appareil.
3. Flasher le fichier .hex.
4. Redémarrez l'appareil en mode «application». Cela peut être fait automatiquement.
4. Redémarrez l'appareil en mode «application». Cela peut être fait automatiquement.
## USBasploader
USBasploader est un bootloader développé par matrixstorm. Il est utilisé sur des processeurs AVR non-USB comme le ATmega328P, qui fonctionne grâce à V-USB.
Pour vérifier la compatibilité avec le booloader USBasploader, vérifiez que ce bloc est présent dans votre fichier `rules.mk`:
Pour vérifier la compatibilité avec le booloader USBasploader, vérifiez que ce bloc est présent dans votre fichier `rules.mk`:
```make
# Bootloader selection
@ -156,24 +156,24 @@ Pour vérifier la compatibilité avec le booloader USBasploader, vérifiez que c
BOOTLOADER = USBasp
```
Flashers compatibles:
Flashers compatibles:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (Interface graphique recommandé)
* [avrdude](https://www.nongnu.org/avrdude/) avec le programmeur `usbasp`.
* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
Séquence de flash:
Séquence de flash:
1. Pressez la touche du keycode `RESET`, ou reliez le port de boot pendant que RST et GND snt reliés. Cela doit être fait très rapidement.
2. Attendez que l'OS détecte l'appareil.
3. Flasher le fichier .hex.
4. Redémarrez l'appareil en mode «application». Cela peut être fait automatiquement.
4. Redémarrez l'appareil en mode «application». Cela peut être fait automatiquement.
## BootloadHID
BootloadHID est un bootloader pour les microcontrôleurs AVR. L'utilitaire de téleversement ne demande pas de drivers au niveau du kernel et peut être lancé sans installer aucune DLLs.
Pour vérifier la compatibilité avec le bootloader bootloadHID, vérifiez que ce bloc existe dans votre fichier `rules.mk` :
Pour vérifier la compatibilité avec le bootloader bootloadHID, vérifiez que ce bloc existe dans votre fichier `rules.mk` :
```make
# Bootloader selection
@ -187,50 +187,50 @@ Pour vérifier la compatibilité avec le bootloader bootloadHID, vérifiez que c
BOOTLOADER = bootloadHID
```
Utilitaires de flash compatibles:
Utilitaires de flash compatibles:
* [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash) (Utilitaire avec interface graphique recommandé)
* [bootloadhid Command Line](https://www.obdev.at/products/vusb/bootloadhid.html) / `:BootloadHID` avec QMK (utilitaire en ligne de commande recommandé)
Séquence de flash
1. Entrez dans le bootloader en utilisant l'une de ces méthodes:
1. Entrez dans le bootloader en utilisant l'une de ces méthodes:
* Pressez la touche du keycode `RESET` (Cela ne fonctionnera pas sur certains appareils).
* Verrouillez la touche «Salt» tout en branchant le clavier (Généralement ce principe est documenté dans le fichier readme du clavier)
* Verrouillez la touche «Salt» tout en branchant le clavier (Généralement ce principe est documenté dans le fichier readme du clavier)
2. Attendez que l'OS détecte l'appareil.
3. Flasher le fichier .hex.
4. Redémarrez l'appareil en mode «application». Cela peut être fait automatiquement.
4. Redémarrez l'appareil en mode «application». Cela peut être fait automatiquement.
Ou alors:
Ou alors:
make <keyboard>:<keymap>:bootloadHID
## STM32
Tous les processeurs STM32 contiennent un bootloader installé en usine qui ne peut pas être modifié ou supprimé. Certains processeurs STM32 ont des bootloaders qui ne peuvent pas être programmés par USB (ex: STM32F103) mais le processus reste le même.
Tous les processeurs STM32 contiennent un bootloader installé en usine qui ne peut pas être modifié ou supprimé. Certains processeurs STM32 ont des bootloaders qui ne peuvent pas être programmés par USB (ex:STM32F103) mais le processus reste le même.
Pour le moment, aucune variable `BOOTLOADER` n'est nécessaire dans le fichier `rules.mk`.
Flashers compatibles:
Flashers compatibles:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (interface graphique recommandé)
* [dfu-util](https://github.com/Stefan-Schmidt/dfu-util) / `:dfu-util` (utilitaire en ligne de commande recommandé)
Séquence pour flasher:
1. Entrez dans le bootloader en utilisant l'une de ces méthodes:
1. Entrez dans le bootloader en utilisant l'une de ces méthodes:
* Utilisez une touche sur laquelle le keycode `RESET` (Cela peut ne pas fonctionner sur les appareils STM32F042)
* Si un circuit de réinitialisation (Reset) est présent alors utilisé le bouton qui lui est dédié.
* Autrement, vous devez réaliser une liaison entre BOOT0 et VCC (en appuyant sur le bouton ou à l'aide d'un pont) puis faire un pont entre RESET et GND et enfin relacher le pont BOOT0.
2. Attendre que l'os détecte l'appareil.
3. Flasher un fichier `.bin`.h
* Vous allez recevoir un avertissement à propos de la signature DFU. Ignorez-la.
4. Réinitialisez l'appareil en mode «application». Cela peut être fait automatiquement.
* Si vous êtes en train de travailler en ligne de commande, par exemple avec un `make planck/rev6:default:dfu-util` alors soyez bien sur que l'argument `:leave` est passé aux arguments DFU grâce à la variable `DFU_ARGS` à l'intérieur de votre fichier `rules.mk` (Ex: `DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave`) afin que votre appareil redémarre après avoir été flashé.
4. Réinitialisez l'appareil en mode «application». Cela peut être fait automatiquement.
* Si vous êtes en train de travailler en ligne de commande, par exemple avec un `make planck/rev6:default:dfu-util` alors soyez bien sur que l'argument `:leave` est passé aux arguments DFU grâce à la variable `DFU_ARGS` à l'intérieur de votre fichier `rules.mk` (Ex:`DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave`) afin que votre appareil redémarre après avoir été flashé.
### Commandes STM32
Il y a différentes commandes que vous pouvez utiliser pour flasher un firmware dans un appareil STM32:
Il y a différentes commandes que vous pouvez utiliser pour flasher un firmware dans un appareil STM32:
* `:dfu-util` - C'est l'option standard pour flasher un appareil STM32. Le script attendra qu'un bootloader STM32 soit présent.
* `:dfu-util-split-left` - Permet de flasher un firmware normalement, tout comme l'option précédente mais permet de configurer le côté gauche des paramètres EEPROM sur un clavier scindé.

View File

@ -88,7 +88,7 @@ Par exemple, si votre keymap s'appelle "xyverz" et que vous fabriquez une keymap
La commande va vérifier la configuration du clavier, puis tentera de le flasher en fonction du bootloader (chargeur damorçage) spécifié. Cela signifie que vous n'avez pas besoin de savoir quel bootloader votre clavier utilise. Exécutez simplement la commande et laissez-le faire le gros du travail.
Cependant, tout dépend du bootloader qui est installé sur le clavier. Si cette information nest pas configurée ou si vous tentez de flasher un clavier qui ne permet pas dêtre flashé alors vous obtiendrez cette erreur:
Cependant, tout dépend du bootloader qui est installé sur le clavier. Si cette information nest pas configurée ou si vous tentez de flasher un clavier qui ne permet pas dêtre flashé alors vous obtiendrez cette erreur :
WARNING: This board's bootloader is not specified or is not supported by the ":flash" target at this time.
@ -326,7 +326,7 @@ Il y aun certain nombre de commandes du DFU que vous pouvez utiliser pour flash
### BootloadHID
Pour les claviers basés sur Bootmapper Client(BMC)/bootloadHID/ATmega32A, si vous êtes prêts à compiler et flasher le firmware, ouvrez votre fenêtre de terminal et lancez la commande suivante:
Pour les claviers basés sur Bootmapper Client(BMC)/bootloadHID/ATmega32A, si vous êtes prêts à compiler et flasher le firmware, ouvrez votre fenêtre de terminal et lancez la commande suivante :
make <my_keyboard>:<my_keymap>:bootloaderHID
@ -351,7 +351,7 @@ Error opening HIDBoot device: The specified device was not found
Trying again in 5s.
```
Une fois ce résultat obtenu, réinitialisez le contrôleur. Le résultat suivant devrait safficher:
Une fois ce résultat obtenu, réinitialisez le contrôleur. Le résultat suivant devrait safficher :
```
Page size = 128 (0x80)

View File

@ -3,6 +3,7 @@
* [セットアップ](ja/newbs_getting_started.md)
* [初めてのファームウェアの構築](ja/newbs_building_firmware.md)
* [ファームウェアのフラッシュ](ja/newbs_flashing.md)
* [テストとデバッグ](ja/newbs_testing_debugging.md)
* [手助けを得る/サポート](ja/support.md)
* [他のリソース](ja/newbs_learn_more_resources.md)
* [シラバス](ja/syllabus.md)
@ -10,8 +11,7 @@
* FAQ
* [一般的な FAQ](ja/faq_general.md)
* [QMK のビルド/コンパイル](ja/faq_build.md)
* [QMK のデバッグ](ja/faq_debug.md)
* [QMK のトラブルシューティング](ja/faq_misc.md)
* [QMK のデバッグ/トラブルシューティング](ja/faq_debug.md)
* [キーマップ FAQ](ja/faq_keymap.md)
* [用語](ja/reference_glossary.md)
@ -23,13 +23,11 @@
* [概要](ja/api_overview.md)
* [API ドキュメント](ja/api_docs.md)
* [キーボードサポート](ja/reference_configurator_support.md)
* [デフォルトキーマップの追加](ja/configurator_default_keymaps.md)
* CLI
* [概要](ja/cli.md)
* [設定](ja/cli_configuration.md)
* [コマンド](ja/cli_commands.md)
* [Tab 補完](ja/cli_tab_complete.md)
* QMK を使う
* ガイド
@ -43,8 +41,8 @@
* [書き込み](ja/flashing.md)
* [ATmega32A の書き込み (ps2avrgb)](ja/flashing_bootloadhid.md)
* IDE
* [QMK での Eclipse 使用](ja/other_eclipse.md)
* [QMK での VSCode の使用](ja/other_vscode.md)
* [Eclipse で QMK を使用](ja/other_eclipse.md)
* [VSCode で QMK を使用](ja/other_vscode.md)
* Git のベストプラクティス
* [入門](ja/newbs_git_best_practices.md)
* [フォーク](ja/newbs_git_using_your_master_branch.md)
@ -81,7 +79,6 @@
* [ワンショットキー](ja/one_shot_keys.md)
* [ポインティング デバイス](ja/feature_pointing_device.md)
* [ロー HID](ja/feature_rawhid.md)
* [シーケンサー](ja/feature_sequencer.md)
* [スワップハンド](ja/feature_swap_hands.md)
* [タップダンス](ja/feature_tap_dance.md)
* [タップホールド設定](ja/tap_hold.md)
@ -106,7 +103,6 @@
* [DIP スイッチ](ja/feature_dip_switch.md)
* [エンコーダ](ja/feature_encoders.md)
* [触覚フィードバック](ja/feature_haptic_feedback.md)
* [ジョイスティック](ja/feature_joystick.md)
* [LED インジケータ](ja/feature_led_indicators.md)
* [Proton C 変換](ja/proton_c_conversion.md)
* [PS/2 マウス](ja/feature_ps2_mouse.md)
@ -120,8 +116,11 @@
* 互換性を破る変更/Breaking changes
* [概要](ja/breaking_changes.md)
* [プルリクエストにフラグが付けられた](ja/breaking_changes_instructions.md)
* [最近の変更履歴](ChangeLog/20210227.md "QMK v0.12.0 - 2021 Feb 27")
* [過去の互換性を破る変更](ja/breaking_changes_history.md)
* 履歴
* [2020年8月29日](ja/ChangeLog/20200829.md)
* [2020年5月30日](ja/ChangeLog/20200530.md)
* [2020年2月29日](ja/ChangeLog/20200229.md)
* [2019年8月30日](ja/ChangeLog/20190830.md)
* C 開発
* [ARM デバッグ ガイド](ja/arm_debugging.md)
@ -130,13 +129,11 @@
* [互換性のあるマイクロコントローラ](ja/compatible_microcontrollers.md)
* [ドライバ](ja/hardware_drivers.md)
* [ADC ドライバ](ja/adc_driver.md)
* [オーディオドライバ](ja/audio_driver.md)
* [I2C ドライバ](ja/i2c_driver.md)
* [SPI ドライバ](ja/spi_driver.md)
* [WS2812 ドライバ](ja/ws2812_driver.md)
* [EEPROM ドライバ](ja/eeprom_driver.md)
* [シリアル ドライバ](ja/serial_driver.md)
* [UART ドライバ](ja/uart_driver.md)
* [GPIO 制御](ja/internals_gpio_control.md)
* [キーボード ガイドライン](ja/hardware_keyboard_guidelines.md)

Some files were not shown because too many files have changed in this diff Show More