Commit Graph

521 Commits

Author SHA1 Message Date
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
f346c8400c
Update ChibiOS-Contrib (#17540) 2022-07-03 00:47:28 +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
Joel Challis
59e28b8958
Add cli command to import keyboard|keymap|kbfirmware (#16668) 2022-07-02 21:50:09 +10:00
QMK Bot
d6c39490df Merge remote-tracking branch 'origin/master' into develop 2022-07-01 21:21:11 +00:00
Joel Challis
9d70162d53
Allow locate_keymap to handle DEFAULT_FOLDER (#17529) 2022-07-01 22:20:32 +01: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
QMK Bot
fb05b491e7 Merge remote-tracking branch 'origin/master' into develop 2022-06-29 23:34:39 +00:00
Joel Challis
7326a0051b
Allow module check to error out when piped to /dev/null (#17505) 2022-06-30 00:33:59 +01:00
QMK Bot
33b62b6867 Merge remote-tracking branch 'origin/master' into develop 2022-06-26 22:59:06 +00:00
Joel Challis
fa3dd373b4
Fix error message in generated code (#17484) 2022-06-27 08:58:31 +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
QMK Bot
99614bd89a Merge remote-tracking branch 'origin/master' into develop 2022-06-25 19:41:30 +00:00
precondition
e13bb58c40
Only omit paths containing "/keymaps/" (#17468)
This allows keyboard names to contain the word "keymaps"
2022-06-25 20:40:49 +01:00
Joel Challis
1a400d8644
Allow encoder config from info.json (#17295) 2022-06-20 20:15:06 -07:00
Joel Challis
17ec1650fd
Additional schema fixes (#17414) 2022-06-18 15:30:46 +10:00
Nick Brassel
999b91fbd9
SPI Bugfix for ChibiOS 21.11.1 -- also rollback AW20216 mode change issue. (#17371) 2022-06-17 08:03:38 +10:00
precondition
0b1bed1d41
Use --exclude-from=.gitignore in place of --exclude-standard (#17399) 2022-06-16 11:20:12 -07:00
Ryan
ef80a1dd67
Update V-USB submodule (#17385) 2022-06-16 21:02:40 +10:00
QMK Bot
589bdedc47 Merge remote-tracking branch 'origin/master' into develop 2022-06-15 21:44:32 +00:00
Joel Challis
d3dfa83b40
Fix clean arg handling (#17392) 2022-06-15 22:43:54 +01:00
QMK Bot
4cde5c243b Merge remote-tracking branch 'origin/master' into develop 2022-06-14 13:55:32 +00:00
Joel Challis
f37de9a212
Perform stricter lint checks (#17348) 2022-06-14 14:54:46 +01:00
Ryan
0d64038b73
Update LUFA submodule (#17368) 2022-06-13 09:17:24 +10:00
Ryan
af6435d44d
qmk doctor: show arch for macOS (#17356) 2022-06-11 19:10:09 +01:00
QMK Bot
6b838785b7 Merge remote-tracking branch 'origin/master' into develop 2022-06-10 10:45:24 +00:00
Joel Challis
92665aef33
Promote 'layouts require matrix data' to api error (#17349) 2022-06-10 11:44:48 +01:00
Joel Challis
7baf9b3f35
Promote label with newlines to lint error (#17347) 2022-06-10 11:44:23 +01:00
QMK Bot
474b4083ae Merge remote-tracking branch 'origin/master' into develop 2022-06-09 20:02:58 +00:00
Joel Challis
a599550adb
Add support for linting deprecated and removed functionality (#17063)
* Add support for more lint warnings/errors

* Develop currently needs extra deps installed

* Lint a few more scenarios

* fix tests
2022-06-09 21:02:16 +01:00
QMK Bot
67e80780bb Merge remote-tracking branch 'origin/master' into develop 2022-05-30 22:44:05 +00:00
Joel Challis
2879573688
Fix various lint errors (#17255)
* Fix various lint errors

* reduce complexity
2022-05-30 23:43:36 +01:00
Dasky
2de70e6f2d
Add uf2-split-* make targets. (#17257) 2022-05-31 08:04:50 +10:00
Joy Lee
1c7e8b9a9d
Added support for Wb32fq95 (#16871) 2022-05-23 15:57:24 +10:00
Joel Challis
608fa5154c
Data driven g_led_config (#16728) 2022-05-16 07:39:29 +10:00
Nick Brassel
be9fa68785
Also format *.hpp files. (#16997) 2022-05-04 05:48:41 +10:00
Nick Brassel
a727bd6463
Update ChibiOS-Contrib (#16915) 2022-04-22 09:14:00 +01: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
Joel Challis
2cfbc1445c
Allow new-keyboard to use development_board presets (#16785) 2022-04-08 20:12:32 +01:00
Erovia
85de020573
CLI: Bump the 'jsonschema' version (#16635)
* CLI: Bump the 'jsonschema' version

Update the used meta-schema from Draft 7 from 2018 to the latest one,
Draft 2020-12.
Currently, the validator falls back to Draft 7 if the newer validator is
not available. Draft 2020-12 support was introduced to 'jsonschema' in
version 4.0.0.

* Fix formatting
2022-04-06 19:46:16 +01:00
Joel Challis
c0ac3f7372
Add frameworking for development board presets (#16637)
* Add frameworking for development board presets

* Update lib/python/qmk/info.py

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

Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-04-03 18:45:10 +01:00
QMK Bot
d75ae52fe6 Merge remote-tracking branch 'origin/master' into develop 2022-03-30 20:55:16 +00:00
Ryan
64974a7f8f
yapf: disable arithmetic predecence indication (#16749) 2022-03-30 21:54:13 +01:00
QMK Bot
03f9b8db15 Merge remote-tracking branch 'origin/master' into develop 2022-03-27 20:29:09 +00:00
Erovia
8c0198334c
CLI: Lint non-data driven macros in info.json (#16739)
* CLI: Lint non-data driven macros in info.json

Macros in info.json should either have the "matrix" key with the matrix
data or should should be also present in <keyboard>.h

* Add verification of matrix data

* Use generic '<keyboard>.h' in output

* Add keyboard name to output

* Make C layout macro finding more robust

The old code missed C macros if they had whitespace between '#' and
'define' or had whitespace before '#'.
2022-03-27 21:28:36 +01:00
QMK Bot
05ac5727f2 Merge remote-tracking branch 'origin/master' into develop 2022-03-26 19:15:58 +00:00
Erovia
55e5daa868
Fix bug when 'info.json' lookup escapes keyboard dir (#16734) 2022-03-26 19:15:25 +00:00
QMK Bot
2957f60dc1 Merge remote-tracking branch 'origin/master' into develop 2022-03-24 20:14:36 +00:00
Erovia
efc9c525b1
CLI: Add 'via2json' subcommand (#16468) 2022-03-24 21:13:40 +01:00
Joel Challis
23f365f8bc
Ignore transport defaults if SPLIT_KEYBOARD is unset (#16706)
* Ignore transport defaults if SPLIT_KEYBOARD is unset

* keep exists check
2022-03-22 10:48:13 +00:00
Joel Challis
4f8cc32cf5
Extend 'qmk info' to handle keymap level overrides (#16702) 2022-03-21 11:57:41 +01:00
QMK Bot
729d7c2b2e Merge remote-tracking branch 'origin/master' into develop 2022-03-19 20:59:03 +00:00
Ryan
2f095b8925
qmk.path.FileType: fix argument handling (#16693)
* qmk.path.FileType: pass in mode as first argument

* Better solution

* Grammar...
2022-03-19 20:58:30 +00:00
QMK Bot
3a08deb7fe Merge remote-tracking branch 'origin/master' into develop 2022-03-18 16:02:57 +00:00
Joel Challis
ed773ab73c
Relocate CLI git interactions (#16682) 2022-03-18 16:02:24 +00:00
zvecr
bffb209eee Merge remote-tracking branch 'origin/master' into develop 2022-03-18 01:15:23 +00:00
Joel Challis
e5823b5650
[CLI] Add common util for dumping generated content (#16674) 2022-03-18 01:09:29 +00:00
QMK Bot
31eb82c911 Merge remote-tracking branch 'origin/master' into develop 2022-03-10 21:34:11 +00:00
Erovia
b75f6691a1
CLI: Fix 'cd' subcommand on Windows (#16610)
The 'cd' subcommand was failing as the current shell's Windows path was
mangled while milc processed it.
Using 'subprocess' directly avoids this issue and an extra layer of
subshell.
2022-03-10 21:33:41 +00:00
Nick Brassel
8d5eacb7dd
Add support for encoder mapping. (#13286) 2022-03-09 19:29:00 +11:00
QMK Bot
49bc3b530b Merge remote-tracking branch 'origin/master' into develop 2022-03-08 20:46:24 +00:00
Ryan
b593cfccbd
qmk info: Nicer rendering of big-ass enter (#16541)
* `qmk info`: Nicer rendering of big-ass enter

* Formatting...
2022-03-08 20:45:47 +00:00
Ryan
75544d9127
Move Doxygen docs to subdirectory (#16561) 2022-03-07 11:22:22 +00:00
Nick Brassel
44f1bd9b3a
ChibiOS 21.11.1 update. (#16251)
* ChibiOS 21.11.1 update.

* `uf2-tinyuf2` => `tinyuf2`

* Updated chibios-contrib, fixup preprocessor for tinyuf2 bootloader.

* Fixup keychron L433 boards.

* Makefile cleanup.

* RISC-V build fixes.

* Fixup RISC-V build.
2022-03-07 21:04:22 +11:00
QMK Bot
f7512d61bd Merge remote-tracking branch 'origin/master' into develop 2022-03-05 22:55:11 +00:00
Ryan
8e9d45d270
qmk info: nicer rendering of ISO enter (#16466) 2022-03-05 22:54:32 +00:00
Ryan
7d41639d54
Map data driven DESCRIPTION as string literal (#16523) 2022-03-05 00:20:34 +00:00
Ryan
ace0603f4f
Change data driven "str" type to represent a quoted string literal (#16516)
* Change data driven "str" type to represent a quoted string literal

* Update docs
2022-03-04 13:25:24 +00:00
QMK Bot
36e47cb3aa Merge remote-tracking branch 'origin/master' into develop 2022-02-28 20:03:22 +00:00
Erovia
fbfd5312b9
CLI: Validate JSON keymap input (#16261)
* Fix schema validator

It should use the passed schema.

* Add required attributes to keymap schema

* Rework subcommands to validate the JSON keymaps

The 'compile', 'flash' and 'json2c' subcommands were reworked to add
JSON keymap validation so error is reported for non-JSON and
non-compliant-JSON inputs.

* Fix required fields in keymap schema

* Add tests

* Fix compiling keymaps directly from keymap directory

* Schema should not require version for now.
2022-02-28 20:02:39 +00:00
QMK Bot
3c7c9bdd86 Merge remote-tracking branch 'origin/master' into develop 2022-02-27 12:40:01 +00:00
Joel Challis
779c7debcf
Fix issues with data driven split keyboards (#16457) 2022-02-27 13:39:24 +01:00
Joel Challis
e4a6afa369
Rework generate-api CLI command to use .build directory (#16441) 2022-02-27 12:28:51 +01:00
Joel Challis
77cdb20e16
Revert CLI default for manufacturer (#16467) 2022-02-27 10:34:26 +00:00
Joel Challis
cf31355f08
Changelog 2022q1 (#16380)
* Initial changelog pass

* update generate-develop-pr-list content

* Fix bad word-ness

* Fix generate-develop-pr-list ignores

* Update docs/ChangeLog/20220226.md

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2022-02-23 17:33:08 +00:00
QMK Bot
bd01e1cee8 Merge remote-tracking branch 'origin/master' into develop 2022-02-22 18:32:43 +00:00
QMK Bot
8aec20c0da
Format code according to conventions (#16435) 2022-02-22 18:29:47 +00:00
fauxpark
a44abeb99a Merge remote-tracking branch 'upstream/master' into develop 2022-02-22 03:04:41 +11:00
Ryan
f30f963a0b
Internal docs generation updates (#16411) 2022-02-21 15:47:44 +00:00
Joel Challis
b0621223bc
Various fixes for new-keyboard (#16358) 2022-02-15 01:42:58 +00:00
Erovia
23c238a180
CLI: Minor additions #12795 (#16276) 2022-02-14 12:02:35 +01:00
Joel Challis
f7e7671f69
Migrate more makefile utilities to builddefs sub-directory (#16002) 2022-02-10 09:45:51 -08:00
Joel Challis
2e279f1b88
Initial pass at data driven new-keyboard subcommand (#12795)
* Initial pass at a data driven keyboard subcommand

* format

* lint

* Handle bootloader now its mandatory
2022-02-09 06:03:30 +11:00
Nick Brassel
8fd8b2dc92
Skip categorisation of PR if it's only for code formatting. (#16215) 2022-02-05 07:36:57 +11:00
Nick Brassel
db43e45077
Ensure version.h is recreated each build. (#16188) 2022-02-04 07:36:02 +11:00
Drashna Jaelre
d4dc743a85
Fix issues with Python Tests (#16162)
* Reformat python due to yapf changes

* Fix pytest keymap list test

* revert formatting

* Use contra, because, well

https://www.reddit.com/r/MechanicalKeyboards/comments/8riofq/did_i_kill_my_contra/
2022-02-02 15:44:42 +11:00
QMK Bot
7d38aec3ac Merge remote-tracking branch 'origin/master' into develop 2022-02-02 04:31:44 +00:00
Ryan
c9f88d7c67
qmk doctor: display qmk_firmware version tag (#16155) 2022-02-01 20:31:42 -08:00
Nick Brassel
6e2b03cf69
Fixup multibuild filegen (#16166)
* Add env variable support to multibuild.

* Generate version.h in build-specific location.
2022-02-02 15:30:22 +11:00
Nick Brassel
77062e9a36
Add L432, L442. (#16016) 2022-01-24 08:49:36 +11:00
QMK Bot
fe1f53ce8f Merge remote-tracking branch 'origin/master' into develop 2022-01-20 20:12:20 +00:00
Gigahawk
1a676c927f
Add missing STM32F405 definition in qmk.constants (#15937) 2022-01-21 07:11:24 +11:00
Ryan
c72ed7c024
CLI: Parse USB device version BCD (#14580)
* CLI: Parse USB device version BCD

* Apply suggestions
2022-01-17 08:44:34 +11:00
Ryan
5fb93934d0
Fixes for bootloader refactor build failures (#15638) 2022-01-06 06:55:46 +11:00
QMK Bot
c089541938 Merge remote-tracking branch 'origin/master' into develop 2022-01-03 22:42:47 +00:00
Joel Challis
550c9a315f
Refix "No C files in filelist: None" (#15728) 2022-01-03 22:42:15 +00:00
QMK Bot
73e372d920 Merge remote-tracking branch 'origin/master' into develop 2022-01-03 21:55:23 +00:00
Joel Challis
aea7155423
Fix "No C files in filelist: None" (#15560)
* Fix "No C files in filelist: None"

* Align other commands

* force absolute paths
2022-01-03 21:54:46 +00:00
QMK Bot
dde5cd1c54 Merge remote-tracking branch 'origin/master' into develop 2021-12-29 21:36:08 +00:00