Commit Graph

275 Commits

Author SHA1 Message Date
Josh Klar
f79e508566
fix(lint): lint all the things; be more flexible in boards dir 2021-06-20 13:59:59 -07:00
Josh Klar
eb41d704b0
fix(split): do not attempt to send HID from slave sides of split boards, resolves infinite hang after single UART send 2021-06-20 13:55:18 -07:00
Josh Klar
aeee945728
fix(keys): force gc collection in keys setup to reduce memory fragmentation, probably at cost of performance 2021-06-20 13:55:18 -07:00
Josh Klar
6f8eb425b1
fix: allow userspace setting of Split.debug_enabled 2021-06-20 13:55:18 -07:00
Gigahawk
6d5b99d78d
Dynamically create core key definitions as required (#200)
* Dynamically allocate keys as required

* Restore comments

* Run linter

* Move key definitions into a dict

* Revert "Move key definitions into a dict"

This reverts commit 49ac7c2e40.
2021-06-20 13:55:18 -07:00
Josh Klar
66788c29ca
fix(split): now able to send a single keydown, but nothing else, from secondary parts of split boards 2021-06-20 13:55:18 -07:00
Kyle Brown
33408dc228
Lily58 works. Wired splits still don't 2021-06-20 13:55:18 -07:00
Kyle Brown
581d8e269b
update kmkpython and hack fix bug 2021-06-20 13:55:18 -07:00
Kyle Brown
e72d2b8c34
feat(extensions): most of the extensions implementation, by kdb424 2021-06-20 13:55:16 -07:00
Josh Klar
9821f7bcc3
Initial attempt to merge internal_state with kmk_keyboard. Seems to work on Plank so far 2021-06-20 13:53:39 -07:00
Josh Klar
54f4644b5c
fix(lint): fix all outstanding linter errors 2021-06-20 13:14:53 -07:00
Kyle Brown
015e0cdfd7 linter fix 2020-10-15 15:42:12 -07:00
Josh Klar
1b730cacf3
Merge pull request #180 from KMKfw/topic-rgb-animation
update RGB for more modern cpy versions
2020-10-14 22:07:30 -07:00
Josh Klar
dc598ad439
Merge pull request #167 from dzervas/ble_multimple_conns
BLE Multiple Connections
2020-10-14 22:04:29 -07:00
Josh Klar
1016dc552c
fix: everyone's linting; loosen one linter rule on user keymaps 2020-10-14 21:54:18 -07:00
Kyle Brown
80d95816e4 Switch to initiator/target 2020-10-13 11:07:08 -07:00
Kyle Brown
1a4e81a2e5 Remove GC. Not needed on newer Cpy versions 2020-10-13 10:58:18 -07:00
Kyle Brown
6e10babfbe update RGB for more modern cpy versions 2020-10-09 22:43:37 -07:00
Dimitris Zervas
a6d36d57a7
Add multimple connection support 2020-10-01 23:02:05 +03:00
Dimitris Zervas
69f7c3c8c2
Remove some code from BLE 2020-10-01 23:02:05 +03:00
Kyle Brown
29373e9a37 delay imports 2020-10-01 12:53:05 -07:00
Kyle Brown
e225d8b1d6 Allows continuation of firmware if bluetooth can't be imported 2020-10-01 12:53:05 -07:00
Kyle Brown
fba97fc364 UART does in fact work 2020-10-01 12:41:18 -07:00
Kyle Brown
73b7464ec1 initial corne support on the nicenano 2020-10-01 12:41:18 -07:00
Dimitris Zervas
2cf64d8ce7 [ble] Add support to clear all current bondings 2020-09-29 19:35:49 -07:00
Dimitris Zervas
e5700eeb5f [ble] Add support to change ble name from KMKKeyboard.go 2020-09-29 09:35:00 -07:00
Kyle Brown
18eeb4eadc remove prints 2020-09-13 18:44:18 -07:00
Kyle Brown
6844654d39 Clearly a copy paste error 2020-09-13 18:44:18 -07:00
Dimitris Zervas
4d46653526 Fix formatting and make lab68 bluetooth 2020-09-13 18:20:58 -07:00
Dimitris Zervas
b082f26d9e Fix typos in lab68 and add compatibility for MCP to matrix 2020-09-13 18:20:58 -07:00
Josh Klar
5096bb7e30
chore: formatting 2020-07-07 20:35:11 -07:00
Benjamin Dengler
2197dab6fa
Moved BLE functionality to its own module 2020-07-07 20:35:11 -07:00
Benjamin Dengler
1bd84e49aa
Added basic BLE implementation using Adafruit libs 2020-07-07 20:35:11 -07:00
Elvis Pfützenreuter
ed452084fe Apply matrix_scanner attribute instead of fixed class 2019-08-06 19:17:01 -03:00
Josh Klar
666c0a4f08
Rename KeyboardConfig to KMKKeyboard - prepping for later merge with InternalState 2019-07-25 01:30:55 -07:00
Josh Klar
5da4555669
Fix isort ordering 2019-07-25 01:06:09 -07:00
Josh Klar
6baaf5e5d4
Continue to shuffle and burn stuff
- Remove the concept of "mcus". With only one target platform
(CircuitPython), it no longer makes a bunch of sense and has been kept
around for "what if" reasons, complicating our import chains and eating
up RAM for pointless subclasses. If you're a `board`, you derive from
`KeyboardConfig`. If you're a handwire, the user will derive from
`KeyboardConfig`. The end. As part of this, `kmk.hid` was refactored
heavily to emphasize that CircuitPython is our only supported HID stack,
with stubs for future HID implementations (`USB_HID` becomes
`AbstractHID`, probably only usable for testing purposes,
`CircuitPython_USB_HID` becomes `USBHID`, and `BLEHID` is added with an
immediate `NotImplementedError` on instantiation)

- `KeyboardConfig` can now take a HID type at runtime. The NRF52840
boards will happily run in either configuration once CircuitPython
support is in place, and a completely separate `mcu` subclass for each
mode made no sense. This also potentially allows runtime *swaps* of HID
driver down the line, but no code has been added to this effect. The
default, and only functional value, for this is `HIDModes.USB`

- Most consts have been moved to more logical homes - often, the main
or, often only, component that uses them. `DiodeOrientation` moved to
`kmk.matrix`, and anything HID-related moved to `kmk.hid`
2019-07-25 00:58:23 -07:00
Josh Klar
eb566b0f71
Remove two classes that havent been used in almost a year 2019-07-25 00:35:08 -07:00
Josh Klar
8c57844a22
Remove a ton of leftover MicroPython code and abstractions, including all of kmk.pins 2019-07-25 00:32:20 -07:00
Josh Klar
45cadc7e5a
CircuitPython-provided modules should be considered stdlib-equiv by isort terms. Apply this new rule. 2019-07-25 00:04:06 -07:00
Josh Klar
11a4604f88
Move our preload hacks out of keyboard_config into their own module. Isolate the ugliness 2019-07-25 00:03:35 -07:00
Josh Klar
38e8102532
Remove kmk.util by moving reboot/bootloader to their only use location 2019-07-24 23:45:50 -07:00
Josh Klar
02401e2ec0
Move kmk.util.get_wide_ordinal to kmk.handlers.sequences 2019-07-24 23:44:26 -07:00
Josh Klar
1eaf0e2c79
flatten_dict is no longer used, remove it 2019-07-24 23:43:39 -07:00
Josh Klar
ef1c69aa2c
Fix linting; move kmk.util.intify_coordinate to kmk.matrix.intify_coordinate (trying to deprecate/remove util) 2019-07-24 23:43:00 -07:00
Josh Klar
64267bdc5b
fix a totally unrelated bug 2019-07-24 23:15:57 -07:00
Josh Klar
aaeaa74a0c
Run black against source tree 2019-07-24 23:03:13 -07:00
Josh Klar
5c0c13e8d0
Prepare for Black autoformatting: dependencies, string staging, single-quote string override 2019-07-24 23:03:13 -07:00
Josh Klar
39220beddb
tag releases within the dists as well (for debugging, mostly) 2019-07-24 21:25:10 -07:00
Josh Klar
a51d11f6e6
A wild W504 linter error appeared! Fix those. 2019-07-24 21:25:10 -07:00
Josh Klar
1e9625ae0e
Rename "Firmware" to "KeyboardConfig" for clarity in main.py and to illustrate separation of KeyboardConfig/InternalState 2019-07-24 21:25:10 -07:00
Josh Klar
e8c3b5ac70
The CircuitPython "MCU" (misnomer now?) is generic anyway - name it as such 2019-07-24 21:25:10 -07:00
Josh Klar
d15aa65cc6 Kyle built a Gherkin handwire on Feather nrf52840! Unclean but works 2019-07-17 16:05:40 -07:00
Kyle Brown
004f40e7d2 Unbreak the fix 2019-07-17 16:05:40 -07:00
Kyle Brown
b6af43ef90 rgb animations perf 2019-07-17 16:05:40 -07:00
Josh Klar
c11984135a looks like this is not needed, so save some bootup time 2019-07-17 16:05:40 -07:00
Josh Klar
76087749fb Download more RAM (reword this in a rebase plz) 2019-07-17 16:05:40 -07:00
Kyle Brown
d07560513f Fixed crash on debug when no Rgb was used, and unloaded LED and RGB when not used to save ram 2019-07-17 16:05:40 -07:00
Josh Klar
d34e8ce9d2 Re-add LED support
This reverts commit 5b069a0104.
2019-07-17 16:05:40 -07:00
Josh Klar
350c2438ad
Disable GC on every cycle, too much lag 2019-07-12 16:54:38 -07:00
Josh Klar
17094a2988
Clean some code up; force GC on every cycle 2019-07-12 16:38:50 -07:00
Josh Klar
2947f81489
Remove pointless reversed_active_layers/active_layers difference 2019-07-12 15:31:27 -07:00
Josh Klar
1fe80fec92
Clean up and standardize print() debug stuff 2019-07-12 15:16:33 -07:00
Josh Klar
5b069a0104
Revert "Monocolor LED backlight added" 2019-07-07 15:35:15 -07:00
Kyle Brown
5532ffdcbf Ready for merging 2019-06-21 17:28:30 -07:00
Kyle Brown
39b0b1e7f2 final commit before rebase 2019-06-21 16:51:01 -07:00
Kyle Brown
5158094549 Small changes 2019-06-21 16:49:00 -07:00
Kyle Brown
3f8c6e7648 Added support for user animations with docs 2019-06-21 16:49:00 -07:00
Kyle Brown
9d8682c866 Config changes and uses consts to save ram 2019-06-21 16:49:00 -07:00
Kyle Brown
86b8c4ffb0 New animation 2019-06-21 16:49:00 -07:00
Kyle Brown
bb198709f2 fix incorrect merge 2019-06-21 16:48:59 -07:00
Kyle Brown
efb642c374 Fix some issues if you don't define some things 2019-06-21 16:47:44 -07:00
Kyle Brown
1a06e0ed72 Renamed some things and added luddite layout for kdb424 and default 2019-06-21 16:47:44 -07:00
Kyle Brown
7ebf8d623f Fix toggle 2019-06-21 16:47:44 -07:00
Kyle Brown
ec1a62e52d Added static standby mode for performance. 2019-06-21 16:47:44 -07:00
Kyle Brown
0a06e733d2 Solved. Added uart buffer on the master to free up the uart bus buffer 2019-06-21 16:47:43 -07:00
Kyle Brown
e2413a3c25 Still dirty, but moved the problem to a better place. Still unrealistic to hit 2019-06-21 16:47:00 -07:00
Kyle Brown
a882ef2c38 Quick patch unrealistic face roll keyboard corruption 2019-06-21 16:47:00 -07:00
Kyle Brown
373ca8355e Added MANY boards to supported list, and organized supported boards 2019-06-21 16:47:00 -07:00
Kyle Brown
54d63037bf Added board definition for nyquist and add RGB and LED pins for nyquest and iris 2019-06-21 16:46:59 -07:00
Kyle Brown
f7a1d54752 Added LED support, cleaned up RGB docs 2019-06-21 16:45:04 -07:00
Kyle Brown
f65ea1e841 Added 2 more keys, stripped unused cruft, and added more docs. 2019-06-21 16:44:03 -07:00
Kyle Brown
3ae7432de0 Massive docs update 2019-06-21 16:42:53 -07:00
Kyle Brown
9fbad17ed4 code cleanup to pass lint and some for flake8 2019-06-21 16:42:12 -07:00
Kyle Brown
1751cce299 code cleanup to pass lint and some for flake8 2019-06-21 16:41:58 -07:00
Kyle Brown
ad3430eeb6 Needs docs, but code is ready for review probably 2019-06-21 16:38:41 -07:00
Kyle Brown
5334e7e0be Massive hsv math fix and configs can be passed now for most things 2019-06-21 16:38:41 -07:00
Kyle Brown
2ad1fe8a9c Massively improved, still not complete. Much easier to use now 2019-06-21 16:38:41 -07:00
Kyle Brown
31983a0873 Breathing now finally working, a key to enable it, not sane defaults, and a toggle button 2019-06-21 16:38:39 -07:00
Kyle Brown
0ba5911f8f More animations, now based on time and intervals. Massively WIP 2019-06-21 16:37:53 -07:00
Kyle Brown
7a58ac041f HSV functions added 2019-06-21 16:37:53 -07:00
Kyle Brown
4b033857b1 Initial RGB with test animation running automatically 2019-06-21 16:37:51 -07:00
Elvis Pfutzenreuter
dabed0061d Add KC_APP ("Win menu") key 2019-05-31 00:36:42 -03:00
Josh Klar
c3ffb7b1ac
Merge branch 'master' into epx87 2019-05-20 15:54:10 -07:00
Elvis Pfützenreuter
41dc58e428 Make matrix scanner class configurable 2019-05-17 20:30:42 -03:00
Josh Klar
0b364cf7f1 Resolves #121: Use flattened keymaps, which can visually represent the logical layout, rather than the physical wiring 2019-05-12 17:47:16 -07:00
Josh Klar
7fcd36f2fb Refs #104: Keyboard can work without REPL connected on >=4.0.0-alpha3 (tested only against single-piece boards so far) 2019-05-12 14:14:59 -07:00
Josh Klar
cf5ee5d4b2 Resolves an OverflowError in matrix scans (board-breaking) 2019-05-12 13:19:44 -07:00
Josh Klar
9dce78370e
Merge branch 'master' into topic-backspace-delete 2019-05-10 13:03:52 -07:00
Elvis Pfützenreuter
f9b56d82f7 Add cancel_timeout method
This method is useful when the keymap needs to use
state.set_timeout() and this timeout needs to be
cancellable.

Also, the set_timeout() now returns a timer handle.
2019-04-26 19:50:41 -03:00