Commit Graph

720 Commits (8a6b7003f70a2d7947236849d46753cbc91440a3)

Author SHA1 Message Date
Joel Challis 20474ae232
Fix CLI community detection (#19562) 2023-01-11 12:38:35 +11:00
Joel Challis b57714f793
`qmk doctor` - Handle timeouts while checking binaries (#19549) 2023-01-09 09:27:41 +00:00
Joel Challis 1b045b1e60
Handle doctor permission issues while checking udev (#19548) 2023-01-09 08:21:21 +00:00
Joel Challis 974a1eaf2a
Ignore defaults.hjson values if already set (#19511)
* Ignore defaults.hjson values if already set

* Add warning when nothing is merged
2023-01-07 17:05:53 +00:00
Joel Challis 5c730d971e
Migrate submodule dirty check to CLI (#19488) 2023-01-06 04:16:52 +00:00
QMK Bot b2384f1809 Merge remote-tracking branch 'origin/master' into develop 2023-01-05 23:41:28 +00:00
Sergey Vlasov 4a7d65b9d7
Fix MATRIX_COLS and MATRIX_ROWS generation for custom matrix (#19508)
The code which generated the MATRIX_COLS and MATRIX_ROWS defines from
the JSON information was checking the presence of the `matrix_pins` key,
which may not exist if a custom matrix is used.  Check the presence of
`matrix_size` instead.
2023-01-05 23:40:53 +00:00
zvecr 115c241f21 Merge remote-tracking branch 'origin/master' into develop 2023-01-04 04:17:58 +00:00
Nick Brassel 691668340c
Add `qmk mass-compile`, which intends to supercede `qmk multibuild` whilst providing support for filtering as per data-driven definitions. (#18971) 2023-01-04 04:10:18 +00:00
Joel Challis c345278101
Replace list_keyboards.sh with CLI calls (#19485) 2023-01-03 14:15:29 +11:00
Joel Challis b297531dbf
Migrate 'make git-submodule' to CLI command (#19479) 2023-01-03 09:11:57 +11:00
Joel Challis 3a5a4c708f
Report submodule status when not valid work-tree (#19474) 2023-01-03 09:00:29 +11:00
Joel Challis 24adecd922
Implement XAP style merge semantics for DD keycodes (#19397) 2023-01-01 19:16:38 +00:00
Joel Challis e4cfbd2532
Allow CLI to flash .uf2 files (#19462) 2023-01-01 15:51:29 +11:00
QMK Bot 422fd8aed8 Merge remote-tracking branch 'origin/master' into develop 2023-01-01 00:44:40 +00:00
Joel Challis b8e12eed80
WSL `qmk flash firmware.bin` workaround (#19434) 2023-01-01 11:44:33 +11:00
Joel Challis 61696fda83
CLI flashers should allow files outside qmk_firmware folder (#19454) 2023-01-01 11:43:30 +11:00
jack 003cee0098
Validate keyboard name before accepting further input (#19394) 2022-12-23 18:18:57 +00:00
QMK Bot 8f506b5bc2 Merge remote-tracking branch 'origin/master' into develop 2022-12-23 11:12:33 +00:00
Joel Challis ab1898e660
Minor alignment of rgb_breathe_table generator (#19403) 2022-12-23 11:11:56 +00:00
Joel Challis e5721bbd37
Remaining DD keymap_extras migration (#19110)
* Parse headers to data

* Regen headers from data
2022-12-21 23:35:23 +00: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
jpe230 102f22f7e9
[Core] Quantum Painter - LVGL Integration (#18499)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-12-13 07:51:14 +11:00
Stefan Kerkmann 9dc3f79196
[RP2040] update i2c drivers to reflect peripheral number (#19277) 2022-12-11 14:04:29 +01:00
Joel Challis 9bc7e9afbd
Initial uk+us DD keymap_extras migration (#19031) 2022-12-09 00:54:52 +00:00
QMK Bot 5a2ed77a08 Merge remote-tracking branch 'origin/master' into develop 2022-12-08 16:31:37 +00:00
Joel Challis 6e6039995b
Add lint check for keyboard/keymap license header (#19215) 2022-12-09 03:31:02 +11:00
Joel Challis 32dabd5320
Align new-keymap with new-keyboard (#19229) 2022-12-03 12:04:06 +00:00
Joel Challis 82760bcea6
Apply suggested workaround for #18371 (#19226)
Fixes undefined
2022-12-03 11:42:54 +11:00
Joel Challis 3e59bbd731
Automate "Data Driven" migrations (#17820) 2022-11-30 20:08:54 +00:00
Joel Challis 5d516ac2e2
Ignore some layout macro names from lint (#19207) 2022-11-30 06:39:41 +00:00
Joel Challis 17fec52b0f
Extend layout lint checks (#19200)
* Extend layout lint checks

* Apply suggestions from code review

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

* Fix function comment

Co-authored-by: Ryan <fauxpark@gmail.com>
2022-11-30 04:27:48 +00:00
Joel Challis cb57ec9c02
Revert lib/usbhost changes (#19165) 2022-11-27 02:05:04 +00:00
QMK Bot 2582992381 Merge remote-tracking branch 'origin/master' into develop 2022-11-25 17:32:45 +00:00
Ryan 8f9b49dc5b
Fix build failures for `bastardkb/tbk` and `jels/boaty` (#19152) 2022-11-25 17:31:58 +00:00
Joel Challis af6aa225eb
Additional DD backlight config (#19124)
* Additional dd backlight config

* Update docs
2022-11-23 18:48:22 +00:00
Joel Challis dfa53900dc
Publish constants metadata to API (#19143)
* Publish metadata

* Ensure content is sorted
2022-11-23 18:01:07 +00:00
Drashna Jaelre 1a3f2130d5
Revert "Add pointing device support to data driven config (#18215)" (#19063) 2022-11-15 17:44:09 +11:00
Drashna Jaelre d3073ef494
Add pointing device support to data driven config (#18215)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-11-14 03:05:46 +11:00
Joel Challis dc9162438d
Reject json with duplicate keys? (#18108) 2022-11-09 15:50:43 +00:00
Ryan d789b4b7d9
Improve LED config parsing error messages (#19007) 2022-11-09 14:02:44 +00:00
Nick Brassel 9daf77b593
Add raw output option for QGF/QFF files. (#18998) 2022-11-08 15:47:07 +00:00
Joel Challis 7666c966d5
Publish hjson files as json (#18996) 2022-11-08 03:03:02 +00:00
Ryan 479d8de622
Format DD mappings and schemas (#18924) 2022-11-08 01:05:08 +00:00
Nick Brassel 4d33f356a6
Macro keycode name refactoring (#18958) 2022-11-05 23:22:11 +11:00
Joel Challis a69ab05dd6
Initial DD keycode migration (#18643)
* Initial DD keycode migration

* Sort magic keycodes
2022-11-05 10:30:09 +00:00
Joel Challis 345f19a5d7
Add converter support to keymap.json (#18776) 2022-10-20 18:21:17 -07:00
Joel Challis 0b41c13509
[CLI] Ensure consistent clean behaviour (#18781) 2022-10-20 14:35:27 +01:00
Joel Challis aa8e0a3e7a
Build correctly when out of tree (#18775) 2022-10-19 17:43:25 +01:00
Joel Challis fc0330a54a
Correctly build keymap.json containing additional config (#18766) 2022-10-19 11:29:44 +01:00
QMK Bot e93dc66733 Merge remote-tracking branch 'origin/master' into develop 2022-10-12 21:41:29 +00:00
Joel Challis 4dec07741b
Remove unused LED_INDICATORS constant (#18686) 2022-10-12 22:40:53 +01:00
Stefan Kerkmann 976f454df0
[Bug] Update ChibiOS-Contrib for USB IRQ and bus handling fixes (#18574) 2022-10-03 18:57:13 +01:00
Ryan 675d91b813
Generate DD RGBLight/LED/RGB Matrix animation defines (#18459) 2022-09-26 01:04:21 +01:00
Stefan Kerkmann 828a1db035
Update chibios-contrib for RP2040 i2c fixes take 2 (#18455)
...includes missing system locking inside a timeout waiting condition and
updates to the rp2040 linker file.
2022-09-22 20:57:50 +01:00
Ryan 2f48d300f4
Normalise info_config.h define generation (#18439)
* Normalise info_config.h define generation

* format

* Fix tests

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

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

Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-09-21 18:31:57 +01:00
Ryan 591701cdf9
Fix incorrect g_led_config generation (#18431) 2022-09-21 02:41:18 +01:00
Stefan Kerkmann 5a563444ac
Update ChibiOS to latest 21.11.2 (#18428)
This includes a hotfix for RP2040 deadlocks due to XIP cache misses in
the ChibiOS virtual timer implementation.
2022-09-20 01:14:43 +01:00
Stefan Kerkmann 613e3f68b5
Update pico-sdk to version 1.4.0 (#18423)
...which contains fixes for GCC warnings.
2022-09-19 19:30:16 +01: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
QMK Bot cf0494e458 Merge remote-tracking branch 'origin/master' into develop 2022-09-16 08:19:51 +00:00
Nick Brassel cf88d95613
Add ability to remove temporary files during multibuild. (#18381) 2022-09-16 09:19:10 +01:00
Ryan bc0756f294
Disconnect `usb.device_ver` (#18259) 2022-09-16 12:05:25 +10:00
Joshua Diamond 23e12497b2 Merge remote-tracking branch 'origin/master' into develop 2022-09-12 18:57:58 -04:00
Joel Challis 725df1278b
Fix '_RIGHT' matrix pins lint error (#18320) 2022-09-09 21:22:55 +01:00
Ryan bb6f028833
Move bootloader.mk to platforms (#18228) 2022-08-31 07:17:24 -07:00
QMK Bot ba7030d216 Merge remote-tracking branch 'origin/master' into develop 2022-08-31 05:20:33 +00:00
Ryan 6f804f76b4
`qmk lint`: fix TypeError (#18226) 2022-08-31 15:20:00 +10:00
Jeff Epler 9632360caa
Use a macro to compute the size of arrays at compile time (#18044)
* Add ARRAY_SIZE and CEILING utility macros

* Apply a coccinelle patch to use ARRAY_SIZE

* fix up some straggling items

* Fix 'make test:secure'

* Enhance ARRAY_SIZE macro to reject acting on pointers

The previous definition would not produce a diagnostic for
```
int *p;
size_t num_elem = ARRAY_SIZE(p)
```
but the new one will.

* explicitly get definition of ARRAY_SIZE

* Convert to ARRAY_SIZE when const is involved

The following spatch finds additional instances where the array is
const and the division is by the size of the type, not the size of
the first element:
```
@ rule5a using "empty.iso" @
type T;
const T[] E;
@@

- (sizeof(E)/sizeof(T))
+ ARRAY_SIZE(E)

@ rule6a using "empty.iso" @
type T;
const T[] E;
@@

- sizeof(E)/sizeof(T)
+ ARRAY_SIZE(E)
```

* New instances of ARRAY_SIZE added since initial spatch run

* Use `ARRAY_SIZE` in docs (found by grep)

* Manually use ARRAY_SIZE

hs_set is expected to be the same size as uint16_t, though it's made
of two 8-bit integers

* Just like char, sizeof(uint8_t) is guaranteed to be 1

This is at least true on any plausible system where qmk is actually used.

Per my understanding it's universally true, assuming that uint8_t exists:
https://stackoverflow.com/questions/48655310/can-i-assume-that-sizeofuint8-t-1

* Run qmk-format on core C files touched in this branch

Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-08-30 10:20:04 +02:00
Ryan 3adaf6a46a
Handle escaping of manufacturer/product strings (#18194) 2022-08-28 19:35:17 +01:00
Ryan d983251c10
Switch over MANUFACTURER and PRODUCT to string literals (#18183) 2022-08-28 09:59:40 -07:00
Ryan 24720400a8
Update LUFA submodule (#18168) 2022-08-26 12:19:34 +10:00
QMK Bot 129c60946c Merge remote-tracking branch 'origin/master' into develop 2022-08-24 19:26:18 +00:00
Joel Challis 3d8c624698
Update invalid pip install flag (#18146) 2022-08-24 20:25:16 +01:00
Sergey Vlasov 7ee55b1754
Fix PID value for the Keyboardio Atreus 2 bootloader (#18116)
Copy the correct PID from `util/udev/50-qmk.rules`.
2022-08-20 15:59:17 +01:00
Erovia 5e2ffe7d8f
CLI: Teaching the CLI to flash binaries (#16584)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-08-20 15:39:19 +10:00
Joel Challis 3c745caf61
Remove legacy bootmagic cli parsing (#18099) 2022-08-19 01:56:48 +01:00
Joel Challis 9550cc464c
Fix new-keyboard default for RP2040 bootloader (#18100) 2022-08-19 01:48:33 +01:00
Joel Challis fc7e9efd21
Improve importer workflow (#17707) 2022-08-13 14:39:56 +01:00
Nick Brassel 8133f40c26
Update to latest ChibiOS-Contrib. (#18016) 2022-08-13 08:54:32 +10:00
Nick Brassel 154d35ac14
Remove `UNUSED_PINS` (#17931) 2022-08-06 23:23:35 +10:00
QMK Bot 820371c31b Merge remote-tracking branch 'origin/master' into develop 2022-08-06 12:38:13 +00:00
Ryan 37345e2ace
Provide users with replacements for deprecated/invalid functionality where applicable (#17604) 2022-08-06 22:37:40 +10:00
Joel Challis 897403c4a7
Publish data as part of API generation (#17020) 2022-08-06 16:14:29 +10:00
QMK Bot 00c1653a15 Merge remote-tracking branch 'origin/master' into develop 2022-07-27 09:29:50 +00:00
Albert Y 3285659690
CLI compatibility for MacOS (#17811) 2022-07-27 10:29:10 +01:00
Stefan Kerkmann 59d940c9f3
ChibiOS-Contrib: Update for RP2040 PWM and I2C driver (#17817) 2022-07-27 10:06:18 +02:00
QMK Bot 61da9286a1 Merge remote-tracking branch 'origin/master' into develop 2022-07-26 16:38:06 +00:00
Nick Brassel d1434b6d75
Make `qmk doctor` print out the last log entry for upstream/{master,develop}, including dates (#17713) 2022-07-26 17:37:28 +01:00
QMK Bot 8254d73fd4 Merge remote-tracking branch 'origin/master' into develop 2022-07-23 16:42:55 +00:00
Niko Wenselowski 1f42a8ccdd
Fix test logic to check for both keymaps (#17761)
Python will evaluate first the left and then the right side of the and operator.

The left side would previously return True based on the truthiness logic that treats any non-emptry string as true.

It would not check if the desired keymap exists.

If the left side is true it will evaluate the right side which will check for the existance of a specific keymap.

With this change the check for existance of two keymaps is implemented.
2022-07-23 17:42:19 +01:00
Nick Brassel 1cdde7ba6a
Fix AVR compilation of FNV by using standard integer typenames. (#17716) 2022-07-19 05:30:01 +01:00
Joel Challis 35d78aa8a4
More DD encoder fixes (#17615) 2022-07-11 10:51:39 +01:00
QMK Bot 39e1e27ea9 Merge remote-tracking branch 'origin/master' into develop 2022-07-09 12:33:33 +00:00
Nick Brassel 561c5e1d7a
Add line to multibuild output log showing the actual build target. (#17606) 2022-07-09 22:32:43 +10:00
QMK Bot 30f2556ae9 Merge remote-tracking branch 'origin/master' into develop 2022-07-08 21:50:28 +00:00
Dasky 06310e81e9
Allow only col or row pins for *_right extraction. (#17590) 2022-07-08 22:49:55 +01:00
Joel Challis 81d317aa87
Fix rgbkb/sol/rev2 build issues (#17601) 2022-07-08 22:48:48 +01: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 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
Joel Challis 1a8a842cfb
Fix compilation-database command under MSYS (#15652)
* Fix compilation-database command under MSYS

* Add comment
2021-12-30 08:35:35 +11:00