Commit Graph

20 Commits

Author SHA1 Message Date
Drashna Jaelre 6cf574396a [Keyboard] Update default keymaps to use `layer_state_t` (#7444)
* Update default keymaps to use `layer_state_t`

* Convert binon32 as get_highest_layer in default keymaps
2019-11-21 22:40:29 -08:00
Daniel Shields 6fd88c1556 [Keymap] Remove dynamic macro customization now it's a core feature. (#7301) 2019-11-08 10:31:36 -08:00
Daniel Shields 511fa5f815 [Keymap] Add new LED/RGB key codes (#7254) 2019-11-04 13:47:52 -08:00
Daniel Shields 0f30a4d2ca Save a few bytes with build options and rgb effect removal. (#7149) 2019-10-25 19:16:46 +01:00
fauxpark e96cac0814 Cleanup rules.mk for 32U4 keyboards, L-M (#7120)
* Cleanup rules.mk for 32U4 keyboards, L-M

* Move some stuff to keyboard level
2019-10-24 13:50:13 -07:00
Daniel Shields 00abe5d8ed [Keymap] Various enhancements for dshields user space and keymaps. (#6816)
- Add oneshot mod/layer unlocking
- Fix Planck rev 3 backlight breathing
- Fix Planck rev 6 build with arm gcc 9.2.0
- General code clean up
2019-09-25 09:21:07 -07:00
Daniel Shields 63a0b1241d [Keymap] Move common code and configuration to userspace for dshields keymaps. (#6537) 2019-09-21 11:04:27 -07:00
Daniel Shields b4c03070de [Keymap] Fix rgb matrix effects on dshields keymaps. (#6505) 2019-08-08 13:21:54 -07:00
Daniel Schindler a8647f0d27 Add model01 keymap. Change kinesis keeymap. 2019-07-16 15:02:48 -07:00
Drashna Jaelre 6cccc22be9 Use QUANTUM_LIB_SRC for i2c_master.c inclusion (#5617)
Using QUANTUM_LIB_SRC prevents the warning when multiple sources add the i2c_master.c file. Boards such as the Ergodox EZ Glow see this warning every time they compile because the board uses the file in general, and because the RGB LED Matrix requires it, as well.
2019-07-09 07:57:14 -07:00
Drashna Jaelre faaaa134fd Replace DEBOUNCING_DELAY (deprecated) with DEBOUNCE (#5997) 2019-06-06 12:09:56 -07:00
XScorpion2 af89752bff rgb_led struct conversion (aka: Per led (key) type rgb matrix effects - part 2) (#5783)
* Initial conversion of the rgb_led struct

* Converting last keyboard & updating effects to take advantage of the new structure

* New struct should not be const

* Updated docs

* Changing define ___ for no led to NO_LED

* Missed converting some keymap usages of the old struct layout
2019-05-07 16:22:46 -07:00
XScorpion2 a7113c8ed0 Updated rgb_led struct field modifier to flags (#5619)
Updated effects to test led flags
Updated massdrop to use new flags field for led toggle
2019-04-29 15:18:50 -07:00
noroadsleft 388de9bc07 Keyboardio Model 01: Configurator support 2018-12-13 22:54:56 -08:00
Daniel Shields b1c2849500 Keymap: Add RGB matrix keypress effects and reduce firmware size. (#4055) 2018-10-03 08:30:44 -07:00
Daniel Shields da6c58175a Make digital rain RGB matrix effect #define configurable. 2018-10-01 12:54:37 -04:00
James Laird-Wah b382076ad1 Keyboard: keyboardio model01: rgbmatrix support (#3989)
* model01: implement RGB matrix feature

LEDs can still be individually controlled if this is switched off.

* model01: use fast banked LED setting commands

* model01: update default keymap to use RGB matrix

* model01: update RGB matrix support to match common_features.mk

* rgb_matrix: include <string.h>

This was missing after commit 4d5705ea6c
which introduces a use of memset().

* model01: make g_rgb_leds weak

This allows users to override which LEDs are configured as
modifiers, or tweak the x/y coordinates, should they so choose.
2018-09-27 20:53:36 -07:00
Daniel Shields 8b2591c707 Keymap: Clean-up of dshields keymaps. (#3983) 2018-09-27 11:47:26 -07:00
Daniel Shields 6cab514036 Keymap: Initial commit of dshields keymap for the model01 keyboard. (#3942) 2018-09-19 16:33:00 -07:00
James Laird-Wah 03b8ce206d Keyboard: add Keyboardio Model 01 (#3900)
* Keyboard: add Keyboardio Model01

This port implements key scanning and everything in their default
keymap.

It doesn't implement mouse warping; QMK can't do that (yet).

LED control is mostly not implemented. The ability to set all LEDs is
included because they can get stuck on coming from the bootloader
otherwise. Single LED control is also implemented for numpad indication.
The scanners also support batch LED transfer which is what you'd need if
you wanted to do fast effects. Gamma correction is also not implemented,
but is present in the original firmware. The necessary info for further
implementation is in the KeyboardioScanner module for Kaleidoscope.

To install on your keyboard:

    make model01:avrdude

When prompted, hold the "prog" key on the keyboard to put it into
programming mode. This can also be achieved by holding the "prog" key
while plugging in the keyboard. This works even if the firmware is
corrupt or missing.

Hot plugging the halves seems to work fine, but there is no explicit
support for eg. making sure the matrix scan rate is reconfigured.

* model01: clean up includes and include guards

Uses #pragma once everywhere.

* model01: split LED and matrix code

This makes space if someone wants to implement better LED support
later on, the keyboard is a lot more capable than the current code.

* model01: separate I2C timeouts for matrix vs. LED

If the scanners have no data they don't ACK reads and just time out.
So we want a pretty short timeout to keep scan rates high.

Meanwhile the LED transfers might take longer - I don't know though,
so here we are conservative.

* model01: implement better LED control

- gamma correction from the manufacturer's firmware
- suitable delays to allow back to back LED writes
    - this is fast enough to write the whole keyboard without noticeable
    delay, in my experience
- minor bug fix: RHS Fn key was not addressable

* model01: add license to wire-protocol-constants.h

* model01: replace gamma LUT

The original was of unclear license origin. This one is functionally
identical and includes a generator should people wish to adjust it.

* model01: use the already-present CIE1931 lightness curve

...rather than baking in another gamma curve.

It's said that CIE1931 is the right thing to be using rather than gamma.
OK. Let it be so.

* model01: call matrix_init_user() from matrix_init_kb()

* model01: remove inapplicable config options from rules.mk

* model01: readme.md: update build environment links
2018-09-17 15:49:20 -07:00