20 Commits

Author SHA1 Message Date
Kyle Brown
1a4e81a2e5 Remove GC. Not needed on newer Cpy versions 2020-10-13 10:58:18 -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
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
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
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
aaeaa74a0c
Run black against source tree 2019-07-24 23:03:13 -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
d34e8ce9d2 Re-add LED support
This reverts commit 5b069a01048b42a589d2fc1a44672ed06607a567.
2019-07-17 16:05:40 -07:00
Josh Klar
5b069a0104
Revert "Monocolor LED backlight added" 2019-07-07 15:35:15 -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
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
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
be4ca3e734
kitsym4: Support the keeb.io Iris using the ProMicro<->ItsyBitsyM4 converter board
The thumb cluster maps a little goofy and I'd like to clean up the
keymap here - it's ENTIRELY NOT OBVIOUS how this works right now. Using
this keymap as an example, the physical layout of my thumb cluster is
actually:

Far left: Left
Next to the right: Right
Bottom right: Shift
Top right: MO(2)

You can see what this maps to in code, and it's not at all intuitive.

`swap_indicies`, which we already support, is useless here because,
unlike the Planck/Klaranck, these aren't 1:1 key swaps, but an entirely
custom mapping of columns. This will require something like QMK's
solution to fully custom (or at least partially custom) keymaps at a
core level, and isn't something I feel like tackling tonight
necessarily.
2018-12-28 23:20:08 -08:00
Josh Klar
16c82b1c0c
OMEGA REFACTOR! Perf grind basically complete.
Resolves #70, Resolves #67

Still needs some regression testing in general, and a definite
regression is that rotary encoders are no longer (for the immediate time
being) supported.

Moves to a much simpler internal state tracking system, and FAR lighter
matrix scan.

Removes MicroPython support entirely.
2018-10-16 22:21:45 -07:00