Commit Graph

170 Commits

Author SHA1 Message Date
Drashna Jaelre
2ddad246ce
OLED Driver improvements (#20331)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2023-05-10 14:04:53 -07:00
Xelus22
6a619e6403
[Core] Clean up ISSI drivers, Add IS31FL3736 support (#20572)
Co-authored-by: Pablo Martínez <58857054+elpekenin@users.noreply.github.com>
2023-04-30 12:35:27 +10:00
Drashna Jaelre
cf5626e024
[Bug] Fix compilation issues with PS/2 driver on F4x1 controllers (#20433) 2023-04-12 21:43:27 -07:00
Vladislav Marchenko
9a68472da8
Added PMW3320 driver (#19543) 2023-04-03 12:57:19 +10:00
Ryan
647c2835e6
WS2812 driver improvements (#20262) 2023-03-30 12:21:02 +11:00
fauxpark
9602938e9e Merge remote-tracking branch 'upstream/master' into develop 2023-03-29 16:00:41 +11:00
Nick Brassel
6bdbf77238
Add step summary output to CI builds, with failure logs. (#20288) 2023-03-29 15:55:31 +11:00
Nick Brassel
42aa83787f
Optionally keep intermediate file listings in order to do comparisons between builds. (#20237) 2023-03-23 12:48:25 +11:00
Joel Challis
fc05929124
Strip whitespace from CONVERT_TO variables (#19948) 2023-02-28 11:15:54 -08:00
Joel Challis
bda28fa384
Hide hex output when building uf2 (#19940) 2023-02-26 15:24:43 +11:00
Drashna Jaelre
fe02abc479
[Core] Tri Layer Keys (#19795)
Co-authored-by: wilba <wilba@wilba.tech>
Co-authored-by: Pablo Martínez <58857054+elpekenin@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-02-12 10:23:07 +11:00
QMK Bot
cc9520b7a0 Merge remote-tracking branch 'origin/master' into develop 2023-01-30 08:48:34 +00:00
Nick Brassel
e296d67146
Accumulate version.h generator flags. (#19716) 2023-01-30 08:47:46 +00:00
Ryan
242b80c63f
Move MIDI code out of tmk_core (#19704) 2023-01-30 18:47:50 +11:00
Joel Challis
80cc6ad187
Fix 19701 merge 2023-01-28 21:16:59 +00:00
Joel Challis
832479c7fb
Split out mcu_selection to platform (#19701) 2023-01-29 07:40:47 +11:00
Joel Challis
27504d974d
Fix converter alias after 19603 (#19644) 2023-01-20 02:41:10 +00:00
Joel Challis
0ce3f6bcfe
De-duplicate platform detection (#19603) 2023-01-19 00:27:00 +00:00
Joel Challis
88ec588ae7
Remove make all-<platform> build targets (#19496) 2023-01-19 10:44:41 +11:00
Joel Challis
12f1a30d16
Add alias support for converters (#19563) 2023-01-18 23:16:33 +00:00
Joel Challis
82a94ea1bd
Add f303 to tinyuf2 bootloader support (#19620) 2023-01-18 22:36:58 +00:00
Joel Challis
0730740add
Add mmoskal/uf2-stm32f103 bootloader support (#19594) 2023-01-15 15:04:32 +00:00
Joel Challis
1bbacec44d
Promote CTPC warning to error (#19565) 2023-01-11 22:44:55 +00:00
Joel Challis
46c85c93f0
Revert "De-duplicate platform detection (#19545)" (#19564)
This reverts commit e11235ee14.
2023-01-11 19:58:27 +00:00
Joel Challis
e11235ee14
De-duplicate platform detection (#19545) 2023-01-11 02:13:32 +00:00
QMK Bot
03a728f71c Merge remote-tracking branch 'origin/master' into develop 2023-01-04 05:07:50 +00:00
Nick Brassel
8e869da1da
Allow for specifying the number of symbols to output. (#19497) 2023-01-04 16:07:13 +11:00
Joel Challis
20ee103399
Remove cmp checks from Makefile (#19480) 2023-01-02 22:26:26 +00:00
Joel Challis
4b2fd42122
Build warning when not valid work-tree (#19475) 2023-01-03 09:12:54 +11:00
Joel Challis
b297531dbf
Migrate 'make git-submodule' to CLI command (#19479) 2023-01-03 09:11:57 +11:00
QMK Bot
83e8e5845a Merge remote-tracking branch 'origin/master' into develop 2022-12-14 20:27:34 +00:00
Nick Brassel
e67e690cf3
Revert to legacy wear-leveling driver by default for F401. (#19328) 2022-12-15 07:27:00 +11:00
Stefan Kerkmann
962e4c0e18
[Test] Reset timer for every unit test and provide timestamps for log messages (#17028) 2022-12-15 02:31:08 +11:00
Ruslan Sayfutdinov
85ee55ff3b
Detect host OS based on USB fingerprint (#18463)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-12-09 03:45:30 +11:00
Nick Brassel
cf3c26533c
Fixup EFL and F4's sector selection. (#19221) 2022-12-02 21:55:28 +11:00
Nick Brassel
bebfdad795
NVRAM refactor, phase 1. (#18969)
* Rename `eeprom_stm32` to `eeprom_legacy_emulated_flash`.

* Rename `flash_stm32` to `legacy_flash_ops`.

* Rename `eeprom_teensy` to `eeprom_kinetis_flexram`.
2022-11-23 08:50:19 +00:00
Nick Brassel
092228571c
Move EFL wear-leveling driver to be default for F1, F3, F4, L4, G4, WB32, GD32V. (#19020) 2022-11-11 23:57:44 +00:00
Nick Brassel
5233c69bc6
Remove thermal printer. (#18959) 2022-11-06 00:15:55 +11:00
Ryan
7ebc396876
compiler.txt: ensure file exists before comparison (#18921) 2022-11-01 00:35:38 +00:00
Joel Challis
64ca14feea
Fix garbled test output (#18822)
* Fix garbled test output

* Correct SRC listing
2022-10-23 04:30:17 +01:00
Joel Challis
575db6949a
Generalise CTPC logic from common_features (#18803) 2022-10-22 12:39:39 -07:00
Ryan
af678521c1
Remove quantum/audio from global VPATH (#18753) 2022-10-20 14:41:45 +01:00
Joel Challis
aa8e0a3e7a
Build correctly when out of tree (#18775) 2022-10-19 17:43:25 +01:00
jpe230
86938fd958
Allow QK_MAKE to work with converters (#18637) 2022-10-08 09:13:58 -07:00
QMK Bot
86ce1d4b04 Merge remote-tracking branch 'origin/master' into develop 2022-10-05 16:55:12 +00:00
George Rodrigues
959f4cbb62
docs: some typos (#18582)
probably hacktoberism
2022-10-05 17:32:07 +01:00
Ryan
c4ff8192c2
Reverse keymap search order (#18449) 2022-10-01 23:36:07 +01:00
QMK Bot
a50b18c9aa Merge remote-tracking branch 'origin/master' into develop 2022-09-30 02:57:53 +00:00
Nick Brassel
168b69654f
Explicitly specify path to RP2040 wear_leveling config file. (#18541) 2022-09-29 19:57:20 -07:00
Ryan
f80058d96e
Start Bluetooth API (#18366) 2022-09-29 18:38:09 +01:00
Nick Brassel
cbbb45c13f
Start moving towards introspection-based data retrieval (#18441) 2022-09-29 18:25:55 +01:00
Alabastard-64
7c1797f52f
[Core] Pointing Device Automatic Mouse Layer (#17962)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-09-23 23:43:55 -07:00
Joel Challis
20f142a772
Tidy up LAYOUT macro generation (#18262) 2022-09-19 01:35:46 +01:00
Drashna Jaelre
fb29c0ae53
[Core] Add getreuer's Autocorrect feature to core (#15699)
Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>
2022-09-17 17:50:54 +10:00
Ryan
3d667f0970
Refactor Unicode feature (#18333) 2022-09-12 08:49:04 -07:00
Ryan
f7d2b001bc
Move Bluetooth-related function calls up to host/keyboard level (#18274)
* Move Bluetooth-related function calls up to host/keyboard level

* Remove pointless set_output() call

* Move bluetooth (rn42) init to end of keyboard_init()

* Enable SPI/UART for ChibiOS targets

* Some more slight tweaks
2022-09-07 19:59:24 +01:00
Ryan
bb6f028833
Move bootloader.mk to platforms (#18228) 2022-08-31 07:17:24 -07:00
Marek Kraus
0237ff0c62
[Core] Rework PS/2 driver selection (#17892)
* [Core] Rework PS/2 driver selection

Enabling and selecting PS/2 driver was using old approach,
so it was reworked to current approach, inspired by Serial
and WS2812 driver selections.

* [Keyboard] Update keyboards using PS/2 to use new PS/2 driver selection

* [Docs] Update PS/2 documentation to use new PS/2 driver selection

* Fix indentation

* [Core] Add PS2 to data driver

* Fix oversight in property name

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

* Add PS/2 pins to data driven mappings

Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-31 09:16:07 +02:00
Ryan
d18698a8e8
Remove deprecated USBasp and bootloadHID bootloader types (#18195) 2022-08-28 21:20:43 +01:00
Joel Challis
43fd647130
Add eeprom defaults for tinyuf2 bootloader (#18042) 2022-08-25 21:17:41 +10:00
Joel Challis
0fcebdcdf1
Swap F4x1 default board files away from blackpill (#17522) 2022-08-19 00:52:50 +01:00
Drashna Jaelre
4da3482872
Fix Emulated EEPROM issue with F466 (#18039) 2022-08-14 17:18:59 +01:00
Mega Mind
fce99f3875
[Controller] Added board config for custom controller STeMCell (#16287)
Co-authored-by: Mariappan Ramasamy <947300+Mariappan@users.noreply.github.com>
Co-authored-by: Mariappan Ramasamy <maari@basis-ai.com>
Co-authored-by: Sadek Baroudi <sadekbaroudi@gmail.com>
2022-08-14 21:27:26 +10:00
Joshua Diamond
2f87abd4ef
Revert "[Core] Re-order user space rules inclusion (#17459)" (#18032) 2022-08-14 07:13:15 +10:00
Albert Y
69fa2d8378
[Core] Re-order user space rules inclusion (#17459) 2022-08-13 23:57:07 +10:00
lokher
a02aff9c77
Add led matrix support for CKLED2001 (#17643) 2022-08-13 14:39:06 +01:00
Drashna Jaelre
3d24845016
[Bug] Fix wrong varaible in encoder block (#18020) 2022-08-12 19:55:59 -07:00
Drashna Jaelre
aed82bc6a0
Move Encoder+Encoder Map from generic features (#18018) 2022-08-12 18:04:02 -07:00
Nick Brassel
543f54a483
[Core] STM32_USB_USE_OTG1 => USB_ENDPOINTS_ARE_REORDERABLE (#17647) 2022-08-04 21:05:16 +10:00
Drashna Jaelre
ee17ffadea
Move Pointing Device code to a subdirectory (#17684) 2022-07-20 17:32:00 +01:00
Drashna Jaelre
12eb6444c6
Add support for PAW3204 Optical Sensor (#17669)
Co-authored-by: gompa <gompa@h-bomb.nl>
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-07-19 17:46:22 -07:00
Stefan Kerkmann
3c58f98929
[Core] PMW33XX drivers overhaul (#17613)
* PMW33XX drivers overhaul

This combines the PMW3389 and PM3360 drivers as they only differ in the
firmware blobs and CPI get and set functions. The following changes have
been made:

* PMW3389 now gets the same multi-sensor feature that is already available on the
  PMW3360.

* Introduced a shared pmw33xx_report_t struct is now directly readable via SPI
  transactions instead of individual byte-sized reads, saving multiple
  copies and bitshift operations.

* pmw33(89/60)_get_report functions had unreachable branches in their motion
  detection logic these have been simplied as much as possible.

* The fast firmware upload option has been removed as this becomes obsolete by
  the newly introduced polled waiting functions for ChibiOS polled waiting

* PMW33(60/89)_SPI_LSBFIRST and PMW33(60/89)_SPI_MODE config options
  have been removed as they don't need to be configurable.

* All PMW3389 and PMW3360 defines have been unified to a PMW33XX prefix
  to reduce code duplication and make the defines interchangeable

* Adjust keyboards to PMW33XX naming scheme
2022-07-14 11:50:00 +02:00
Daniel Kao
5db705d054
Cirque trackpad features: circular scroll, inertial cursor (#17482) 2022-07-12 21:17:40 -07:00
Stefan Kerkmann
d9bb189e25
[Core] Update mpaland/printf to eyalroz/printf fork (#16163)
mpaland printf implementation was abandoned in ~2019 and the fork by
eyalroz is now regarded to be the goto replacement of it. So this commit
incoporates the changes needed to use this fork in QMK.

Note that pointer ptrdiff_t is always supported since commit
51c90f93a97fdaef895783ecbe24569be0db7cb8
2022-07-07 09:27:50 +02:00
Nick Brassel
0e5d67145a
Allow for keymaps array to be implemented in a file other than $(KEYMAP_C) (#17559) 2022-07-05 08:58:35 +10:00
Ryan
ac5e6b6a3b
Tentative Teensy 3.5 support (#14420)
* Tentative Teensy 3.5 support

* Set firmware format to .hex for ARM Teensys

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

* Drop down to 96MHz...

* Bump back up to 120MHz
2022-07-03 00:12:45 +10:00
Ryan
3ecb0a80af
Feature-ify Send String (#17275) 2022-07-02 22:10:08 +10:00
Nick Brassel
5846b40f74
RP2040 emulated EEPROM. (#17519) 2022-07-02 15:18:50 +10:00
Stefan Kerkmann
d717396708
[Core] Add Raspberry Pi RP2040 support (#14877)
* Disable RESET keycode because of naming conflicts

* Add Pico SDK as submodule

* Add RP2040 build support to QMK

* Adjust USB endpoint structs for RP2040

* Add RP2040 bootloader and double-tap reset routine

* Add generic and pro micro RP2040 boards

* Add RP2040 onekey keyboard

* Add WS2812 PIO DMA enabled driver and documentation

Supports regular and open-drain output configuration. RP2040 GPIOs are
sadly not 5V tolerant, so this is a bit use-less or needs extra hardware
or you take the risk to fry your hardware.

* Adjust SIO Driver for RP2040

* Adjust I2C Driver for RP2040

* Adjust SPI Driver for RP2040

* Add PIO serial driver and documentation

* Add general RP2040 documentation

* Apply suggestions from code review

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

Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-06-30 13:19:27 +02:00
Nick Brassel
34e244cecf
Wear-leveling EEPROM drivers: embedded_flash, spi_flash, legacy (#17376) 2022-06-30 07:42:23 +10:00
Nick Brassel
01ecf332ff
Generic wear-leveling algorithm (#16996)
* Initial import of wear-leveling algorithm.

* Alignment.

* Docs tweaks.

* Lock/unlock.

* Update quantum/wear_leveling/wear_leveling_internal.h

Co-authored-by: Stefan Kerkmann <karlk90@pm.me>

* More tests, fix issue with consolidation when unlocked.

* More tests.

* Review comments.

* Add plumbing for FNV1a.

* Another test checking that checksum mismatch clears the cache.

* Check that the write log still gets played back.

Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-06-27 07:18:21 +10:00
precondition
7060cb7b26
Refactor steno and add STENO_PROTOCOL = [all|txbolt|geminipr] (#17065)
* Refactor steno into STENO_ENABLE_[ALL|GEMINI|BOLT]

* Update stenography documentation

* STENO_ENABLE_TXBOLT → STENO_ENABLE_BOLT

TXBOLT is a better name but BOLT is more consistent with the
pre-existing TX Bolt related constants, which all drop the "TX " prefix

* Comments

* STENO_ENABLE_[GEMINI|BOLT|ALL] → STENO_PROTOCOL = [geminipr|txbolt|all]

* Add note on lacking V-USB support

* Clear chord at the end of the switch(mode){send_steno_chord} block

* Return true if NOEVENT

* update_chord_xxx → add_xxx_key_to_chord

* Enable the defines for all the protocols if STENO_PROTOCOL = all

* Mention how to use `steno_set_mode`

* Set the default steno protocol to "all"

This is done so that existing keymaps invoking `steno_set_mode` don't
all suddenly break

* Add data driver equivalents for stenography feature

* Document format of serial steno packets

(Thanks dnaq)

* Add missing comma
2022-06-23 20:43:24 +02:00
Stefan Kerkmann
fe680a8568
[Core] Split ChibiOS usart split driver in protocol and hardware driver part (#16669) 2022-06-18 08:04:17 +10:00
Nick Brassel
fa8fb60279
Dump out the largest symbols in flash and in RAM. (#17397) 2022-06-16 09:55:15 +10:00
Jouke Witteveen
1706da9054
tap-dance: Restructure code and document in more detail (#16394) 2022-06-13 22:12:55 +02:00
Nick Brassel
1085500e89
Rework paths for eeprom locations. (#17326)
* Rework paths for eeprom locations.

* File relocation.

* Wrong file move.

* Fixup test paths.
2022-06-08 09:42:35 +10:00
Stefan Kerkmann
e89478eb0f
[Core] Update C standard to GNU11, C++ to GNU++14 (#17114) 2022-06-06 08:47:22 +10:00
Nick Brassel
08c556b78b
Add keymap wrappers for introspection into the keymap. (#17229)
* Introspection handlers for keymaps.

* Renaming.
2022-06-05 10:26:02 +10:00
Nick Brassel
8545473307
Removes terminal from QMK. (#17258) 2022-05-30 22:38:08 -07:00
Joy Lee
1c7e8b9a9d
Added support for Wb32fq95 (#16871) 2022-05-23 15:57:24 +10:00
Nick Brassel
5816288926
Warn about LTO with arm_atsam, not ChibiOS. (#17106) 2022-05-16 15:29:55 +10:00
Joel Challis
608fa5154c
Data driven g_led_config (#16728) 2022-05-16 07:39:29 +10:00
Pascal Getreuer
68b16bba68
[Core] Add Caps Word feature to core (#16588)
Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-05-14 16:00:32 +10:00
QMK Bot
84ffd4f72d Merge remote-tracking branch 'origin/master' into develop 2022-05-06 12:18:51 +00:00
Ryan
8c23f87c51
Ensure .hex file output for ARM Teensys (#17014) 2022-05-06 13:18:03 +01:00
Joy Lee
25f849b397
Update wb32-dfu (#16438) 2022-04-19 21:21:12 +10:00
Joel Challis
92a61aa0cd
Implement XAP 'secure' core requirements (#16843)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-04-16 11:13:05 -07:00
Nick Brassel
1f2b1dedcc
Quantum Painter (#10174)
* Install dependencies before executing unit tests.

* Split out UTF-8 decoder.

* Fixup python formatting rules.

* Add documentation for QGF/QFF and the RLE format used.

* Add CLI commands for converting images and fonts.

* Add stub rules.mk for QP.

* Add stream type.

* Add base driver and comms interfaces.

* Add support for SPI, SPI+D/C comms drivers.

* Include <qp.h> when enabled.

* Add base support for SPI+D/C+RST panels, as well as concrete implementation of ST7789.

* Add support for GC9A01.

* Add support for ILI9341.

* Add support for ILI9163.

* Add support for SSD1351.

* Implement qp_setpixel, including pixdata buffer management.

* Implement qp_line.

* Implement qp_rect.

* Implement qp_circle.

* Implement qp_ellipse.

* Implement palette interpolation.

* Allow for streams to work with either flash or RAM.

* Image loading.

* Font loading.

* QGF palette loading.

* Progressive decoder of pixel data supporting Raw+RLE, 1-,2-,4-,8-bpp monochrome and palette-based images.

* Image drawing.

* Animations.

* Font rendering.

* Check against 256 colours, dump out the loaded palette if debugging enabled.

* Fix build.

* AVR is not the intended audience.

* `qmk format-c`

* Generation fix.

* First batch of docs.

* More docs and examples.

* Review comments.

* Public API documentation.
2022-04-13 18:00:18 +10:00
Nick Brassel
ec4f655333
Add warning for CTCP/CONVERT_TO_PROTON_C. (#16782) 2022-04-03 19:17:38 +01:00
Joel Challis
1660b2d2e2
Refactor CTPC logic to allow future converters (#16621)
* Refactor CTPC logic to allow future converters

* Update builddefs/converters.mk

Co-authored-by: Stefan Kerkmann <karlk90@pm.me>

Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-04-03 18:22:52 +01:00