mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-04-05 05:15:38 +00:00
Merge branch 'develop' into comm_60_#
This commit is contained in:
commit
fda851c9bd
@ -0,0 +1,407 @@
|
|||||||
|
{
|
||||||
|
"aliases": {
|
||||||
|
/*
|
||||||
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||||
|
* │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ │
|
||||||
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||||
|
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ ^ │ ¸ │ │
|
||||||
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||||
|
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ` │ < │ │
|
||||||
|
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||||
|
* │ │ « │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ É │ │
|
||||||
|
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||||
|
* │ │ │ │ │ │ │ │ │
|
||||||
|
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||||
|
*/
|
||||||
|
"KC_GRV": {
|
||||||
|
"key": "FR_HASH",
|
||||||
|
"label": "#",
|
||||||
|
}
|
||||||
|
"KC_1": {
|
||||||
|
"key": "FR_1",
|
||||||
|
"label": "1",
|
||||||
|
}
|
||||||
|
"KC_2": {
|
||||||
|
"key": "FR_2",
|
||||||
|
"label": "2",
|
||||||
|
}
|
||||||
|
"KC_3": {
|
||||||
|
"key": "FR_3",
|
||||||
|
"label": "3",
|
||||||
|
}
|
||||||
|
"KC_4": {
|
||||||
|
"key": "FR_4",
|
||||||
|
"label": "4",
|
||||||
|
}
|
||||||
|
"KC_5": {
|
||||||
|
"key": "FR_5",
|
||||||
|
"label": "5",
|
||||||
|
}
|
||||||
|
"KC_6": {
|
||||||
|
"key": "FR_6",
|
||||||
|
"label": "6",
|
||||||
|
}
|
||||||
|
"KC_7": {
|
||||||
|
"key": "FR_7",
|
||||||
|
"label": "7",
|
||||||
|
}
|
||||||
|
"KC_8": {
|
||||||
|
"key": "FR_8",
|
||||||
|
"label": "8",
|
||||||
|
}
|
||||||
|
"KC_9": {
|
||||||
|
"key": "FR_9",
|
||||||
|
"label": "9",
|
||||||
|
}
|
||||||
|
"KC_0": {
|
||||||
|
"key": "FR_0",
|
||||||
|
"label": "0",
|
||||||
|
}
|
||||||
|
"KC_MINS": {
|
||||||
|
"key": "FR_MINS",
|
||||||
|
"label": "-",
|
||||||
|
}
|
||||||
|
"KC_EQL": {
|
||||||
|
"key": "FR_EQL",
|
||||||
|
"label": "=",
|
||||||
|
}
|
||||||
|
"KC_Q": {
|
||||||
|
"key": "FR_Q",
|
||||||
|
"label": "Q",
|
||||||
|
}
|
||||||
|
"KC_W": {
|
||||||
|
"key": "FR_W",
|
||||||
|
"label": "W",
|
||||||
|
}
|
||||||
|
"KC_E": {
|
||||||
|
"key": "FR_E",
|
||||||
|
"label": "E",
|
||||||
|
}
|
||||||
|
"KC_R": {
|
||||||
|
"key": "FR_R",
|
||||||
|
"label": "R",
|
||||||
|
}
|
||||||
|
"KC_T": {
|
||||||
|
"key": "FR_T",
|
||||||
|
"label": "T",
|
||||||
|
}
|
||||||
|
"KC_Y": {
|
||||||
|
"key": "FR_Y",
|
||||||
|
"label": "Y",
|
||||||
|
}
|
||||||
|
"KC_U": {
|
||||||
|
"key": "FR_U",
|
||||||
|
"label": "U",
|
||||||
|
}
|
||||||
|
"KC_I": {
|
||||||
|
"key": "FR_I",
|
||||||
|
"label": "I",
|
||||||
|
}
|
||||||
|
"KC_O": {
|
||||||
|
"key": "FR_O",
|
||||||
|
"label": "O",
|
||||||
|
}
|
||||||
|
"KC_P": {
|
||||||
|
"key": "FR_P",
|
||||||
|
"label": "P",
|
||||||
|
}
|
||||||
|
"KC_LBRC": {
|
||||||
|
"key": "FR_DCIR",
|
||||||
|
"label": "^ (dead)",
|
||||||
|
}
|
||||||
|
"KC_RBRC": {
|
||||||
|
"key": "FR_CEDL",
|
||||||
|
"label": "¸ (dead)",
|
||||||
|
}
|
||||||
|
"KC_A": {
|
||||||
|
"key": "FR_A",
|
||||||
|
"label": "A",
|
||||||
|
}
|
||||||
|
"KC_S": {
|
||||||
|
"key": "FR_S",
|
||||||
|
"label": "S",
|
||||||
|
}
|
||||||
|
"KC_D": {
|
||||||
|
"key": "FR_D",
|
||||||
|
"label": "D",
|
||||||
|
}
|
||||||
|
"KC_F": {
|
||||||
|
"key": "FR_F",
|
||||||
|
"label": "F",
|
||||||
|
}
|
||||||
|
"KC_G": {
|
||||||
|
"key": "FR_G",
|
||||||
|
"label": "G",
|
||||||
|
}
|
||||||
|
"KC_H": {
|
||||||
|
"key": "FR_H",
|
||||||
|
"label": "H",
|
||||||
|
}
|
||||||
|
"KC_J": {
|
||||||
|
"key": "FR_J",
|
||||||
|
"label": "J",
|
||||||
|
}
|
||||||
|
"KC_K": {
|
||||||
|
"key": "FR_K",
|
||||||
|
"label": "K",
|
||||||
|
}
|
||||||
|
"KC_L": {
|
||||||
|
"key": "FR_L",
|
||||||
|
"label": "L",
|
||||||
|
}
|
||||||
|
"KC_SCLN": {
|
||||||
|
"key": "FR_SCLN",
|
||||||
|
"label": ";",
|
||||||
|
}
|
||||||
|
"KC_QUOT": {
|
||||||
|
"key": "FR_DGRV",
|
||||||
|
"label": "` (dead)",
|
||||||
|
}
|
||||||
|
"KC_NUHS": {
|
||||||
|
"key": "FR_LABK",
|
||||||
|
"label": "<",
|
||||||
|
}
|
||||||
|
"KC_NUBS": {
|
||||||
|
"key": "FR_LDAQ",
|
||||||
|
"label": "«",
|
||||||
|
}
|
||||||
|
"KC_Z": {
|
||||||
|
"key": "FR_Z",
|
||||||
|
"label": "Z",
|
||||||
|
}
|
||||||
|
"KC_X": {
|
||||||
|
"key": "FR_X",
|
||||||
|
"label": "X",
|
||||||
|
}
|
||||||
|
"KC_C": {
|
||||||
|
"key": "FR_C",
|
||||||
|
"label": "C",
|
||||||
|
}
|
||||||
|
"KC_V": {
|
||||||
|
"key": "FR_V",
|
||||||
|
"label": "V",
|
||||||
|
}
|
||||||
|
"KC_B": {
|
||||||
|
"key": "FR_B",
|
||||||
|
"label": "B",
|
||||||
|
}
|
||||||
|
"KC_N": {
|
||||||
|
"key": "FR_N",
|
||||||
|
"label": "N",
|
||||||
|
}
|
||||||
|
"KC_M": {
|
||||||
|
"key": "FR_M",
|
||||||
|
"label": "M",
|
||||||
|
}
|
||||||
|
"KC_COMM": {
|
||||||
|
"key": "FR_COMM",
|
||||||
|
"label": ",",
|
||||||
|
}
|
||||||
|
"KC_DOT": {
|
||||||
|
"key": "FR_DOT",
|
||||||
|
"label": ".",
|
||||||
|
}
|
||||||
|
"KC_SLSH": {
|
||||||
|
"key": "FR_EACU",
|
||||||
|
"label": "É",
|
||||||
|
}
|
||||||
|
/* Shifted symbols
|
||||||
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||||
|
* │ | │ ! │ " │ / │ $ │ % │ ? │ & │ * │ ( │ ) │ _ │ + │ │
|
||||||
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||||
|
* │ │ │ │ │ │ │ │ │ │ │ │ │ ¨ │ │
|
||||||
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||||
|
* │ │ │ │ │ │ │ │ │ │ │ : │ │ > │ │
|
||||||
|
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||||
|
* │ │ » │ │ │ │ │ │ │ │ ' │ │ │ │
|
||||||
|
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||||
|
* │ │ │ │ │ │ │ │ │
|
||||||
|
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||||
|
*/
|
||||||
|
"S(FR_HASH)": {
|
||||||
|
"key": "FR_PIPE",
|
||||||
|
"label": "|",
|
||||||
|
}
|
||||||
|
"S(FR_1)": {
|
||||||
|
"key": "FR_EXLM",
|
||||||
|
"label": "!",
|
||||||
|
}
|
||||||
|
"S(FR_2)": {
|
||||||
|
"key": "FR_DQUO",
|
||||||
|
"label": "\"",
|
||||||
|
}
|
||||||
|
"S(FR_3)": {
|
||||||
|
"key": "FR_SLSH",
|
||||||
|
"label": "/",
|
||||||
|
}
|
||||||
|
"S(FR_4)": {
|
||||||
|
"key": "FR_DLR",
|
||||||
|
"label": "$",
|
||||||
|
}
|
||||||
|
"S(FR_5)": {
|
||||||
|
"key": "FR_PERC",
|
||||||
|
"label": "%",
|
||||||
|
}
|
||||||
|
"S(FR_6)": {
|
||||||
|
"key": "FR_QUES",
|
||||||
|
"label": "?",
|
||||||
|
}
|
||||||
|
"S(FR_7)": {
|
||||||
|
"key": "FR_AMPR",
|
||||||
|
"label": "&",
|
||||||
|
}
|
||||||
|
"S(FR_8)": {
|
||||||
|
"key": "FR_ASTR",
|
||||||
|
"label": "*",
|
||||||
|
}
|
||||||
|
"S(FR_9)": {
|
||||||
|
"key": "FR_LPRN",
|
||||||
|
"label": "(",
|
||||||
|
}
|
||||||
|
"S(FR_0)": {
|
||||||
|
"key": "FR_RPRN",
|
||||||
|
"label": ")",
|
||||||
|
}
|
||||||
|
"S(FR_MINS)": {
|
||||||
|
"key": "FR_UNDS",
|
||||||
|
"label": "_",
|
||||||
|
}
|
||||||
|
"S(FR_EQL)": {
|
||||||
|
"key": "FR_PLUS",
|
||||||
|
"label": "+",
|
||||||
|
}
|
||||||
|
"S(FR_CEDL)": {
|
||||||
|
"key": "FR_DIAE",
|
||||||
|
"label": "¨ (dead)",
|
||||||
|
}
|
||||||
|
"S(FR_SCLN)": {
|
||||||
|
"key": "FR_COLN",
|
||||||
|
"label": ":",
|
||||||
|
}
|
||||||
|
"S(FR_LABK)": {
|
||||||
|
"key": "FR_RABK",
|
||||||
|
"label": ">",
|
||||||
|
}
|
||||||
|
"S(FR_LDAQ)": {
|
||||||
|
"key": "FR_RDAQ",
|
||||||
|
"label": "»",
|
||||||
|
}
|
||||||
|
"S(FR_COMM)": {
|
||||||
|
"key": "FR_QUOT",
|
||||||
|
"label": "'",
|
||||||
|
}
|
||||||
|
/* AltGr symbols
|
||||||
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||||
|
* │ \ │ ± │ @ │ £ │ ¢ │ ¤ │ ¬ │ ¦ │ ² │ ³ │ ¼ │ ½ │ ¾ │ │
|
||||||
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||||
|
* │ │ │ │ │ │ │ │ │ │ § │ ¶ │ [ │ ] │ │
|
||||||
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||||
|
* │ │ │ │ │ │ │ │ │ │ │ ~ │ { │ } │ │
|
||||||
|
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||||
|
* │ │ ° │ │ │ │ │ │ │ µ │ ¯ │ - │ ´ │ │
|
||||||
|
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||||
|
* │ │ │ │ │ │ │ │ │
|
||||||
|
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||||
|
*/
|
||||||
|
"ALGR(FR_HASH)": {
|
||||||
|
"key": "FR_BSLS",
|
||||||
|
"label": "\\",
|
||||||
|
}
|
||||||
|
"ALGR(FR_1)": {
|
||||||
|
"key": "FR_PLMN",
|
||||||
|
"label": "±",
|
||||||
|
}
|
||||||
|
"ALGR(FR_2)": {
|
||||||
|
"key": "FR_AT",
|
||||||
|
"label": "@",
|
||||||
|
}
|
||||||
|
"ALGR(FR_3)": {
|
||||||
|
"key": "FR_PND",
|
||||||
|
"label": "£",
|
||||||
|
}
|
||||||
|
"ALGR(FR_4)": {
|
||||||
|
"key": "FR_CENT",
|
||||||
|
"label": "¢",
|
||||||
|
}
|
||||||
|
"ALGR(FR_5)": {
|
||||||
|
"key": "FR_CURR",
|
||||||
|
"label": "¤",
|
||||||
|
}
|
||||||
|
"ALGR(FR_6)": {
|
||||||
|
"key": "FR_NOT",
|
||||||
|
"label": "¬",
|
||||||
|
}
|
||||||
|
"ALGR(FR_7)": {
|
||||||
|
"key": "FR_BRKP",
|
||||||
|
"label": "¦",
|
||||||
|
}
|
||||||
|
"ALGR(FR_8)": {
|
||||||
|
"key": "FR_SUP2",
|
||||||
|
"label": "²",
|
||||||
|
}
|
||||||
|
"ALGR(FR_9)": {
|
||||||
|
"key": "FR_SUP3",
|
||||||
|
"label": "³",
|
||||||
|
}
|
||||||
|
"ALGR(FR_0)": {
|
||||||
|
"key": "FR_QRTR",
|
||||||
|
"label": "¼",
|
||||||
|
}
|
||||||
|
"ALGR(FR_MINS)": {
|
||||||
|
"key": "FR_HALF",
|
||||||
|
"label": "½",
|
||||||
|
}
|
||||||
|
"ALGR(FR_EQL)": {
|
||||||
|
"key": "FR_TQTR",
|
||||||
|
"label": "¾",
|
||||||
|
}
|
||||||
|
"ALGR(FR_O)": {
|
||||||
|
"key": "FR_SECT",
|
||||||
|
"label": "§",
|
||||||
|
}
|
||||||
|
"ALGR(FR_P)": {
|
||||||
|
"key": "FR_PARA",
|
||||||
|
"label": "¶",
|
||||||
|
}
|
||||||
|
"ALGR(FR_DCIR)": {
|
||||||
|
"key": "FR_LBRC",
|
||||||
|
"label": "[",
|
||||||
|
}
|
||||||
|
"ALGR(FR_CEDL)": {
|
||||||
|
"key": "FR_RBRC",
|
||||||
|
"label": "]",
|
||||||
|
}
|
||||||
|
"ALGR(FR_SCLN)": {
|
||||||
|
"key": "FR_TILD",
|
||||||
|
"label": "~",
|
||||||
|
}
|
||||||
|
"ALGR(FR_DGRV)": {
|
||||||
|
"key": "FR_LCBR",
|
||||||
|
"label": "{",
|
||||||
|
}
|
||||||
|
"ALGR(FR_LABK)": {
|
||||||
|
"key": "FR_RCBR",
|
||||||
|
"label": "}",
|
||||||
|
}
|
||||||
|
"ALGR(FR_LDAQ)": {
|
||||||
|
"key": "FR_DEG",
|
||||||
|
"label": "°",
|
||||||
|
}
|
||||||
|
"ALGR(FR_M)": {
|
||||||
|
"key": "FR_MICR",
|
||||||
|
"label": "µ",
|
||||||
|
}
|
||||||
|
"ALGR(FR_COMM)": {
|
||||||
|
"key": "FR_MACR",
|
||||||
|
"label": "¯",
|
||||||
|
}
|
||||||
|
"ALGR(FR_DOT)": {
|
||||||
|
"key": "FR_SHYP",
|
||||||
|
"label": " (soft hyphen)",
|
||||||
|
}
|
||||||
|
"ALGR(FR_EACU)": {
|
||||||
|
"key": "FR_ACUT",
|
||||||
|
"label": "´ (dead)",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -275,7 +275,7 @@ There are a few different ways to set handedness for split keyboards (listed in
|
|||||||
* For using high/low pin to determine handedness, low = right hand, high = left hand. Replace `B7` with the pin you are using. This is optional, and if you leave `SPLIT_HAND_PIN` undefined, then you can still use the EE_HANDS method or MASTER_LEFT / MASTER_RIGHT defines like the stock Let's Split uses.
|
* For using high/low pin to determine handedness, low = right hand, high = left hand. Replace `B7` with the pin you are using. This is optional, and if you leave `SPLIT_HAND_PIN` undefined, then you can still use the EE_HANDS method or MASTER_LEFT / MASTER_RIGHT defines like the stock Let's Split uses.
|
||||||
|
|
||||||
* `#define SPLIT_HAND_MATRIX_GRID <out_pin>,<in_pin>`
|
* `#define SPLIT_HAND_MATRIX_GRID <out_pin>,<in_pin>`
|
||||||
* The handedness is determined by using the intersection of the keyswitches in the key matrix, which does not exist. Normally, when this intersection is shorted (level low), it is considered left. If you define `#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT`, it is determined to be right when the level is low.
|
* The handedness is determined by using the intersection of the keyswitches in the key matrix, which does not exist. Normally, when this intersection is shorted (level low), it is considered right. If you define `#define SPLIT_HAND_MATRIX_GRID_LOW_IS_LEFT`, it is determined to be left when the level is low.
|
||||||
|
|
||||||
* `#define EE_HANDS` (only works if `SPLIT_HAND_PIN` and `SPLIT_HAND_MATRIX_GRID` are not defined)
|
* `#define EE_HANDS` (only works if `SPLIT_HAND_PIN` and `SPLIT_HAND_MATRIX_GRID` are not defined)
|
||||||
* Reads the handedness value stored in the EEPROM after `eeprom-lefthand.eep`/`eeprom-righthand.eep` has been flashed to their respective halves.
|
* Reads the handedness value stored in the EEPROM after `eeprom-lefthand.eep`/`eeprom-righthand.eep` has been flashed to their respective halves.
|
||||||
|
@ -728,6 +728,7 @@ There are a few ways to control the auto mouse feature with both `config.h` opti
|
|||||||
| `AUTO_MOUSE_TIME` | (Optional) Time layer remains active after activation | _ideally_ (250-1000) | _ms_ | `650 ms` |
|
| `AUTO_MOUSE_TIME` | (Optional) Time layer remains active after activation | _ideally_ (250-1000) | _ms_ | `650 ms` |
|
||||||
| `AUTO_MOUSE_DELAY` | (Optional) Lockout time after non-mouse key is pressed | _ideally_ (100-1000) | _ms_ | `TAPPING_TERM` or `200 ms` |
|
| `AUTO_MOUSE_DELAY` | (Optional) Lockout time after non-mouse key is pressed | _ideally_ (100-1000) | _ms_ | `TAPPING_TERM` or `200 ms` |
|
||||||
| `AUTO_MOUSE_DEBOUNCE` | (Optional) Time delay from last activation to next update | _ideally_ (10 - 100) | _ms_ | `25 ms` |
|
| `AUTO_MOUSE_DEBOUNCE` | (Optional) Time delay from last activation to next update | _ideally_ (10 - 100) | _ms_ | `25 ms` |
|
||||||
|
| `AUTO_MOUSE_THRESHOLD` | (Optional) Amount of mouse movement required to switch layers | 0 - | _units_ | `10 units` |
|
||||||
|
|
||||||
### Adding mouse keys
|
### Adding mouse keys
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ To send data to the keyboard, you must first find a library for communicating wi
|
|||||||
* **Node.js:** [node-hid](https://github.com/node-hid/node-hid)
|
* **Node.js:** [node-hid](https://github.com/node-hid/node-hid)
|
||||||
* **C/C++:** [hidapi](https://github.com/libusb/hidapi)
|
* **C/C++:** [hidapi](https://github.com/libusb/hidapi)
|
||||||
* **Java:** [purejavahidapi](https://github.com/nyholku/purejavahidapi) and [hid4java](https://github.com/gary-rowe/hid4java)
|
* **Java:** [purejavahidapi](https://github.com/nyholku/purejavahidapi) and [hid4java](https://github.com/gary-rowe/hid4java)
|
||||||
* **Python:** [pyhidapi](https://pypi.org/project/hid/)
|
* **Python:** [pyhidapi](https://pypi.org/project/hid/) and [pywinusb](https://pypi.org/project/pywinusb)
|
||||||
|
|
||||||
Please refer to these libraries' own documentation for instructions on usage. Remember to close the device once you are finished with it!
|
Please refer to these libraries' own documentation for instructions on usage. Remember to close the device once you are finished with it!
|
||||||
|
|
||||||
|
@ -119,12 +119,12 @@ You can configure the firmware to read key matrix pins on the controller to dete
|
|||||||
|
|
||||||
The first pin is the output pin and the second is the input pin.
|
The first pin is the output pin and the second is the input pin.
|
||||||
|
|
||||||
Some keyboards have unused intersections in the key matrix. This setting uses one of these unused intersections to determine the handness.
|
Some keyboards have unused intersections in the key matrix. This setting uses one of these unused intersections to determine the handedness.
|
||||||
|
|
||||||
Normally, when a diode is connected to an intersection, it is judged to be left. If you add the following definition, it will be judged to be right.
|
Normally, when a diode is connected to an intersection, it is judged to be right. If you add the following definition, it will be judged to be left.
|
||||||
|
|
||||||
```c
|
```c
|
||||||
#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT
|
#define SPLIT_HAND_MATRIX_GRID_LOW_IS_LEFT
|
||||||
```
|
```
|
||||||
|
|
||||||
Note that adding a diode at a previously unused intersection will effectively tell the firmware that there is a key held down at that point. You can instruct qmk to ignore that intersection by defining `MATRIX_MASKED` and then defining a `matrix_row_t matrix_mask[MATRIX_ROWS]` array in your keyboard config. Each bit of a single value (starting form the least-significant bit) is used to tell qmk whether or not to pay attention to key presses at that intersection.
|
Note that adding a diode at a previously unused intersection will effectively tell the firmware that there is a key held down at that point. You can instruct qmk to ignore that intersection by defining `MATRIX_MASKED` and then defining a `matrix_row_t matrix_mask[MATRIX_ROWS]` array in your keyboard config. Each bit of a single value (starting form the least-significant bit) is used to tell qmk whether or not to pay attention to key presses at that intersection.
|
||||||
|
@ -248,7 +248,7 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
|
|||||||
* high/low ピンを使って左右を決定します。low = 右手、high = 左手。`B7` を使っているピンに置き換えます。これはオプションで、`SPLIT_HAND_PIN` が未定義のままである場合、EE_HANDS メソッドまたは標準の Let's Splitが使っている MASTER_LEFT / MASTER_RIGHT 定義をまだ使うことができます。
|
* high/low ピンを使って左右を決定します。low = 右手、high = 左手。`B7` を使っているピンに置き換えます。これはオプションで、`SPLIT_HAND_PIN` が未定義のままである場合、EE_HANDS メソッドまたは標準の Let's Splitが使っている MASTER_LEFT / MASTER_RIGHT 定義をまだ使うことができます。
|
||||||
|
|
||||||
* `#define SPLIT_HAND_MATRIX_GRID <out_pin>,<in_pin>`
|
* `#define SPLIT_HAND_MATRIX_GRID <out_pin>,<in_pin>`
|
||||||
* 左右はキーマトリックスのキースイッチが存在しない交点を使って決定されます。通常、この交点が短絡している(ローレベル)のときに左側と見なされます。もし `#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT` が定義されている場合は、ローレベルの時に右側と決定されます。
|
* 左右はキーマトリックスのキースイッチが存在しない交点を使って決定されます。通常、この交点が短絡している(ローレベル)のときに右側と見なされます。もし `#define SPLIT_HAND_MATRIX_GRID_LOW_IS_LEFT` が定義されている場合は、ローレベルの時に左側と決定されます。
|
||||||
|
|
||||||
* `#define EE_HANDS` (`SPLIT_HAND_PIN` と `SPLIT_HAND_MATRIX_GRID` が定義されていない場合のみ動作します)
|
* `#define EE_HANDS` (`SPLIT_HAND_PIN` と `SPLIT_HAND_MATRIX_GRID` が定義されていない場合のみ動作します)
|
||||||
* `eeprom-lefthand.eep`/`eeprom-righthand.eep` がそれぞれの半分に書き込まれた後で、EEPROM 内に格納されている左右の設定の値を読み込みます。
|
* `eeprom-lefthand.eep`/`eeprom-righthand.eep` がそれぞれの半分に書き込まれた後で、EEPROM 内に格納されている左右の設定の値を読み込みます。
|
||||||
|
@ -108,10 +108,10 @@ SPLIT_TRANSPORT = custom
|
|||||||
|
|
||||||
キーマトリックスに未使用の交点があるキーボードがあります。この設定は、左右の決定にこれらの未使用の交点の1つを使用します。
|
キーマトリックスに未使用の交点があるキーボードがあります。この設定は、左右の決定にこれらの未使用の交点の1つを使用します。
|
||||||
|
|
||||||
通常、ダイオードが交点に接続されている場合、左側と判断されます。次の定義を追加すると、右側と判断されます。
|
通常、ダイオードが交点に接続されている場合、右側と判断されます。次の定義を追加すると、左側と判断されます。
|
||||||
|
|
||||||
```c
|
```c
|
||||||
#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT
|
#define SPLIT_HAND_MATRIX_GRID_LOW_IS_LEFT
|
||||||
```
|
```
|
||||||
|
|
||||||
#### EEPROM による左右の設定
|
#### EEPROM による左右の設定
|
||||||
|
@ -36,6 +36,7 @@ These headers are located in [`quantum/keymap_extras/`](https://github.com/qmk/q
|
|||||||
|French (AFNOR) |`keymap_french_afnor.h` |`sendstring_french_afnor.h` |
|
|French (AFNOR) |`keymap_french_afnor.h` |`sendstring_french_afnor.h` |
|
||||||
|French (BÉPO) |`keymap_bepo.h` |`sendstring_bepo.h` |
|
|French (BÉPO) |`keymap_bepo.h` |`sendstring_bepo.h` |
|
||||||
|French (Belgium) |`keymap_belgian.h` |`sendstring_belgian.h` |
|
|French (Belgium) |`keymap_belgian.h` |`sendstring_belgian.h` |
|
||||||
|
|French (Canada) |`keymap_canadian_french.h` |`sendstring_canadian_french.h` |
|
||||||
|French (Switzerland) |`keymap_swiss_fr.h` |`sendstring_swiss_fr.h` |
|
|French (Switzerland) |`keymap_swiss_fr.h` |`sendstring_swiss_fr.h` |
|
||||||
|French (macOS, ISO) |`keymap_french_mac_iso.h` |`sendstring_french_mac_iso.h` |
|
|French (macOS, ISO) |`keymap_french_mac_iso.h` |`sendstring_french_mac_iso.h` |
|
||||||
|German |`keymap_german.h` |`sendstring_german.h` |
|
|German |`keymap_german.h` |`sendstring_german.h` |
|
||||||
|
@ -55,55 +55,25 @@
|
|||||||
|
|
||||||
uint8_t apa102_led_brightness = APA102_DEFAULT_BRIGHTNESS;
|
uint8_t apa102_led_brightness = APA102_DEFAULT_BRIGHTNESS;
|
||||||
|
|
||||||
void static apa102_start_frame(void);
|
static void apa102_send_byte(uint8_t byte) {
|
||||||
void static apa102_end_frame(uint16_t num_leds);
|
APA102_SEND_BIT(byte, 7);
|
||||||
|
APA102_SEND_BIT(byte, 6);
|
||||||
void static apa102_send_frame(uint8_t red, uint8_t green, uint8_t blue, uint8_t brightness);
|
APA102_SEND_BIT(byte, 5);
|
||||||
void static apa102_send_byte(uint8_t byte);
|
APA102_SEND_BIT(byte, 4);
|
||||||
|
APA102_SEND_BIT(byte, 3);
|
||||||
void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds) {
|
APA102_SEND_BIT(byte, 2);
|
||||||
rgb_led_t *end = start_led + num_leds;
|
APA102_SEND_BIT(byte, 1);
|
||||||
|
APA102_SEND_BIT(byte, 0);
|
||||||
apa102_start_frame();
|
|
||||||
for (rgb_led_t *led = start_led; led < end; led++) {
|
|
||||||
apa102_send_frame(led->r, led->g, led->b, apa102_led_brightness);
|
|
||||||
}
|
|
||||||
apa102_end_frame(num_leds);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void static apa102_init(void) {
|
static void apa102_start_frame(void) {
|
||||||
setPinOutput(APA102_DI_PIN);
|
|
||||||
setPinOutput(APA102_CI_PIN);
|
|
||||||
|
|
||||||
writePinLow(APA102_DI_PIN);
|
|
||||||
writePinLow(APA102_CI_PIN);
|
|
||||||
}
|
|
||||||
|
|
||||||
void apa102_set_brightness(uint8_t brightness) {
|
|
||||||
if (brightness > APA102_MAX_BRIGHTNESS) {
|
|
||||||
apa102_led_brightness = APA102_MAX_BRIGHTNESS;
|
|
||||||
} else if (brightness < 0) {
|
|
||||||
apa102_led_brightness = 0;
|
|
||||||
} else {
|
|
||||||
apa102_led_brightness = brightness;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void static apa102_send_frame(uint8_t red, uint8_t green, uint8_t blue, uint8_t brightness) {
|
|
||||||
apa102_send_byte(0b11100000 | brightness);
|
|
||||||
apa102_send_byte(blue);
|
|
||||||
apa102_send_byte(green);
|
|
||||||
apa102_send_byte(red);
|
|
||||||
}
|
|
||||||
|
|
||||||
void static apa102_start_frame(void) {
|
|
||||||
apa102_init();
|
apa102_init();
|
||||||
for (uint16_t i = 0; i < 4; i++) {
|
for (uint16_t i = 0; i < 4; i++) {
|
||||||
apa102_send_byte(0);
|
apa102_send_byte(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void static apa102_end_frame(uint16_t num_leds) {
|
static void apa102_end_frame(uint16_t num_leds) {
|
||||||
// This function has been taken from: https://github.com/pololu/apa102-arduino/blob/master/APA102.h
|
// This function has been taken from: https://github.com/pololu/apa102-arduino/blob/master/APA102.h
|
||||||
// and adapted. The code is MIT licensed. I think thats compatible?
|
// and adapted. The code is MIT licensed. I think thats compatible?
|
||||||
//
|
//
|
||||||
@ -136,13 +106,37 @@ void static apa102_end_frame(uint16_t num_leds) {
|
|||||||
apa102_init();
|
apa102_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void static apa102_send_byte(uint8_t byte) {
|
static void apa102_send_frame(uint8_t red, uint8_t green, uint8_t blue, uint8_t brightness) {
|
||||||
APA102_SEND_BIT(byte, 7);
|
apa102_send_byte(0b11100000 | brightness);
|
||||||
APA102_SEND_BIT(byte, 6);
|
apa102_send_byte(blue);
|
||||||
APA102_SEND_BIT(byte, 5);
|
apa102_send_byte(green);
|
||||||
APA102_SEND_BIT(byte, 4);
|
apa102_send_byte(red);
|
||||||
APA102_SEND_BIT(byte, 3);
|
}
|
||||||
APA102_SEND_BIT(byte, 2);
|
|
||||||
APA102_SEND_BIT(byte, 1);
|
void apa102_init(void) {
|
||||||
APA102_SEND_BIT(byte, 0);
|
setPinOutput(APA102_DI_PIN);
|
||||||
|
setPinOutput(APA102_CI_PIN);
|
||||||
|
|
||||||
|
writePinLow(APA102_DI_PIN);
|
||||||
|
writePinLow(APA102_CI_PIN);
|
||||||
|
}
|
||||||
|
|
||||||
|
void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds) {
|
||||||
|
rgb_led_t *end = start_led + num_leds;
|
||||||
|
|
||||||
|
apa102_start_frame();
|
||||||
|
for (rgb_led_t *led = start_led; led < end; led++) {
|
||||||
|
apa102_send_frame(led->r, led->g, led->b, apa102_led_brightness);
|
||||||
|
}
|
||||||
|
apa102_end_frame(num_leds);
|
||||||
|
}
|
||||||
|
|
||||||
|
void apa102_set_brightness(uint8_t brightness) {
|
||||||
|
if (brightness > APA102_MAX_BRIGHTNESS) {
|
||||||
|
apa102_led_brightness = APA102_MAX_BRIGHTNESS;
|
||||||
|
} else if (brightness < 0) {
|
||||||
|
apa102_led_brightness = 0;
|
||||||
|
} else {
|
||||||
|
apa102_led_brightness = brightness;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
#define APA102_MAX_BRIGHTNESS 31
|
#define APA102_MAX_BRIGHTNESS 31
|
||||||
|
|
||||||
extern uint8_t apa102_led_brightness;
|
void apa102_init(void);
|
||||||
|
|
||||||
/* User Interface
|
/* User Interface
|
||||||
*
|
*
|
||||||
@ -44,4 +44,5 @@ extern uint8_t apa102_led_brightness;
|
|||||||
* - Send out the LED data
|
* - Send out the LED data
|
||||||
*/
|
*/
|
||||||
void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds);
|
void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds);
|
||||||
|
|
||||||
void apa102_set_brightness(uint8_t brightness);
|
void apa102_set_brightness(uint8_t brightness);
|
||||||
|
@ -134,6 +134,7 @@ void aw20216s_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
|||||||
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
|
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer[led.driver][led.r] = red;
|
g_pwm_buffer[led.driver][led.r] = red;
|
||||||
g_pwm_buffer[led.driver][led.g] = green;
|
g_pwm_buffer[led.driver][led.g] = green;
|
||||||
g_pwm_buffer[led.driver][led.b] = blue;
|
g_pwm_buffer[led.driver][led.b] = blue;
|
||||||
@ -149,8 +150,8 @@ void aw20216s_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
|
|||||||
void aw20216s_update_pwm_buffers(pin_t cs_pin, uint8_t index) {
|
void aw20216s_update_pwm_buffers(pin_t cs_pin, uint8_t index) {
|
||||||
if (g_pwm_buffer_update_required[index]) {
|
if (g_pwm_buffer_update_required[index]) {
|
||||||
aw20216s_write(cs_pin, AW20216S_PAGE_PWM, 0, g_pwm_buffer[index], AW20216S_PWM_REGISTER_COUNT);
|
aw20216s_write(cs_pin, AW20216S_PAGE_PWM, 0, g_pwm_buffer[index], AW20216S_PWM_REGISTER_COUNT);
|
||||||
|
g_pwm_buffer_update_required[index] = false;
|
||||||
}
|
}
|
||||||
g_pwm_buffer_update_required[index] = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void aw20216s_flush(void) {
|
void aw20216s_flush(void) {
|
||||||
|
@ -119,6 +119,7 @@ void aw20216s_flush(void);
|
|||||||
#define CS16_SW1 0x0F
|
#define CS16_SW1 0x0F
|
||||||
#define CS17_SW1 0x10
|
#define CS17_SW1 0x10
|
||||||
#define CS18_SW1 0x11
|
#define CS18_SW1 0x11
|
||||||
|
|
||||||
#define CS1_SW2 0x12
|
#define CS1_SW2 0x12
|
||||||
#define CS2_SW2 0x13
|
#define CS2_SW2 0x13
|
||||||
#define CS3_SW2 0x14
|
#define CS3_SW2 0x14
|
||||||
@ -137,6 +138,7 @@ void aw20216s_flush(void);
|
|||||||
#define CS16_SW2 0x21
|
#define CS16_SW2 0x21
|
||||||
#define CS17_SW2 0x22
|
#define CS17_SW2 0x22
|
||||||
#define CS18_SW2 0x23
|
#define CS18_SW2 0x23
|
||||||
|
|
||||||
#define CS1_SW3 0x24
|
#define CS1_SW3 0x24
|
||||||
#define CS2_SW3 0x25
|
#define CS2_SW3 0x25
|
||||||
#define CS3_SW3 0x26
|
#define CS3_SW3 0x26
|
||||||
@ -155,6 +157,7 @@ void aw20216s_flush(void);
|
|||||||
#define CS16_SW3 0x33
|
#define CS16_SW3 0x33
|
||||||
#define CS17_SW3 0x34
|
#define CS17_SW3 0x34
|
||||||
#define CS18_SW3 0x35
|
#define CS18_SW3 0x35
|
||||||
|
|
||||||
#define CS1_SW4 0x36
|
#define CS1_SW4 0x36
|
||||||
#define CS2_SW4 0x37
|
#define CS2_SW4 0x37
|
||||||
#define CS3_SW4 0x38
|
#define CS3_SW4 0x38
|
||||||
@ -173,6 +176,7 @@ void aw20216s_flush(void);
|
|||||||
#define CS16_SW4 0x45
|
#define CS16_SW4 0x45
|
||||||
#define CS17_SW4 0x46
|
#define CS17_SW4 0x46
|
||||||
#define CS18_SW4 0x47
|
#define CS18_SW4 0x47
|
||||||
|
|
||||||
#define CS1_SW5 0x48
|
#define CS1_SW5 0x48
|
||||||
#define CS2_SW5 0x49
|
#define CS2_SW5 0x49
|
||||||
#define CS3_SW5 0x4A
|
#define CS3_SW5 0x4A
|
||||||
@ -191,6 +195,7 @@ void aw20216s_flush(void);
|
|||||||
#define CS16_SW5 0x57
|
#define CS16_SW5 0x57
|
||||||
#define CS17_SW5 0x58
|
#define CS17_SW5 0x58
|
||||||
#define CS18_SW5 0x59
|
#define CS18_SW5 0x59
|
||||||
|
|
||||||
#define CS1_SW6 0x5A
|
#define CS1_SW6 0x5A
|
||||||
#define CS2_SW6 0x5B
|
#define CS2_SW6 0x5B
|
||||||
#define CS3_SW6 0x5C
|
#define CS3_SW6 0x5C
|
||||||
@ -209,6 +214,7 @@ void aw20216s_flush(void);
|
|||||||
#define CS16_SW6 0x69
|
#define CS16_SW6 0x69
|
||||||
#define CS17_SW6 0x6A
|
#define CS17_SW6 0x6A
|
||||||
#define CS18_SW6 0x6B
|
#define CS18_SW6 0x6B
|
||||||
|
|
||||||
#define CS1_SW7 0x6C
|
#define CS1_SW7 0x6C
|
||||||
#define CS2_SW7 0x6D
|
#define CS2_SW7 0x6D
|
||||||
#define CS3_SW7 0x6E
|
#define CS3_SW7 0x6E
|
||||||
@ -227,6 +233,7 @@ void aw20216s_flush(void);
|
|||||||
#define CS16_SW7 0x7B
|
#define CS16_SW7 0x7B
|
||||||
#define CS17_SW7 0x7C
|
#define CS17_SW7 0x7C
|
||||||
#define CS18_SW7 0x7D
|
#define CS18_SW7 0x7D
|
||||||
|
|
||||||
#define CS1_SW8 0x7E
|
#define CS1_SW8 0x7E
|
||||||
#define CS2_SW8 0x7F
|
#define CS2_SW8 0x7F
|
||||||
#define CS3_SW8 0x80
|
#define CS3_SW8 0x80
|
||||||
@ -245,6 +252,7 @@ void aw20216s_flush(void);
|
|||||||
#define CS16_SW8 0x8D
|
#define CS16_SW8 0x8D
|
||||||
#define CS17_SW8 0x8E
|
#define CS17_SW8 0x8E
|
||||||
#define CS18_SW8 0x8F
|
#define CS18_SW8 0x8F
|
||||||
|
|
||||||
#define CS1_SW9 0x90
|
#define CS1_SW9 0x90
|
||||||
#define CS2_SW9 0x91
|
#define CS2_SW9 0x91
|
||||||
#define CS3_SW9 0x92
|
#define CS3_SW9 0x92
|
||||||
@ -263,6 +271,7 @@ void aw20216s_flush(void);
|
|||||||
#define CS16_SW9 0x9F
|
#define CS16_SW9 0x9F
|
||||||
#define CS17_SW9 0xA0
|
#define CS17_SW9 0xA0
|
||||||
#define CS18_SW9 0xA1
|
#define CS18_SW9 0xA1
|
||||||
|
|
||||||
#define CS1_SW10 0xA2
|
#define CS1_SW10 0xA2
|
||||||
#define CS2_SW10 0xA3
|
#define CS2_SW10 0xA3
|
||||||
#define CS3_SW10 0xA4
|
#define CS3_SW10 0xA4
|
||||||
@ -281,6 +290,7 @@ void aw20216s_flush(void);
|
|||||||
#define CS16_SW10 0xB1
|
#define CS16_SW10 0xB1
|
||||||
#define CS17_SW10 0xB2
|
#define CS17_SW10 0xB2
|
||||||
#define CS18_SW10 0xB3
|
#define CS18_SW10 0xB3
|
||||||
|
|
||||||
#define CS1_SW11 0xB4
|
#define CS1_SW11 0xB4
|
||||||
#define CS2_SW11 0xB5
|
#define CS2_SW11 0xB5
|
||||||
#define CS3_SW11 0xB6
|
#define CS3_SW11 0xB6
|
||||||
@ -299,6 +309,7 @@ void aw20216s_flush(void);
|
|||||||
#define CS16_SW11 0xC3
|
#define CS16_SW11 0xC3
|
||||||
#define CS17_SW11 0xC4
|
#define CS17_SW11 0xC4
|
||||||
#define CS18_SW11 0xC5
|
#define CS18_SW11 0xC5
|
||||||
|
|
||||||
#define CS1_SW12 0xC6
|
#define CS1_SW12 0xC6
|
||||||
#define CS2_SW12 0xC7
|
#define CS2_SW12 0xC7
|
||||||
#define CS3_SW12 0xC8
|
#define CS3_SW12 0xC8
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "is31fl3218-mono.h"
|
#include "is31fl3218-mono.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "i2c_master.h"
|
#include "i2c_master.h"
|
||||||
@ -93,14 +94,17 @@ void is31fl3218_init(void) {
|
|||||||
|
|
||||||
void is31fl3218_set_value(int index, uint8_t value) {
|
void is31fl3218_set_value(int index, uint8_t value) {
|
||||||
is31fl3218_led_t led;
|
is31fl3218_led_t led;
|
||||||
|
|
||||||
if (index >= 0 && index < IS31FL3218_LED_COUNT) {
|
if (index >= 0 && index < IS31FL3218_LED_COUNT) {
|
||||||
memcpy_P(&led, (&g_is31fl3218_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3218_leds[index]), sizeof(led));
|
||||||
|
|
||||||
|
if (g_pwm_buffer[led.v - IS31FL3218_REG_PWM] == value) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_pwm_buffer[led.v - IS31FL3218_REG_PWM] = value;
|
||||||
|
g_pwm_buffer_update_required = true;
|
||||||
}
|
}
|
||||||
if (g_pwm_buffer[led.v - IS31FL3218_REG_PWM] == value) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
g_pwm_buffer[led.v - IS31FL3218_REG_PWM] = value;
|
|
||||||
g_pwm_buffer_update_required = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void is31fl3218_set_value_all(uint8_t value) {
|
void is31fl3218_set_value_all(uint8_t value) {
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "is31fl3218.h"
|
#include "is31fl3218.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "i2c_master.h"
|
#include "i2c_master.h"
|
||||||
@ -93,16 +94,19 @@ void is31fl3218_init(void) {
|
|||||||
|
|
||||||
void is31fl3218_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
void is31fl3218_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
||||||
is31fl3218_led_t led;
|
is31fl3218_led_t led;
|
||||||
|
|
||||||
if (index >= 0 && index < IS31FL3218_LED_COUNT) {
|
if (index >= 0 && index < IS31FL3218_LED_COUNT) {
|
||||||
memcpy_P(&led, (&g_is31fl3218_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3218_leds[index]), sizeof(led));
|
||||||
|
|
||||||
|
if (g_pwm_buffer[led.r - IS31FL3218_REG_PWM] == red && g_pwm_buffer[led.g - IS31FL3218_REG_PWM] == green && g_pwm_buffer[led.b - IS31FL3218_REG_PWM] == blue) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_pwm_buffer[led.r - IS31FL3218_REG_PWM] = red;
|
||||||
|
g_pwm_buffer[led.g - IS31FL3218_REG_PWM] = green;
|
||||||
|
g_pwm_buffer[led.b - IS31FL3218_REG_PWM] = blue;
|
||||||
|
g_pwm_buffer_update_required = true;
|
||||||
}
|
}
|
||||||
if (g_pwm_buffer[led.r - IS31FL3218_REG_PWM] == red && g_pwm_buffer[led.g - IS31FL3218_REG_PWM] == green && g_pwm_buffer[led.b - IS31FL3218_REG_PWM] == blue) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
g_pwm_buffer[led.r - IS31FL3218_REG_PWM] = red;
|
|
||||||
g_pwm_buffer[led.g - IS31FL3218_REG_PWM] = green;
|
|
||||||
g_pwm_buffer[led.b - IS31FL3218_REG_PWM] = blue;
|
|
||||||
g_pwm_buffer_update_required = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void is31fl3218_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
|
void is31fl3218_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
|
||||||
|
@ -52,9 +52,7 @@ void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
|
|||||||
|
|
||||||
#if IS31FL3731_I2C_PERSISTENCE > 0
|
#if IS31FL3731_I2C_PERSISTENCE > 0
|
||||||
for (uint8_t i = 0; i < IS31FL3731_I2C_PERSISTENCE; i++) {
|
for (uint8_t i = 0; i < IS31FL3731_I2C_PERSISTENCE; i++) {
|
||||||
if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3731_I2C_TIMEOUT) == 0) {
|
if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3731_I2C_TIMEOUT) == 0) break;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3731_I2C_TIMEOUT);
|
i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3731_I2C_TIMEOUT);
|
||||||
@ -174,14 +172,15 @@ void is31fl3731_init(uint8_t addr) {
|
|||||||
|
|
||||||
void is31fl3731_set_value(int index, uint8_t value) {
|
void is31fl3731_set_value(int index, uint8_t value) {
|
||||||
is31fl3731_led_t led;
|
is31fl3731_led_t led;
|
||||||
|
|
||||||
if (index >= 0 && index < IS31FL3731_LED_COUNT) {
|
if (index >= 0 && index < IS31FL3731_LED_COUNT) {
|
||||||
memcpy_P(&led, (&g_is31fl3731_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3731_leds[index]), sizeof(led));
|
||||||
|
|
||||||
// Subtract 0x24 to get the second index of g_pwm_buffer
|
// Subtract 0x24 to get the second index of g_pwm_buffer
|
||||||
|
|
||||||
if (g_pwm_buffer[led.driver][led.v - 0x24] == value) {
|
if (g_pwm_buffer[led.driver][led.v - 0x24] == value) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer[led.driver][led.v - 0x24] = value;
|
g_pwm_buffer[led.driver][led.v - 0x24] = value;
|
||||||
g_pwm_buffer_update_required[led.driver] = true;
|
g_pwm_buffer_update_required[led.driver] = true;
|
||||||
}
|
}
|
||||||
@ -212,6 +211,7 @@ void is31fl3731_set_led_control_register(uint8_t index, bool value) {
|
|||||||
void is31fl3731_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
void is31fl3731_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
||||||
if (g_pwm_buffer_update_required[index]) {
|
if (g_pwm_buffer_update_required[index]) {
|
||||||
is31fl3731_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
is31fl3731_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
||||||
|
|
||||||
g_pwm_buffer_update_required[index] = false;
|
g_pwm_buffer_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -221,6 +221,7 @@ void is31fl3731_update_led_control_registers(uint8_t addr, uint8_t index) {
|
|||||||
for (int i = 0; i < IS31FL3731_LED_CONTROL_REGISTER_COUNT; i++) {
|
for (int i = 0; i < IS31FL3731_LED_CONTROL_REGISTER_COUNT; i++) {
|
||||||
is31fl3731_write_register(addr, i, g_led_control_registers[index][i]);
|
is31fl3731_write_register(addr, i, g_led_control_registers[index][i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_led_control_registers_update_required[index] = false;
|
g_led_control_registers_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -171,6 +171,7 @@ void is31fl3731_init(uint8_t addr) {
|
|||||||
|
|
||||||
void is31fl3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
void is31fl3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
||||||
is31fl3731_led_t led;
|
is31fl3731_led_t led;
|
||||||
|
|
||||||
if (index >= 0 && index < IS31FL3731_LED_COUNT) {
|
if (index >= 0 && index < IS31FL3731_LED_COUNT) {
|
||||||
memcpy_P(&led, (&g_is31fl3731_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3731_leds[index]), sizeof(led));
|
||||||
|
|
||||||
@ -178,6 +179,7 @@ void is31fl3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
|||||||
if (g_pwm_buffer[led.driver][led.r - 0x24] == red && g_pwm_buffer[led.driver][led.g - 0x24] == green && g_pwm_buffer[led.driver][led.b - 0x24] == blue) {
|
if (g_pwm_buffer[led.driver][led.r - 0x24] == red && g_pwm_buffer[led.driver][led.g - 0x24] == green && g_pwm_buffer[led.driver][led.b - 0x24] == blue) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer[led.driver][led.r - 0x24] = red;
|
g_pwm_buffer[led.driver][led.r - 0x24] = red;
|
||||||
g_pwm_buffer[led.driver][led.g - 0x24] = green;
|
g_pwm_buffer[led.driver][led.g - 0x24] = green;
|
||||||
g_pwm_buffer[led.driver][led.b - 0x24] = blue;
|
g_pwm_buffer[led.driver][led.b - 0x24] = blue;
|
||||||
@ -224,8 +226,9 @@ void is31fl3731_set_led_control_register(uint8_t index, bool red, bool green, bo
|
|||||||
void is31fl3731_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
void is31fl3731_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
||||||
if (g_pwm_buffer_update_required[index]) {
|
if (g_pwm_buffer_update_required[index]) {
|
||||||
is31fl3731_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
is31fl3731_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
||||||
|
|
||||||
|
g_pwm_buffer_update_required[index] = false;
|
||||||
}
|
}
|
||||||
g_pwm_buffer_update_required[index] = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void is31fl3731_update_led_control_registers(uint8_t addr, uint8_t index) {
|
void is31fl3731_update_led_control_registers(uint8_t addr, uint8_t index) {
|
||||||
@ -233,8 +236,9 @@ void is31fl3731_update_led_control_registers(uint8_t addr, uint8_t index) {
|
|||||||
for (int i = 0; i < IS31FL3731_LED_CONTROL_REGISTER_COUNT; i++) {
|
for (int i = 0; i < IS31FL3731_LED_CONTROL_REGISTER_COUNT; i++) {
|
||||||
is31fl3731_write_register(addr, i, g_led_control_registers[index][i]);
|
is31fl3731_write_register(addr, i, g_led_control_registers[index][i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_led_control_registers_update_required[index] = false;
|
||||||
}
|
}
|
||||||
g_led_control_registers_update_required[index] = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void is31fl3731_flush(void) {
|
void is31fl3731_flush(void) {
|
||||||
|
@ -77,23 +77,17 @@ bool g_pwm_buffer_update_required[IS31FL3733_DRIVER_COUNT] = {false};
|
|||||||
uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][IS31FL3733_LED_CONTROL_REGISTER_COUNT] = {0};
|
uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][IS31FL3733_LED_CONTROL_REGISTER_COUNT] = {0};
|
||||||
bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT] = {false};
|
bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT] = {false};
|
||||||
|
|
||||||
bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
|
void is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
|
||||||
// If the transaction fails function returns false.
|
|
||||||
i2c_transfer_buffer[0] = reg;
|
i2c_transfer_buffer[0] = reg;
|
||||||
i2c_transfer_buffer[1] = data;
|
i2c_transfer_buffer[1] = data;
|
||||||
|
|
||||||
#if IS31FL3733_I2C_PERSISTENCE > 0
|
#if IS31FL3733_I2C_PERSISTENCE > 0
|
||||||
for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) {
|
for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) {
|
||||||
if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) {
|
if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) == 0) break;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) {
|
i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT);
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void is31fl3733_select_page(uint8_t addr, uint8_t page) {
|
void is31fl3733_select_page(uint8_t addr, uint8_t page) {
|
||||||
@ -199,12 +193,14 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) {
|
|||||||
|
|
||||||
void is31fl3733_set_value(int index, uint8_t value) {
|
void is31fl3733_set_value(int index, uint8_t value) {
|
||||||
is31fl3733_led_t led;
|
is31fl3733_led_t led;
|
||||||
|
|
||||||
if (index >= 0 && index < IS31FL3733_LED_COUNT) {
|
if (index >= 0 && index < IS31FL3733_LED_COUNT) {
|
||||||
memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led));
|
||||||
|
|
||||||
if (g_pwm_buffer[led.driver][led.v] == value) {
|
if (g_pwm_buffer[led.driver][led.v] == value) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer[led.driver][led.v] = value;
|
g_pwm_buffer[led.driver][led.v] = value;
|
||||||
g_pwm_buffer_update_required[led.driver] = true;
|
g_pwm_buffer_update_required[led.driver] = true;
|
||||||
}
|
}
|
||||||
@ -241,6 +237,7 @@ void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
|||||||
if (!is31fl3733_write_pwm_buffer(addr, g_pwm_buffer[index])) {
|
if (!is31fl3733_write_pwm_buffer(addr, g_pwm_buffer[index])) {
|
||||||
g_led_control_registers_update_required[index] = true;
|
g_led_control_registers_update_required[index] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer_update_required[index] = false;
|
g_pwm_buffer_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -252,6 +249,7 @@ void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) {
|
|||||||
for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) {
|
for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) {
|
||||||
is31fl3733_write_register(addr, i, g_led_control_registers[index][i]);
|
is31fl3733_write_register(addr, i, g_led_control_registers[index][i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_led_control_registers_update_required[index] = false;
|
g_led_control_registers_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -116,7 +116,7 @@ extern const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT];
|
|||||||
|
|
||||||
void is31fl3733_init_drivers(void);
|
void is31fl3733_init_drivers(void);
|
||||||
void is31fl3733_init(uint8_t addr, uint8_t sync);
|
void is31fl3733_init(uint8_t addr, uint8_t sync);
|
||||||
bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data);
|
void is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data);
|
||||||
void is31fl3733_select_page(uint8_t addr, uint8_t page);
|
void is31fl3733_select_page(uint8_t addr, uint8_t page);
|
||||||
bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
|
bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
|
||||||
|
|
||||||
|
@ -76,23 +76,17 @@ bool g_pwm_buffer_update_required[IS31FL3733_DRIVER_COUNT] = {false};
|
|||||||
uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][IS31FL3733_LED_CONTROL_REGISTER_COUNT] = {0};
|
uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][IS31FL3733_LED_CONTROL_REGISTER_COUNT] = {0};
|
||||||
bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT] = {false};
|
bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT] = {false};
|
||||||
|
|
||||||
bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
|
void is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
|
||||||
// If the transaction fails function returns false.
|
|
||||||
i2c_transfer_buffer[0] = reg;
|
i2c_transfer_buffer[0] = reg;
|
||||||
i2c_transfer_buffer[1] = data;
|
i2c_transfer_buffer[1] = data;
|
||||||
|
|
||||||
#if IS31FL3733_I2C_PERSISTENCE > 0
|
#if IS31FL3733_I2C_PERSISTENCE > 0
|
||||||
for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) {
|
for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) {
|
||||||
if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) {
|
if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) == 0) break;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) {
|
i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT);
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void is31fl3733_select_page(uint8_t addr, uint8_t page) {
|
void is31fl3733_select_page(uint8_t addr, uint8_t page) {
|
||||||
@ -198,12 +192,14 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) {
|
|||||||
|
|
||||||
void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
||||||
is31fl3733_led_t led;
|
is31fl3733_led_t led;
|
||||||
|
|
||||||
if (index >= 0 && index < IS31FL3733_LED_COUNT) {
|
if (index >= 0 && index < IS31FL3733_LED_COUNT) {
|
||||||
memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led));
|
||||||
|
|
||||||
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
|
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer[led.driver][led.r] = red;
|
g_pwm_buffer[led.driver][led.r] = red;
|
||||||
g_pwm_buffer[led.driver][led.g] = green;
|
g_pwm_buffer[led.driver][led.g] = green;
|
||||||
g_pwm_buffer[led.driver][led.b] = blue;
|
g_pwm_buffer[led.driver][led.b] = blue;
|
||||||
@ -256,6 +252,7 @@ void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
|||||||
if (!is31fl3733_write_pwm_buffer(addr, g_pwm_buffer[index])) {
|
if (!is31fl3733_write_pwm_buffer(addr, g_pwm_buffer[index])) {
|
||||||
g_led_control_registers_update_required[index] = true;
|
g_led_control_registers_update_required[index] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer_update_required[index] = false;
|
g_pwm_buffer_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -267,6 +264,7 @@ void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) {
|
|||||||
for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) {
|
for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) {
|
||||||
is31fl3733_write_register(addr, i, g_led_control_registers[index][i]);
|
is31fl3733_write_register(addr, i, g_led_control_registers[index][i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_led_control_registers_update_required[index] = false;
|
g_led_control_registers_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,13 +40,13 @@
|
|||||||
#ifdef DRIVER_SYNC_1
|
#ifdef DRIVER_SYNC_1
|
||||||
# define IS31FL3733_SYNC_1 DRIVER_SYNC_1
|
# define IS31FL3733_SYNC_1 DRIVER_SYNC_1
|
||||||
#endif
|
#endif
|
||||||
#ifdef DRIVER_ADDR_2
|
#ifdef DRIVER_SYNC_2
|
||||||
# define IS31FL3733_SYNC_2 DRIVER_SYNC_2
|
# define IS31FL3733_SYNC_2 DRIVER_SYNC_2
|
||||||
#endif
|
#endif
|
||||||
#ifdef DRIVER_ADDR_3
|
#ifdef DRIVER_SYNC_3
|
||||||
# define IS31FL3733_SYNC_3 DRIVER_SYNC_3
|
# define IS31FL3733_SYNC_3 DRIVER_SYNC_3
|
||||||
#endif
|
#endif
|
||||||
#ifdef DRIVER_ADDR_4
|
#ifdef DRIVER_SYNC_4
|
||||||
# define IS31FL3733_SYNC_4 DRIVER_SYNC_4
|
# define IS31FL3733_SYNC_4 DRIVER_SYNC_4
|
||||||
#endif
|
#endif
|
||||||
#ifdef ISSI_TIMEOUT
|
#ifdef ISSI_TIMEOUT
|
||||||
@ -141,7 +141,7 @@ extern const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT];
|
|||||||
|
|
||||||
void is31fl3733_init_drivers(void);
|
void is31fl3733_init_drivers(void);
|
||||||
void is31fl3733_init(uint8_t addr, uint8_t sync);
|
void is31fl3733_init(uint8_t addr, uint8_t sync);
|
||||||
bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data);
|
void is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data);
|
||||||
void is31fl3733_select_page(uint8_t addr, uint8_t page);
|
void is31fl3733_select_page(uint8_t addr, uint8_t page);
|
||||||
bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
|
bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
|
||||||
|
|
||||||
|
@ -171,12 +171,14 @@ void is31fl3736_init(uint8_t addr) {
|
|||||||
|
|
||||||
void is31fl3736_set_value(int index, uint8_t value) {
|
void is31fl3736_set_value(int index, uint8_t value) {
|
||||||
is31fl3736_led_t led;
|
is31fl3736_led_t led;
|
||||||
|
|
||||||
if (index >= 0 && index < IS31FL3736_LED_COUNT) {
|
if (index >= 0 && index < IS31FL3736_LED_COUNT) {
|
||||||
memcpy_P(&led, (&g_is31fl3736_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3736_leds[index]), sizeof(led));
|
||||||
|
|
||||||
if (g_pwm_buffer[led.driver][led.v] == value) {
|
if (g_pwm_buffer[led.driver][led.v] == value) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer[led.driver][led.v] = value;
|
g_pwm_buffer[led.driver][led.v] = value;
|
||||||
g_pwm_buffer_update_required[led.driver] = true;
|
g_pwm_buffer_update_required[led.driver] = true;
|
||||||
}
|
}
|
||||||
@ -215,6 +217,7 @@ void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
|||||||
is31fl3736_select_page(addr, IS31FL3736_COMMAND_PWM);
|
is31fl3736_select_page(addr, IS31FL3736_COMMAND_PWM);
|
||||||
|
|
||||||
is31fl3736_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
is31fl3736_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
||||||
|
|
||||||
g_pwm_buffer_update_required[index] = false;
|
g_pwm_buffer_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -226,6 +229,7 @@ void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index) {
|
|||||||
for (int i = 0; i < IS31FL3736_LED_CONTROL_REGISTER_COUNT; i++) {
|
for (int i = 0; i < IS31FL3736_LED_CONTROL_REGISTER_COUNT; i++) {
|
||||||
is31fl3736_write_register(addr, i, g_led_control_registers[index][i]);
|
is31fl3736_write_register(addr, i, g_led_control_registers[index][i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_led_control_registers_update_required[index] = false;
|
g_led_control_registers_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -171,12 +171,14 @@ void is31fl3736_init(uint8_t addr) {
|
|||||||
|
|
||||||
void is31fl3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
void is31fl3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
||||||
is31fl3736_led_t led;
|
is31fl3736_led_t led;
|
||||||
|
|
||||||
if (index >= 0 && index < IS31FL3736_LED_COUNT) {
|
if (index >= 0 && index < IS31FL3736_LED_COUNT) {
|
||||||
memcpy_P(&led, (&g_is31fl3736_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3736_leds[index]), sizeof(led));
|
||||||
|
|
||||||
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
|
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer[led.driver][led.r] = red;
|
g_pwm_buffer[led.driver][led.r] = red;
|
||||||
g_pwm_buffer[led.driver][led.g] = green;
|
g_pwm_buffer[led.driver][led.g] = green;
|
||||||
g_pwm_buffer[led.driver][led.b] = blue;
|
g_pwm_buffer[led.driver][led.b] = blue;
|
||||||
@ -232,6 +234,7 @@ void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
|||||||
is31fl3736_select_page(addr, IS31FL3736_COMMAND_PWM);
|
is31fl3736_select_page(addr, IS31FL3736_COMMAND_PWM);
|
||||||
|
|
||||||
is31fl3736_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
is31fl3736_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
||||||
|
|
||||||
g_pwm_buffer_update_required[index] = false;
|
g_pwm_buffer_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -243,6 +246,7 @@ void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index) {
|
|||||||
for (int i = 0; i < IS31FL3736_LED_CONTROL_REGISTER_COUNT; i++) {
|
for (int i = 0; i < IS31FL3736_LED_CONTROL_REGISTER_COUNT; i++) {
|
||||||
is31fl3736_write_register(addr, i, g_led_control_registers[index][i]);
|
is31fl3736_write_register(addr, i, g_led_control_registers[index][i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_led_control_registers_update_required[index] = false;
|
g_led_control_registers_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -174,12 +174,14 @@ void is31fl3737_init(uint8_t addr) {
|
|||||||
|
|
||||||
void is31fl3737_set_value(int index, uint8_t value) {
|
void is31fl3737_set_value(int index, uint8_t value) {
|
||||||
is31fl3737_led_t led;
|
is31fl3737_led_t led;
|
||||||
|
|
||||||
if (index >= 0 && index < IS31FL3737_LED_COUNT) {
|
if (index >= 0 && index < IS31FL3737_LED_COUNT) {
|
||||||
memcpy_P(&led, (&g_is31fl3737_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3737_leds[index]), sizeof(led));
|
||||||
|
|
||||||
if (g_pwm_buffer[led.driver][led.v] == value) {
|
if (g_pwm_buffer[led.driver][led.v] == value) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer[led.driver][led.v] = value;
|
g_pwm_buffer[led.driver][led.v] = value;
|
||||||
g_pwm_buffer_update_required[led.driver] = true;
|
g_pwm_buffer_update_required[led.driver] = true;
|
||||||
}
|
}
|
||||||
@ -212,6 +214,7 @@ void is31fl3737_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
|||||||
is31fl3737_select_page(addr, IS31FL3737_COMMAND_PWM);
|
is31fl3737_select_page(addr, IS31FL3737_COMMAND_PWM);
|
||||||
|
|
||||||
is31fl3737_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
is31fl3737_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
||||||
|
|
||||||
g_pwm_buffer_update_required[index] = false;
|
g_pwm_buffer_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -223,6 +226,7 @@ void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index) {
|
|||||||
for (int i = 0; i < IS31FL3737_LED_CONTROL_REGISTER_COUNT; i++) {
|
for (int i = 0; i < IS31FL3737_LED_CONTROL_REGISTER_COUNT; i++) {
|
||||||
is31fl3737_write_register(addr, i, g_led_control_registers[index][i]);
|
is31fl3737_write_register(addr, i, g_led_control_registers[index][i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_led_control_registers_update_required[index] = false;
|
g_led_control_registers_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@
|
|||||||
# define IS31FL3737_SW_PULLUP IS31FL3737_PUR_0_OHM
|
# define IS31FL3737_SW_PULLUP IS31FL3737_PUR_0_OHM
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef IS31FL3737_CS_PULLDONW
|
#ifndef IS31FL3737_CS_PULLDOWN
|
||||||
# define IS31FL3737_CS_PULLDOWN IS31FL3737_PDR_0_OHM
|
# define IS31FL3737_CS_PULLDOWN IS31FL3737_PDR_0_OHM
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -174,12 +174,14 @@ void is31fl3737_init(uint8_t addr) {
|
|||||||
|
|
||||||
void is31fl3737_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
void is31fl3737_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
||||||
is31fl3737_led_t led;
|
is31fl3737_led_t led;
|
||||||
|
|
||||||
if (index >= 0 && index < IS31FL3737_LED_COUNT) {
|
if (index >= 0 && index < IS31FL3737_LED_COUNT) {
|
||||||
memcpy_P(&led, (&g_is31fl3737_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3737_leds[index]), sizeof(led));
|
||||||
|
|
||||||
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
|
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer[led.driver][led.r] = red;
|
g_pwm_buffer[led.driver][led.r] = red;
|
||||||
g_pwm_buffer[led.driver][led.g] = green;
|
g_pwm_buffer[led.driver][led.g] = green;
|
||||||
g_pwm_buffer[led.driver][led.b] = blue;
|
g_pwm_buffer[led.driver][led.b] = blue;
|
||||||
@ -228,6 +230,7 @@ void is31fl3737_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
|||||||
is31fl3737_select_page(addr, IS31FL3737_COMMAND_PWM);
|
is31fl3737_select_page(addr, IS31FL3737_COMMAND_PWM);
|
||||||
|
|
||||||
is31fl3737_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
is31fl3737_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
||||||
|
|
||||||
g_pwm_buffer_update_required[index] = false;
|
g_pwm_buffer_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -239,6 +242,7 @@ void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index) {
|
|||||||
for (int i = 0; i < IS31FL3737_LED_CONTROL_REGISTER_COUNT; i++) {
|
for (int i = 0; i < IS31FL3737_LED_CONTROL_REGISTER_COUNT; i++) {
|
||||||
is31fl3737_write_register(addr, i, g_led_control_registers[index][i]);
|
is31fl3737_write_register(addr, i, g_led_control_registers[index][i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_led_control_registers_update_required[index] = false;
|
g_led_control_registers_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -185,12 +185,14 @@ void is31fl3741_init(uint8_t addr) {
|
|||||||
|
|
||||||
void is31fl3741_set_value(int index, uint8_t value) {
|
void is31fl3741_set_value(int index, uint8_t value) {
|
||||||
is31fl3741_led_t led;
|
is31fl3741_led_t led;
|
||||||
|
|
||||||
if (index >= 0 && index < IS31FL3741_LED_COUNT) {
|
if (index >= 0 && index < IS31FL3741_LED_COUNT) {
|
||||||
memcpy_P(&led, (&g_is31fl3741_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3741_leds[index]), sizeof(led));
|
||||||
|
|
||||||
if (g_pwm_buffer[led.driver][led.v] == value) {
|
if (g_pwm_buffer[led.driver][led.v] == value) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer_update_required[led.driver] = true;
|
g_pwm_buffer_update_required[led.driver] = true;
|
||||||
g_pwm_buffer[led.driver][led.v] = value;
|
g_pwm_buffer[led.driver][led.v] = value;
|
||||||
}
|
}
|
||||||
@ -220,14 +222,13 @@ void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
|||||||
is31fl3741_select_page(addr, IS31FL3741_COMMAND_PWM_0);
|
is31fl3741_select_page(addr, IS31FL3741_COMMAND_PWM_0);
|
||||||
|
|
||||||
is31fl3741_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
is31fl3741_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
||||||
}
|
|
||||||
|
|
||||||
g_pwm_buffer_update_required[index] = false;
|
g_pwm_buffer_update_required[index] = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void is31fl3741_set_pwm_buffer(const is31fl3741_led_t *pled, uint8_t value) {
|
void is31fl3741_set_pwm_buffer(const is31fl3741_led_t *pled, uint8_t value) {
|
||||||
g_pwm_buffer[pled->driver][pled->v] = value;
|
g_pwm_buffer[pled->driver][pled->v] = value;
|
||||||
|
|
||||||
g_pwm_buffer_update_required[pled->driver] = true;
|
g_pwm_buffer_update_required[pled->driver] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -252,8 +253,7 @@ void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void is31fl3741_set_scaling_registers(const is31fl3741_led_t *pled, uint8_t value) {
|
void is31fl3741_set_scaling_registers(const is31fl3741_led_t *pled, uint8_t value) {
|
||||||
g_scaling_registers[pled->driver][pled->v] = value;
|
g_scaling_registers[pled->driver][pled->v] = value;
|
||||||
|
|
||||||
g_scaling_registers_update_required[pled->driver] = true;
|
g_scaling_registers_update_required[pled->driver] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index);
|
|||||||
void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index);
|
void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index);
|
||||||
void is31fl3741_set_scaling_registers(const is31fl3741_led_t *pled, uint8_t value);
|
void is31fl3741_set_scaling_registers(const is31fl3741_led_t *pled, uint8_t value);
|
||||||
|
|
||||||
void is31fl3741_set_pwm_buffer(const is31fl3741_led *pled, uint8_t value);
|
void is31fl3741_set_pwm_buffer(const is31fl3741_led_t *pled, uint8_t value);
|
||||||
|
|
||||||
void is31fl3741_flush(void);
|
void is31fl3741_flush(void);
|
||||||
|
|
||||||
|
@ -185,12 +185,14 @@ void is31fl3741_init(uint8_t addr) {
|
|||||||
|
|
||||||
void is31fl3741_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
void is31fl3741_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
||||||
is31fl3741_led_t led;
|
is31fl3741_led_t led;
|
||||||
|
|
||||||
if (index >= 0 && index < IS31FL3741_LED_COUNT) {
|
if (index >= 0 && index < IS31FL3741_LED_COUNT) {
|
||||||
memcpy_P(&led, (&g_is31fl3741_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3741_leds[index]), sizeof(led));
|
||||||
|
|
||||||
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
|
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer_update_required[led.driver] = true;
|
g_pwm_buffer_update_required[led.driver] = true;
|
||||||
g_pwm_buffer[led.driver][led.r] = red;
|
g_pwm_buffer[led.driver][led.r] = red;
|
||||||
g_pwm_buffer[led.driver][led.g] = green;
|
g_pwm_buffer[led.driver][led.g] = green;
|
||||||
@ -234,16 +236,15 @@ void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
|||||||
is31fl3741_select_page(addr, IS31FL3741_COMMAND_PWM_0);
|
is31fl3741_select_page(addr, IS31FL3741_COMMAND_PWM_0);
|
||||||
|
|
||||||
is31fl3741_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
is31fl3741_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
||||||
}
|
|
||||||
|
|
||||||
g_pwm_buffer_update_required[index] = false;
|
g_pwm_buffer_update_required[index] = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void is31fl3741_set_pwm_buffer(const is31fl3741_led_t *pled, uint8_t red, uint8_t green, uint8_t blue) {
|
void is31fl3741_set_pwm_buffer(const is31fl3741_led_t *pled, uint8_t red, uint8_t green, uint8_t blue) {
|
||||||
g_pwm_buffer[pled->driver][pled->r] = red;
|
g_pwm_buffer[pled->driver][pled->r] = red;
|
||||||
g_pwm_buffer[pled->driver][pled->g] = green;
|
g_pwm_buffer[pled->driver][pled->g] = green;
|
||||||
g_pwm_buffer[pled->driver][pled->b] = blue;
|
g_pwm_buffer[pled->driver][pled->b] = blue;
|
||||||
|
|
||||||
g_pwm_buffer_update_required[pled->driver] = true;
|
g_pwm_buffer_update_required[pled->driver] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -268,10 +269,9 @@ void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void is31fl3741_set_scaling_registers(const is31fl3741_led_t *pled, uint8_t red, uint8_t green, uint8_t blue) {
|
void is31fl3741_set_scaling_registers(const is31fl3741_led_t *pled, uint8_t red, uint8_t green, uint8_t blue) {
|
||||||
g_scaling_registers[pled->driver][pled->r] = red;
|
g_scaling_registers[pled->driver][pled->r] = red;
|
||||||
g_scaling_registers[pled->driver][pled->g] = green;
|
g_scaling_registers[pled->driver][pled->g] = green;
|
||||||
g_scaling_registers[pled->driver][pled->b] = blue;
|
g_scaling_registers[pled->driver][pled->b] = blue;
|
||||||
|
|
||||||
g_scaling_registers_update_required[pled->driver] = true;
|
g_scaling_registers_update_required[pled->driver] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,23 @@
|
|||||||
|
/* Copyright 2017 Jason Williams
|
||||||
|
* Copyright 2018 Jack Humbert
|
||||||
|
* Copyright 2018 Yiancar
|
||||||
|
* Copyright 2020 MelGeek
|
||||||
|
* Copyright 2021 MasterSpoon
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "is31fl3742a-mono.h"
|
#include "is31fl3742a-mono.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "i2c_master.h"
|
#include "i2c_master.h"
|
||||||
@ -146,12 +166,14 @@ void is31fl3742a_init(uint8_t addr) {
|
|||||||
|
|
||||||
void is31fl3742a_set_value(int index, uint8_t value) {
|
void is31fl3742a_set_value(int index, uint8_t value) {
|
||||||
is31fl3742a_led_t led;
|
is31fl3742a_led_t led;
|
||||||
|
|
||||||
if (index >= 0 && index < IS31FL3742A_LED_COUNT) {
|
if (index >= 0 && index < IS31FL3742A_LED_COUNT) {
|
||||||
memcpy_P(&led, (&g_is31fl3742a_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3742a_leds[index]), sizeof(led));
|
||||||
|
|
||||||
if (g_pwm_buffer[led.driver][led.v] == value) {
|
if (g_pwm_buffer[led.driver][led.v] == value) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer[led.driver][led.v] = value;
|
g_pwm_buffer[led.driver][led.v] = value;
|
||||||
g_pwm_buffer_update_required[led.driver] = true;
|
g_pwm_buffer_update_required[led.driver] = true;
|
||||||
}
|
}
|
||||||
@ -167,8 +189,7 @@ void is31fl3742a_set_scaling_register(uint8_t index, uint8_t value) {
|
|||||||
is31fl3742a_led_t led;
|
is31fl3742a_led_t led;
|
||||||
memcpy_P(&led, (&g_is31fl3742a_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3742a_leds[index]), sizeof(led));
|
||||||
|
|
||||||
g_scaling_registers[led.driver][led.v] = value;
|
g_scaling_registers[led.driver][led.v] = value;
|
||||||
|
|
||||||
g_scaling_registers_update_required[led.driver] = true;
|
g_scaling_registers_update_required[led.driver] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -177,6 +198,7 @@ void is31fl3742a_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
|||||||
is31fl3742a_select_page(addr, IS31FL3742A_COMMAND_PWM);
|
is31fl3742a_select_page(addr, IS31FL3742A_COMMAND_PWM);
|
||||||
|
|
||||||
is31fl3742a_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
is31fl3742a_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
||||||
|
|
||||||
g_pwm_buffer_update_required[index] = false;
|
g_pwm_buffer_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -188,6 +210,7 @@ void is31fl3742a_update_scaling_registers(uint8_t addr, uint8_t index) {
|
|||||||
for (int i = 0; i < IS31FL3742A_SCALING_REGISTER_COUNT; i++) {
|
for (int i = 0; i < IS31FL3742A_SCALING_REGISTER_COUNT; i++) {
|
||||||
is31fl3742a_write_register(addr, i, g_scaling_registers[index][i]);
|
is31fl3742a_write_register(addr, i, g_scaling_registers[index][i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_scaling_registers_update_required[index] = false;
|
g_scaling_registers_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,23 @@
|
|||||||
|
/* Copyright 2017 Jason Williams
|
||||||
|
* Copyright 2018 Jack Humbert
|
||||||
|
* Copyright 2018 Yiancar
|
||||||
|
* Copyright 2020 MelGeek
|
||||||
|
* Copyright 2021 MasterSpoon
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "is31fl3742a.h"
|
#include "is31fl3742a.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "i2c_master.h"
|
#include "i2c_master.h"
|
||||||
@ -146,12 +166,14 @@ void is31fl3742a_init(uint8_t addr) {
|
|||||||
|
|
||||||
void is31fl3742a_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
void is31fl3742a_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
||||||
is31fl3742a_led_t led;
|
is31fl3742a_led_t led;
|
||||||
|
|
||||||
if (index >= 0 && index < IS31FL3742A_LED_COUNT) {
|
if (index >= 0 && index < IS31FL3742A_LED_COUNT) {
|
||||||
memcpy_P(&led, (&g_is31fl3742a_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3742a_leds[index]), sizeof(led));
|
||||||
|
|
||||||
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
|
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer[led.driver][led.r] = red;
|
g_pwm_buffer[led.driver][led.r] = red;
|
||||||
g_pwm_buffer[led.driver][led.g] = green;
|
g_pwm_buffer[led.driver][led.g] = green;
|
||||||
g_pwm_buffer[led.driver][led.b] = blue;
|
g_pwm_buffer[led.driver][led.b] = blue;
|
||||||
@ -169,10 +191,9 @@ void is31fl3742a_set_scaling_register(uint8_t index, uint8_t red, uint8_t green,
|
|||||||
is31fl3742a_led_t led;
|
is31fl3742a_led_t led;
|
||||||
memcpy_P(&led, (&g_is31fl3742a_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3742a_leds[index]), sizeof(led));
|
||||||
|
|
||||||
g_scaling_registers[led.driver][led.r] = red;
|
g_scaling_registers[led.driver][led.r] = red;
|
||||||
g_scaling_registers[led.driver][led.g] = green;
|
g_scaling_registers[led.driver][led.g] = green;
|
||||||
g_scaling_registers[led.driver][led.b] = blue;
|
g_scaling_registers[led.driver][led.b] = blue;
|
||||||
|
|
||||||
g_scaling_registers_update_required[led.driver] = true;
|
g_scaling_registers_update_required[led.driver] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -181,6 +202,7 @@ void is31fl3742a_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
|||||||
is31fl3742a_select_page(addr, IS31FL3742A_COMMAND_PWM);
|
is31fl3742a_select_page(addr, IS31FL3742A_COMMAND_PWM);
|
||||||
|
|
||||||
is31fl3742a_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
is31fl3742a_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
||||||
|
|
||||||
g_pwm_buffer_update_required[index] = false;
|
g_pwm_buffer_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -192,6 +214,7 @@ void is31fl3742a_update_scaling_registers(uint8_t addr, uint8_t index) {
|
|||||||
for (int i = 0; i < IS31FL3742A_SCALING_REGISTER_COUNT; i++) {
|
for (int i = 0; i < IS31FL3742A_SCALING_REGISTER_COUNT; i++) {
|
||||||
is31fl3742a_write_register(addr, i, g_scaling_registers[index][i]);
|
is31fl3742a_write_register(addr, i, g_scaling_registers[index][i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_scaling_registers_update_required[index] = false;
|
g_scaling_registers_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,23 @@
|
|||||||
|
/* Copyright 2017 Jason Williams
|
||||||
|
* Copyright 2018 Jack Humbert
|
||||||
|
* Copyright 2018 Yiancar
|
||||||
|
* Copyright 2020 MelGeek
|
||||||
|
* Copyright 2021 MasterSpoon
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "is31fl3743a-mono.h"
|
#include "is31fl3743a-mono.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "i2c_master.h"
|
#include "i2c_master.h"
|
||||||
@ -155,12 +175,14 @@ void is31fl3743a_init(uint8_t addr, uint8_t sync) {
|
|||||||
|
|
||||||
void is31fl3743a_set_value(int index, uint8_t value) {
|
void is31fl3743a_set_value(int index, uint8_t value) {
|
||||||
is31fl3743a_led_t led;
|
is31fl3743a_led_t led;
|
||||||
|
|
||||||
if (index >= 0 && index < IS31FL3743A_LED_COUNT) {
|
if (index >= 0 && index < IS31FL3743A_LED_COUNT) {
|
||||||
memcpy_P(&led, (&g_is31fl3743a_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3743a_leds[index]), sizeof(led));
|
||||||
|
|
||||||
if (g_pwm_buffer[led.driver][led.v] == value) {
|
if (g_pwm_buffer[led.driver][led.v] == value) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer_update_required[led.driver] = true;
|
g_pwm_buffer_update_required[led.driver] = true;
|
||||||
g_pwm_buffer[led.driver][led.v] = value;
|
g_pwm_buffer[led.driver][led.v] = value;
|
||||||
}
|
}
|
||||||
@ -176,8 +198,7 @@ void is31fl3743a_set_scaling_register(uint8_t index, uint8_t value) {
|
|||||||
is31fl3743a_led_t led;
|
is31fl3743a_led_t led;
|
||||||
memcpy_P(&led, (&g_is31fl3743a_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3743a_leds[index]), sizeof(led));
|
||||||
|
|
||||||
g_scaling_registers[led.driver][led.v] = value;
|
g_scaling_registers[led.driver][led.v] = value;
|
||||||
|
|
||||||
g_scaling_registers_update_required[led.driver] = true;
|
g_scaling_registers_update_required[led.driver] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -186,9 +207,9 @@ void is31fl3743a_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
|||||||
is31fl3743a_select_page(addr, IS31FL3743A_COMMAND_PWM);
|
is31fl3743a_select_page(addr, IS31FL3743A_COMMAND_PWM);
|
||||||
|
|
||||||
is31fl3743a_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
is31fl3743a_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
||||||
}
|
|
||||||
|
|
||||||
g_pwm_buffer_update_required[index] = false;
|
g_pwm_buffer_update_required[index] = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void is31fl3743a_update_scaling_registers(uint8_t addr, uint8_t index) {
|
void is31fl3743a_update_scaling_registers(uint8_t addr, uint8_t index) {
|
||||||
@ -198,6 +219,7 @@ void is31fl3743a_update_scaling_registers(uint8_t addr, uint8_t index) {
|
|||||||
for (int i = 0; i < IS31FL3743A_SCALING_REGISTER_COUNT; i++) {
|
for (int i = 0; i < IS31FL3743A_SCALING_REGISTER_COUNT; i++) {
|
||||||
is31fl3743a_write_register(addr, i + 1, g_scaling_registers[index][i]);
|
is31fl3743a_write_register(addr, i + 1, g_scaling_registers[index][i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_scaling_registers_update_required[index] = false;
|
g_scaling_registers_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,23 @@
|
|||||||
|
/* Copyright 2017 Jason Williams
|
||||||
|
* Copyright 2018 Jack Humbert
|
||||||
|
* Copyright 2018 Yiancar
|
||||||
|
* Copyright 2020 MelGeek
|
||||||
|
* Copyright 2021 MasterSpoon
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "is31fl3743a.h"
|
#include "is31fl3743a.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "i2c_master.h"
|
#include "i2c_master.h"
|
||||||
@ -155,12 +175,14 @@ void is31fl3743a_init(uint8_t addr, uint8_t sync) {
|
|||||||
|
|
||||||
void is31fl3743a_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
void is31fl3743a_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
||||||
is31fl3743a_led_t led;
|
is31fl3743a_led_t led;
|
||||||
|
|
||||||
if (index >= 0 && index < IS31FL3743A_LED_COUNT) {
|
if (index >= 0 && index < IS31FL3743A_LED_COUNT) {
|
||||||
memcpy_P(&led, (&g_is31fl3743a_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3743a_leds[index]), sizeof(led));
|
||||||
|
|
||||||
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
|
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer_update_required[led.driver] = true;
|
g_pwm_buffer_update_required[led.driver] = true;
|
||||||
g_pwm_buffer[led.driver][led.r] = red;
|
g_pwm_buffer[led.driver][led.r] = red;
|
||||||
g_pwm_buffer[led.driver][led.g] = green;
|
g_pwm_buffer[led.driver][led.g] = green;
|
||||||
@ -178,10 +200,9 @@ void is31fl3743a_set_scaling_register(uint8_t index, uint8_t red, uint8_t green,
|
|||||||
is31fl3743a_led_t led;
|
is31fl3743a_led_t led;
|
||||||
memcpy_P(&led, (&g_is31fl3743a_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3743a_leds[index]), sizeof(led));
|
||||||
|
|
||||||
g_scaling_registers[led.driver][led.r] = red;
|
g_scaling_registers[led.driver][led.r] = red;
|
||||||
g_scaling_registers[led.driver][led.g] = green;
|
g_scaling_registers[led.driver][led.g] = green;
|
||||||
g_scaling_registers[led.driver][led.b] = blue;
|
g_scaling_registers[led.driver][led.b] = blue;
|
||||||
|
|
||||||
g_scaling_registers_update_required[led.driver] = true;
|
g_scaling_registers_update_required[led.driver] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -190,9 +211,9 @@ void is31fl3743a_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
|||||||
is31fl3743a_select_page(addr, IS31FL3743A_COMMAND_PWM);
|
is31fl3743a_select_page(addr, IS31FL3743A_COMMAND_PWM);
|
||||||
|
|
||||||
is31fl3743a_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
is31fl3743a_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
||||||
}
|
|
||||||
|
|
||||||
g_pwm_buffer_update_required[index] = false;
|
g_pwm_buffer_update_required[index] = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void is31fl3743a_update_scaling_registers(uint8_t addr, uint8_t index) {
|
void is31fl3743a_update_scaling_registers(uint8_t addr, uint8_t index) {
|
||||||
@ -202,6 +223,7 @@ void is31fl3743a_update_scaling_registers(uint8_t addr, uint8_t index) {
|
|||||||
for (int i = 0; i < IS31FL3743A_SCALING_REGISTER_COUNT; i++) {
|
for (int i = 0; i < IS31FL3743A_SCALING_REGISTER_COUNT; i++) {
|
||||||
is31fl3743a_write_register(addr, i + 1, g_scaling_registers[index][i]);
|
is31fl3743a_write_register(addr, i + 1, g_scaling_registers[index][i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_scaling_registers_update_required[index] = false;
|
g_scaling_registers_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,23 @@
|
|||||||
|
/* Copyright 2017 Jason Williams
|
||||||
|
* Copyright 2018 Jack Humbert
|
||||||
|
* Copyright 2018 Yiancar
|
||||||
|
* Copyright 2020 MelGeek
|
||||||
|
* Copyright 2021 MasterSpoon
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "is31fl3745-mono.h"
|
#include "is31fl3745-mono.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "i2c_master.h"
|
#include "i2c_master.h"
|
||||||
@ -155,12 +175,14 @@ void is31fl3745_init(uint8_t addr, uint8_t sync) {
|
|||||||
|
|
||||||
void is31fl3745_set_value(int index, uint8_t value) {
|
void is31fl3745_set_value(int index, uint8_t value) {
|
||||||
is31fl3745_led_t led;
|
is31fl3745_led_t led;
|
||||||
|
|
||||||
if (index >= 0 && index < IS31FL3745_LED_COUNT) {
|
if (index >= 0 && index < IS31FL3745_LED_COUNT) {
|
||||||
memcpy_P(&led, (&g_is31fl3745_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3745_leds[index]), sizeof(led));
|
||||||
|
|
||||||
if (g_pwm_buffer[led.driver][led.v] == value) {
|
if (g_pwm_buffer[led.driver][led.v] == value) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer_update_required[led.driver] = true;
|
g_pwm_buffer_update_required[led.driver] = true;
|
||||||
g_pwm_buffer[led.driver][led.v] = value;
|
g_pwm_buffer[led.driver][led.v] = value;
|
||||||
}
|
}
|
||||||
@ -176,8 +198,7 @@ void is31fl3745_set_scaling_register(uint8_t index, uint8_t value) {
|
|||||||
is31fl3745_led_t led;
|
is31fl3745_led_t led;
|
||||||
memcpy_P(&led, (&g_is31fl3745_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3745_leds[index]), sizeof(led));
|
||||||
|
|
||||||
g_scaling_registers[led.driver][led.v] = value;
|
g_scaling_registers[led.driver][led.v] = value;
|
||||||
|
|
||||||
g_scaling_registers_update_required[led.driver] = true;
|
g_scaling_registers_update_required[led.driver] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -186,9 +207,9 @@ void is31fl3745_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
|||||||
is31fl3745_select_page(addr, IS31FL3745_COMMAND_PWM);
|
is31fl3745_select_page(addr, IS31FL3745_COMMAND_PWM);
|
||||||
|
|
||||||
is31fl3745_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
is31fl3745_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
||||||
}
|
|
||||||
|
|
||||||
g_pwm_buffer_update_required[index] = false;
|
g_pwm_buffer_update_required[index] = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void is31fl3745_update_scaling_registers(uint8_t addr, uint8_t index) {
|
void is31fl3745_update_scaling_registers(uint8_t addr, uint8_t index) {
|
||||||
@ -198,6 +219,7 @@ void is31fl3745_update_scaling_registers(uint8_t addr, uint8_t index) {
|
|||||||
for (int i = 0; i < IS31FL3745_SCALING_REGISTER_COUNT; i++) {
|
for (int i = 0; i < IS31FL3745_SCALING_REGISTER_COUNT; i++) {
|
||||||
is31fl3745_write_register(addr, i + 1, g_scaling_registers[index][i]);
|
is31fl3745_write_register(addr, i + 1, g_scaling_registers[index][i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_scaling_registers_update_required[index] = false;
|
g_scaling_registers_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,23 @@
|
|||||||
|
/* Copyright 2017 Jason Williams
|
||||||
|
* Copyright 2018 Jack Humbert
|
||||||
|
* Copyright 2018 Yiancar
|
||||||
|
* Copyright 2020 MelGeek
|
||||||
|
* Copyright 2021 MasterSpoon
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "is31fl3745.h"
|
#include "is31fl3745.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "i2c_master.h"
|
#include "i2c_master.h"
|
||||||
@ -155,12 +175,14 @@ void is31fl3745_init(uint8_t addr, uint8_t sync) {
|
|||||||
|
|
||||||
void is31fl3745_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
void is31fl3745_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
||||||
is31fl3745_led_t led;
|
is31fl3745_led_t led;
|
||||||
|
|
||||||
if (index >= 0 && index < IS31FL3745_LED_COUNT) {
|
if (index >= 0 && index < IS31FL3745_LED_COUNT) {
|
||||||
memcpy_P(&led, (&g_is31fl3745_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3745_leds[index]), sizeof(led));
|
||||||
|
|
||||||
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
|
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer_update_required[led.driver] = true;
|
g_pwm_buffer_update_required[led.driver] = true;
|
||||||
g_pwm_buffer[led.driver][led.r] = red;
|
g_pwm_buffer[led.driver][led.r] = red;
|
||||||
g_pwm_buffer[led.driver][led.g] = green;
|
g_pwm_buffer[led.driver][led.g] = green;
|
||||||
@ -178,10 +200,9 @@ void is31fl3745_set_scaling_register(uint8_t index, uint8_t red, uint8_t green,
|
|||||||
is31fl3745_led_t led;
|
is31fl3745_led_t led;
|
||||||
memcpy_P(&led, (&g_is31fl3745_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3745_leds[index]), sizeof(led));
|
||||||
|
|
||||||
g_scaling_registers[led.driver][led.r] = red;
|
g_scaling_registers[led.driver][led.r] = red;
|
||||||
g_scaling_registers[led.driver][led.g] = green;
|
g_scaling_registers[led.driver][led.g] = green;
|
||||||
g_scaling_registers[led.driver][led.b] = blue;
|
g_scaling_registers[led.driver][led.b] = blue;
|
||||||
|
|
||||||
g_scaling_registers_update_required[led.driver] = true;
|
g_scaling_registers_update_required[led.driver] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -190,9 +211,9 @@ void is31fl3745_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
|||||||
is31fl3745_select_page(addr, IS31FL3745_COMMAND_PWM);
|
is31fl3745_select_page(addr, IS31FL3745_COMMAND_PWM);
|
||||||
|
|
||||||
is31fl3745_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
is31fl3745_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
||||||
}
|
|
||||||
|
|
||||||
g_pwm_buffer_update_required[index] = false;
|
g_pwm_buffer_update_required[index] = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void is31fl3745_update_scaling_registers(uint8_t addr, uint8_t index) {
|
void is31fl3745_update_scaling_registers(uint8_t addr, uint8_t index) {
|
||||||
@ -202,6 +223,7 @@ void is31fl3745_update_scaling_registers(uint8_t addr, uint8_t index) {
|
|||||||
for (int i = 0; i < IS31FL3745_SCALING_REGISTER_COUNT; i++) {
|
for (int i = 0; i < IS31FL3745_SCALING_REGISTER_COUNT; i++) {
|
||||||
is31fl3745_write_register(addr, i + 1, g_scaling_registers[index][i]);
|
is31fl3745_write_register(addr, i + 1, g_scaling_registers[index][i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_scaling_registers_update_required[index] = false;
|
g_scaling_registers_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,23 @@
|
|||||||
|
/* Copyright 2017 Jason Williams
|
||||||
|
* Copyright 2018 Jack Humbert
|
||||||
|
* Copyright 2018 Yiancar
|
||||||
|
* Copyright 2020 MelGeek
|
||||||
|
* Copyright 2021 MasterSpoon
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "is31fl3746a-mono.h"
|
#include "is31fl3746a-mono.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "i2c_master.h"
|
#include "i2c_master.h"
|
||||||
@ -145,14 +165,16 @@ void is31fl3746a_init(uint8_t addr) {
|
|||||||
wait_ms(10);
|
wait_ms(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
void is31fl3746a_set_color(int index, uint8_t value) {
|
void is31fl3746a_set_value(int index, uint8_t value) {
|
||||||
is31fl3746a_led_t led;
|
is31fl3746a_led_t led;
|
||||||
|
|
||||||
if (index >= 0 && index < IS31FL3746A_LED_COUNT) {
|
if (index >= 0 && index < IS31FL3746A_LED_COUNT) {
|
||||||
memcpy_P(&led, (&g_is31fl3746a_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3746a_leds[index]), sizeof(led));
|
||||||
|
|
||||||
if (g_pwm_buffer[led.driver][led.v] == value) {
|
if (g_pwm_buffer[led.driver][led.v] == value) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer_update_required[led.driver] = true;
|
g_pwm_buffer_update_required[led.driver] = true;
|
||||||
g_pwm_buffer[led.driver][led.v] = value;
|
g_pwm_buffer[led.driver][led.v] = value;
|
||||||
}
|
}
|
||||||
@ -168,8 +190,7 @@ void is31fl3746a_set_scaling_register(uint8_t index, uint8_t value) {
|
|||||||
is31fl3746a_led_t led;
|
is31fl3746a_led_t led;
|
||||||
memcpy_P(&led, (&g_is31fl3746a_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3746a_leds[index]), sizeof(led));
|
||||||
|
|
||||||
g_scaling_registers[led.driver][led.v] = value;
|
g_scaling_registers[led.driver][led.v] = value;
|
||||||
|
|
||||||
g_scaling_registers_update_required[led.driver] = true;
|
g_scaling_registers_update_required[led.driver] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -178,9 +199,9 @@ void is31fl3746a_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
|||||||
is31fl3746a_select_page(addr, IS31FL3746A_COMMAND_PWM);
|
is31fl3746a_select_page(addr, IS31FL3746A_COMMAND_PWM);
|
||||||
|
|
||||||
is31fl3746a_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
is31fl3746a_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
||||||
}
|
|
||||||
|
|
||||||
g_pwm_buffer_update_required[index] = false;
|
g_pwm_buffer_update_required[index] = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void is31fl3746a_update_scaling_registers(uint8_t addr, uint8_t index) {
|
void is31fl3746a_update_scaling_registers(uint8_t addr, uint8_t index) {
|
||||||
@ -190,6 +211,7 @@ void is31fl3746a_update_scaling_registers(uint8_t addr, uint8_t index) {
|
|||||||
for (int i = 0; i < IS31FL3746A_SCALING_REGISTER_COUNT; i++) {
|
for (int i = 0; i < IS31FL3746A_SCALING_REGISTER_COUNT; i++) {
|
||||||
is31fl3746a_write_register(addr, i + 1, g_scaling_registers[index][i]);
|
is31fl3746a_write_register(addr, i + 1, g_scaling_registers[index][i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_scaling_registers_update_required[index] = false;
|
g_scaling_registers_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -66,6 +66,16 @@
|
|||||||
# define IS31FL3746A_LED_COUNT LED_MATRIX_LED_COUNT
|
# define IS31FL3746A_LED_COUNT LED_MATRIX_LED_COUNT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(IS31FL3746A_I2C_ADDRESS_4)
|
||||||
|
# define IS31FL3746A_DRIVER_COUNT 4
|
||||||
|
#elif defined(IS31FL3746A_I2C_ADDRESS_3)
|
||||||
|
# define IS31FL3746A_DRIVER_COUNT 3
|
||||||
|
#elif defined(IS31FL3746A_I2C_ADDRESS_2)
|
||||||
|
# define IS31FL3746A_DRIVER_COUNT 2
|
||||||
|
#elif defined(IS31FL3746A_I2C_ADDRESS_1)
|
||||||
|
# define IS31FL3746A_DRIVER_COUNT 1
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct is31fl3746a_led_t {
|
typedef struct is31fl3746a_led_t {
|
||||||
uint8_t driver : 2;
|
uint8_t driver : 2;
|
||||||
uint8_t v;
|
uint8_t v;
|
||||||
@ -74,7 +84,7 @@ typedef struct is31fl3746a_led_t {
|
|||||||
extern const is31fl3746a_led_t PROGMEM g_is31fl3746a_leds[IS31FL3746A_LED_COUNT];
|
extern const is31fl3746a_led_t PROGMEM g_is31fl3746a_leds[IS31FL3746A_LED_COUNT];
|
||||||
|
|
||||||
void is31fl3746a_init_drivers(void);
|
void is31fl3746a_init_drivers(void);
|
||||||
void is31fl3746a_init(uint8_t addr, uint8_t sync);
|
void is31fl3746a_init(uint8_t addr);
|
||||||
void is31fl3746a_write_register(uint8_t addr, uint8_t reg, uint8_t data);
|
void is31fl3746a_write_register(uint8_t addr, uint8_t reg, uint8_t data);
|
||||||
void is31fl3746a_select_page(uint8_t addr, uint8_t page);
|
void is31fl3746a_select_page(uint8_t addr, uint8_t page);
|
||||||
void is31fl3746a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
|
void is31fl3746a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
|
||||||
|
@ -1,3 +1,23 @@
|
|||||||
|
/* Copyright 2017 Jason Williams
|
||||||
|
* Copyright 2018 Jack Humbert
|
||||||
|
* Copyright 2018 Yiancar
|
||||||
|
* Copyright 2020 MelGeek
|
||||||
|
* Copyright 2021 MasterSpoon
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "is31fl3746a.h"
|
#include "is31fl3746a.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "i2c_master.h"
|
#include "i2c_master.h"
|
||||||
@ -147,12 +167,14 @@ void is31fl3746a_init(uint8_t addr) {
|
|||||||
|
|
||||||
void is31fl3746a_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
void is31fl3746a_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
||||||
is31fl3746a_led_t led;
|
is31fl3746a_led_t led;
|
||||||
|
|
||||||
if (index >= 0 && index < IS31FL3746A_LED_COUNT) {
|
if (index >= 0 && index < IS31FL3746A_LED_COUNT) {
|
||||||
memcpy_P(&led, (&g_is31fl3746a_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3746a_leds[index]), sizeof(led));
|
||||||
|
|
||||||
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
|
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer_update_required[led.driver] = true;
|
g_pwm_buffer_update_required[led.driver] = true;
|
||||||
g_pwm_buffer[led.driver][led.r] = red;
|
g_pwm_buffer[led.driver][led.r] = red;
|
||||||
g_pwm_buffer[led.driver][led.g] = green;
|
g_pwm_buffer[led.driver][led.g] = green;
|
||||||
@ -170,10 +192,9 @@ void is31fl3746a_set_scaling_register(uint8_t index, uint8_t red, uint8_t green,
|
|||||||
is31fl3746a_led_t led;
|
is31fl3746a_led_t led;
|
||||||
memcpy_P(&led, (&g_is31fl3746a_leds[index]), sizeof(led));
|
memcpy_P(&led, (&g_is31fl3746a_leds[index]), sizeof(led));
|
||||||
|
|
||||||
g_scaling_registers[led.driver][led.r] = red;
|
g_scaling_registers[led.driver][led.r] = red;
|
||||||
g_scaling_registers[led.driver][led.g] = green;
|
g_scaling_registers[led.driver][led.g] = green;
|
||||||
g_scaling_registers[led.driver][led.b] = blue;
|
g_scaling_registers[led.driver][led.b] = blue;
|
||||||
|
|
||||||
g_scaling_registers_update_required[led.driver] = true;
|
g_scaling_registers_update_required[led.driver] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -182,9 +203,9 @@ void is31fl3746a_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
|||||||
is31fl3746a_select_page(addr, IS31FL3746A_COMMAND_PWM);
|
is31fl3746a_select_page(addr, IS31FL3746A_COMMAND_PWM);
|
||||||
|
|
||||||
is31fl3746a_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
is31fl3746a_write_pwm_buffer(addr, g_pwm_buffer[index]);
|
||||||
}
|
|
||||||
|
|
||||||
g_pwm_buffer_update_required[index] = false;
|
g_pwm_buffer_update_required[index] = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void is31fl3746a_update_scaling_registers(uint8_t addr, uint8_t index) {
|
void is31fl3746a_update_scaling_registers(uint8_t addr, uint8_t index) {
|
||||||
@ -194,6 +215,7 @@ void is31fl3746a_update_scaling_registers(uint8_t addr, uint8_t index) {
|
|||||||
for (int i = 0; i < IS31FL3746A_SCALING_REGISTER_COUNT; i++) {
|
for (int i = 0; i < IS31FL3746A_SCALING_REGISTER_COUNT; i++) {
|
||||||
is31fl3746a_write_register(addr, i + 1, g_scaling_registers[index][i]);
|
is31fl3746a_write_register(addr, i + 1, g_scaling_registers[index][i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_scaling_registers_update_required[index] = false;
|
g_scaling_registers_update_required[index] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -66,6 +66,16 @@
|
|||||||
# define IS31FL3746A_LED_COUNT RGB_MATRIX_LED_COUNT
|
# define IS31FL3746A_LED_COUNT RGB_MATRIX_LED_COUNT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(IS31FL3746A_I2C_ADDRESS_4)
|
||||||
|
# define IS31FL3746A_DRIVER_COUNT 4
|
||||||
|
#elif defined(IS31FL3746A_I2C_ADDRESS_3)
|
||||||
|
# define IS31FL3746A_DRIVER_COUNT 3
|
||||||
|
#elif defined(IS31FL3746A_I2C_ADDRESS_2)
|
||||||
|
# define IS31FL3746A_DRIVER_COUNT 2
|
||||||
|
#elif defined(IS31FL3746A_I2C_ADDRESS_1)
|
||||||
|
# define IS31FL3746A_DRIVER_COUNT 1
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct is31fl3746a_led_t {
|
typedef struct is31fl3746a_led_t {
|
||||||
uint8_t driver : 2;
|
uint8_t driver : 2;
|
||||||
uint8_t r;
|
uint8_t r;
|
||||||
@ -76,7 +86,7 @@ typedef struct is31fl3746a_led_t {
|
|||||||
extern const is31fl3746a_led_t PROGMEM g_is31fl3746a_leds[IS31FL3746A_LED_COUNT];
|
extern const is31fl3746a_led_t PROGMEM g_is31fl3746a_leds[IS31FL3746A_LED_COUNT];
|
||||||
|
|
||||||
void is31fl3746a_init_drivers(void);
|
void is31fl3746a_init_drivers(void);
|
||||||
void is31fl3746a_init(uint8_t addr, uint8_t sync);
|
void is31fl3746a_init(uint8_t addr);
|
||||||
void is31fl3746a_write_register(uint8_t addr, uint8_t reg, uint8_t data);
|
void is31fl3746a_write_register(uint8_t addr, uint8_t reg, uint8_t data);
|
||||||
void is31fl3746a_select_page(uint8_t addr, uint8_t page);
|
void is31fl3746a_select_page(uint8_t addr, uint8_t page);
|
||||||
void is31fl3746a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
|
void is31fl3746a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
|
||||||
|
@ -51,23 +51,17 @@ bool g_pwm_buffer_update_required[SNLED27351_DRIVER_COUNT] = {false};
|
|||||||
uint8_t g_led_control_registers[SNLED27351_DRIVER_COUNT][SNLED27351_LED_CONTROL_REGISTER_COUNT] = {0};
|
uint8_t g_led_control_registers[SNLED27351_DRIVER_COUNT][SNLED27351_LED_CONTROL_REGISTER_COUNT] = {0};
|
||||||
bool g_led_control_registers_update_required[SNLED27351_DRIVER_COUNT] = {false};
|
bool g_led_control_registers_update_required[SNLED27351_DRIVER_COUNT] = {false};
|
||||||
|
|
||||||
bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
|
void snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
|
||||||
// If the transaction fails function returns false.
|
|
||||||
i2c_transfer_buffer[0] = reg;
|
i2c_transfer_buffer[0] = reg;
|
||||||
i2c_transfer_buffer[1] = data;
|
i2c_transfer_buffer[1] = data;
|
||||||
|
|
||||||
#if SNLED27351_I2C_PERSISTENCE > 0
|
#if SNLED27351_I2C_PERSISTENCE > 0
|
||||||
for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) {
|
for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) {
|
||||||
if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) {
|
if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) == 0) break;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) {
|
i2c_transmit(addr << 1, i2c_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT);
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void snled27351_select_page(uint8_t addr, uint8_t page) {
|
void snled27351_select_page(uint8_t addr, uint8_t page) {
|
||||||
@ -172,7 +166,6 @@ void snled27351_init(uint8_t addr) {
|
|||||||
|
|
||||||
snled27351_select_page(addr, SNLED27351_COMMAND_LED_CONTROL);
|
snled27351_select_page(addr, SNLED27351_COMMAND_LED_CONTROL);
|
||||||
|
|
||||||
// Enable LEDs ON/OFF
|
|
||||||
for (int i = 0; i < SNLED27351_LED_CONTROL_ON_OFF_LENGTH; i++) {
|
for (int i = 0; i < SNLED27351_LED_CONTROL_ON_OFF_LENGTH; i++) {
|
||||||
snled27351_write_register(addr, i, 0xFF);
|
snled27351_write_register(addr, i, 0xFF);
|
||||||
}
|
}
|
||||||
@ -191,6 +184,7 @@ void snled27351_set_value(int index, uint8_t value) {
|
|||||||
if (g_pwm_buffer[led.driver][led.v] == value) {
|
if (g_pwm_buffer[led.driver][led.v] == value) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer[led.driver][led.v] = value;
|
g_pwm_buffer[led.driver][led.v] = value;
|
||||||
g_pwm_buffer_update_required[led.driver] = true;
|
g_pwm_buffer_update_required[led.driver] = true;
|
||||||
}
|
}
|
||||||
@ -225,9 +219,10 @@ void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
|||||||
// If any of the transactions fail we risk writing dirty PG0,
|
// If any of the transactions fail we risk writing dirty PG0,
|
||||||
// refresh page 0 just in case.
|
// refresh page 0 just in case.
|
||||||
if (!snled27351_write_pwm_buffer(addr, g_pwm_buffer[index])) {
|
if (!snled27351_write_pwm_buffer(addr, g_pwm_buffer[index])) {
|
||||||
g_led_control_registers_update_required[index] = true;
|
g_pwm_buffer_update_required[index] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer_update_required[index] = false;
|
g_pwm_buffer_update_required[index] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -238,8 +233,9 @@ void snled27351_update_led_control_registers(uint8_t addr, uint8_t index) {
|
|||||||
for (int i = 0; i < SNLED27351_LED_CONTROL_REGISTER_COUNT; i++) {
|
for (int i = 0; i < SNLED27351_LED_CONTROL_REGISTER_COUNT; i++) {
|
||||||
snled27351_write_register(addr, i, g_led_control_registers[index][i]);
|
snled27351_write_register(addr, i, g_led_control_registers[index][i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_led_control_registers_update_required[index] = false;
|
||||||
}
|
}
|
||||||
g_led_control_registers_update_required[index] = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void snled27351_flush(void) {
|
void snled27351_flush(void) {
|
||||||
|
@ -156,7 +156,7 @@ extern const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT];
|
|||||||
void snled27351_init_drivers(void);
|
void snled27351_init_drivers(void);
|
||||||
void snled27351_init(uint8_t addr);
|
void snled27351_init(uint8_t addr);
|
||||||
void snled27351_select_page(uint8_t addr, uint8_t page);
|
void snled27351_select_page(uint8_t addr, uint8_t page);
|
||||||
bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data);
|
void snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data);
|
||||||
bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
|
bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
|
||||||
|
|
||||||
void snled27351_set_value(int index, uint8_t value);
|
void snled27351_set_value(int index, uint8_t value);
|
||||||
|
@ -51,23 +51,17 @@ bool g_pwm_buffer_update_required[SNLED27351_DRIVER_COUNT] = {false};
|
|||||||
uint8_t g_led_control_registers[SNLED27351_DRIVER_COUNT][SNLED27351_LED_CONTROL_REGISTER_COUNT] = {0};
|
uint8_t g_led_control_registers[SNLED27351_DRIVER_COUNT][SNLED27351_LED_CONTROL_REGISTER_COUNT] = {0};
|
||||||
bool g_led_control_registers_update_required[SNLED27351_DRIVER_COUNT] = {false};
|
bool g_led_control_registers_update_required[SNLED27351_DRIVER_COUNT] = {false};
|
||||||
|
|
||||||
bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
|
void snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
|
||||||
// If the transaction fails function returns false.
|
|
||||||
i2c_transfer_buffer[0] = reg;
|
i2c_transfer_buffer[0] = reg;
|
||||||
i2c_transfer_buffer[1] = data;
|
i2c_transfer_buffer[1] = data;
|
||||||
|
|
||||||
#if SNLED27351_I2C_PERSISTENCE > 0
|
#if SNLED27351_I2C_PERSISTENCE > 0
|
||||||
for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) {
|
for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) {
|
||||||
if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) {
|
if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) == 0) break;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) {
|
i2c_transmit(addr << 1, i2c_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT);
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void snled27351_select_page(uint8_t addr, uint8_t page) {
|
void snled27351_select_page(uint8_t addr, uint8_t page) {
|
||||||
@ -189,6 +183,7 @@ void snled27351_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
|||||||
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
|
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer[led.driver][led.r] = red;
|
g_pwm_buffer[led.driver][led.r] = red;
|
||||||
g_pwm_buffer[led.driver][led.g] = green;
|
g_pwm_buffer[led.driver][led.g] = green;
|
||||||
g_pwm_buffer[led.driver][led.b] = blue;
|
g_pwm_buffer[led.driver][led.b] = blue;
|
||||||
@ -239,9 +234,10 @@ void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
|||||||
// If any of the transactions fail we risk writing dirty PG0,
|
// If any of the transactions fail we risk writing dirty PG0,
|
||||||
// refresh page 0 just in case.
|
// refresh page 0 just in case.
|
||||||
if (!snled27351_write_pwm_buffer(addr, g_pwm_buffer[index])) {
|
if (!snled27351_write_pwm_buffer(addr, g_pwm_buffer[index])) {
|
||||||
g_led_control_registers_update_required[index] = true;
|
g_pwm_buffer_update_required[index] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pwm_buffer_update_required[index] = false;
|
g_pwm_buffer_update_required[index] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -252,8 +248,9 @@ void snled27351_update_led_control_registers(uint8_t addr, uint8_t index) {
|
|||||||
for (int i = 0; i < SNLED27351_LED_CONTROL_REGISTER_COUNT; i++) {
|
for (int i = 0; i < SNLED27351_LED_CONTROL_REGISTER_COUNT; i++) {
|
||||||
snled27351_write_register(addr, i, g_led_control_registers[index][i]);
|
snled27351_write_register(addr, i, g_led_control_registers[index][i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_led_control_registers_update_required[index] = false;
|
||||||
}
|
}
|
||||||
g_led_control_registers_update_required[index] = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void snled27351_flush(void) {
|
void snled27351_flush(void) {
|
||||||
|
@ -170,7 +170,7 @@ extern const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT];
|
|||||||
void snled27351_init_drivers(void);
|
void snled27351_init_drivers(void);
|
||||||
void snled27351_init(uint8_t addr);
|
void snled27351_init(uint8_t addr);
|
||||||
void snled27351_select_page(uint8_t addr, uint8_t page);
|
void snled27351_select_page(uint8_t addr, uint8_t page);
|
||||||
bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data);
|
void snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data);
|
||||||
bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
|
bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
|
||||||
|
|
||||||
void snled27351_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
|
void snled27351_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
|
||||||
|
@ -5,5 +5,3 @@
|
|||||||
|
|
||||||
/* Solenoid pin */
|
/* Solenoid pin */
|
||||||
#define SOLENOID_PIN A7
|
#define SOLENOID_PIN A7
|
||||||
|
|
||||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 2
|
|
||||||
|
@ -15,6 +15,9 @@
|
|||||||
"build": {
|
"build": {
|
||||||
"lto": true
|
"lto": true
|
||||||
},
|
},
|
||||||
|
"dynamic_keymap": {
|
||||||
|
"layer_count": 3
|
||||||
|
},
|
||||||
"encoder": {
|
"encoder": {
|
||||||
"rotary": [{ "pin_a": "C4", "pin_b": "C3" }]
|
"rotary": [{ "pin_a": "C4", "pin_b": "C3" }]
|
||||||
},
|
},
|
||||||
|
@ -17,11 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 2
|
|
||||||
|
|
||||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
#define LOCKING_SUPPORT_ENABLE
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
/* Locking resynchronize hack */
|
/* Locking resynchronize hack */
|
||||||
#define LOCKING_RESYNC_ENABLE
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
|
||||||
|
@ -17,11 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 2
|
|
||||||
|
|
||||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
#define LOCKING_SUPPORT_ENABLE
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
/* Locking resynchronize hack */
|
/* Locking resynchronize hack */
|
||||||
#define LOCKING_RESYNC_ENABLE
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Anne Pro 2 C15 (QMK)",
|
"keyboard_name": "Anne Pro 2 C15 (QMK)",
|
||||||
"usb": {
|
"usb": {
|
||||||
"pid": "0xAC15"
|
"pid": "0x8008"
|
||||||
},
|
},
|
||||||
"eeprom": {
|
"eeprom": {
|
||||||
"driver": "wear_leveling",
|
"driver": "wear_leveling",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Anne Pro 2 C18 (QMK)",
|
"keyboard_name": "Anne Pro 2 C18 (QMK)",
|
||||||
"usb": {
|
"usb": {
|
||||||
"pid": "0xAC18"
|
"pid": "0x8009"
|
||||||
},
|
},
|
||||||
"eeprom": {
|
"eeprom": {
|
||||||
"driver": "wear_leveling",
|
"driver": "wear_leveling",
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
"url": "https://openannepro.github.io/",
|
"url": "https://openannepro.github.io/",
|
||||||
"maintainer": "bwisn",
|
"maintainer": "bwisn",
|
||||||
"usb": {
|
"usb": {
|
||||||
"vid": "0xFEED",
|
"vid": "0xAC20",
|
||||||
"device_version": "13.3.7"
|
"device_version": "13.3.7"
|
||||||
},
|
},
|
||||||
"layouts": {
|
"layouts": {
|
||||||
|
@ -97,11 +97,11 @@ static enum { UNKNOWN, LEFT, RIGHT } hand_side = UNKNOWN;
|
|||||||
hand_side = readPin(SPLIT_HAND_PIN) ? LEFT : RIGHT;
|
hand_side = readPin(SPLIT_HAND_PIN) ? LEFT : RIGHT;
|
||||||
return (hand_side == LEFT);
|
return (hand_side == LEFT);
|
||||||
#elif defined(SPLIT_HAND_MATRIX_GRID)
|
#elif defined(SPLIT_HAND_MATRIX_GRID)
|
||||||
# ifdef SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT
|
# ifdef SPLIT_HAND_MATRIX_GRID_LOW_IS_LEFT
|
||||||
hand_side = peek_matrix_intersection(SPLIT_HAND_MATRIX_GRID) ? LEFT : RIGHT;
|
hand_side = peek_matrix_intersection(SPLIT_HAND_MATRIX_GRID) ? RIGHT : LEFT;
|
||||||
return (hand_side == LEFT);
|
return (hand_side == LEFT);
|
||||||
# else
|
# else
|
||||||
hand_side = peek_matrix_intersection(SPLIT_HAND_MATRIX_GRID) ? RIGHT : LEFT;
|
hand_side = peek_matrix_intersection(SPLIT_HAND_MATRIX_GRID) ? LEFT : RIGHT;
|
||||||
return (hand_side == LEFT);
|
return (hand_side == LEFT);
|
||||||
# endif
|
# endif
|
||||||
#elif defined(EE_HANDS)
|
#elif defined(EE_HANDS)
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#ifndef MASTER_RIGHT
|
#ifndef MASTER_RIGHT
|
||||||
// SPLIT_HAND_MATRIX_GRID was initially designed to use with left hand side diode D35 mounted and not pressing K7 on the right hand side during boot. However when a USB cable is reconnected immediately, it fails. Decided to use "MASTER_RIGHT" to make it more reliable.
|
// SPLIT_HAND_MATRIX_GRID was initially designed to use with left hand side diode D35 mounted and not pressing K7 on the right hand side during boot. However when a USB cable is reconnected immediately, it fails. Decided to use "MASTER_RIGHT" to make it more reliable.
|
||||||
# define SPLIT_HAND_MATRIX_GRID B5, D0
|
# define SPLIT_HAND_MATRIX_GRID B5, D0
|
||||||
|
# define SPLIT_HAND_MATRIX_GRID_LOW_IS_LEFT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define SPLIT_USB_DETECT
|
#define SPLIT_USB_DETECT
|
||||||
|
@ -21,6 +21,3 @@
|
|||||||
|
|
||||||
/* Locking resynchronize hack */
|
/* Locking resynchronize hack */
|
||||||
#define LOCKING_RESYNC_ENABLE
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
/* EEPROM for via */
|
|
||||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 3
|
|
||||||
|
@ -95,31 +95,31 @@
|
|||||||
},
|
},
|
||||||
"LAYOUT_split_3x5_3": {
|
"LAYOUT_split_3x5_3": {
|
||||||
"layout": [
|
"layout": [
|
||||||
{"matrix": [0, 0], "x": 0, "y": 0.25},
|
{"matrix": [0, 1], "x": 0, "y": 0.25},
|
||||||
{"matrix": [0, 1], "x": 1, "y": 0.125},
|
{"matrix": [0, 2], "x": 1, "y": 0.125},
|
||||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
{"matrix": [0, 3], "x": 2, "y": 0},
|
||||||
{"matrix": [0, 3], "x": 3, "y": 0.125},
|
{"matrix": [0, 4], "x": 3, "y": 0.125},
|
||||||
{"matrix": [0, 4], "x": 4, "y": 0.25},
|
{"matrix": [0, 5], "x": 4, "y": 0.25},
|
||||||
{"matrix": [4, 0], "x": 7, "y": 0.25},
|
{"matrix": [4, 0], "x": 7, "y": 0.25},
|
||||||
{"matrix": [4, 1], "x": 8, "y": 0.125},
|
{"matrix": [4, 1], "x": 8, "y": 0.125},
|
||||||
{"matrix": [4, 2], "x": 9, "y": 0},
|
{"matrix": [4, 2], "x": 9, "y": 0},
|
||||||
{"matrix": [4, 3], "x": 10, "y": 0.125},
|
{"matrix": [4, 3], "x": 10, "y": 0.125},
|
||||||
{"matrix": [4, 4], "x": 11, "y": 0.25},
|
{"matrix": [4, 4], "x": 11, "y": 0.25},
|
||||||
{"matrix": [1, 0], "x": 0, "y": 1.25},
|
{"matrix": [1, 1], "x": 0, "y": 1.25},
|
||||||
{"matrix": [1, 1], "x": 1, "y": 1.125},
|
{"matrix": [1, 2], "x": 1, "y": 1.125},
|
||||||
{"matrix": [1, 2], "x": 2, "y": 1},
|
{"matrix": [1, 3], "x": 2, "y": 1},
|
||||||
{"matrix": [1, 3], "x": 3, "y": 1.125},
|
{"matrix": [1, 4], "x": 3, "y": 1.125},
|
||||||
{"matrix": [1, 4], "x": 4, "y": 1.25},
|
{"matrix": [1, 5], "x": 4, "y": 1.25},
|
||||||
{"matrix": [5, 0], "x": 7, "y": 1.25},
|
{"matrix": [5, 0], "x": 7, "y": 1.25},
|
||||||
{"matrix": [5, 1], "x": 8, "y": 1.125},
|
{"matrix": [5, 1], "x": 8, "y": 1.125},
|
||||||
{"matrix": [5, 2], "x": 9, "y": 1},
|
{"matrix": [5, 2], "x": 9, "y": 1},
|
||||||
{"matrix": [5, 3], "x": 10, "y": 1.125},
|
{"matrix": [5, 3], "x": 10, "y": 1.125},
|
||||||
{"matrix": [5, 4], "x": 11, "y": 1.25},
|
{"matrix": [5, 4], "x": 11, "y": 1.25},
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2.25},
|
{"matrix": [2, 1], "x": 0, "y": 2.25},
|
||||||
{"matrix": [2, 1], "x": 1, "y": 2.125},
|
{"matrix": [2, 2], "x": 1, "y": 2.125},
|
||||||
{"matrix": [2, 2], "x": 2, "y": 2},
|
{"matrix": [2, 3], "x": 2, "y": 2},
|
||||||
{"matrix": [2, 3], "x": 3, "y": 2.125},
|
{"matrix": [2, 4], "x": 3, "y": 2.125},
|
||||||
{"matrix": [2, 4], "x": 4, "y": 2.25},
|
{"matrix": [2, 5], "x": 4, "y": 2.25},
|
||||||
{"matrix": [6, 0], "x": 7, "y": 2.25},
|
{"matrix": [6, 0], "x": 7, "y": 2.25},
|
||||||
{"matrix": [6, 1], "x": 8, "y": 2.125},
|
{"matrix": [6, 1], "x": 8, "y": 2.125},
|
||||||
{"matrix": [6, 2], "x": 9, "y": 2},
|
{"matrix": [6, 2], "x": 9, "y": 2},
|
||||||
|
@ -58,5 +58,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
//#define NO_ACTION_LAYER
|
//#define NO_ACTION_LAYER
|
||||||
//#define NO_ACTION_TAPPING
|
//#define NO_ACTION_TAPPING
|
||||||
//#define NO_ACTION_ONESHOT
|
//#define NO_ACTION_ONESHOT
|
||||||
|
|
||||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 3
|
|
||||||
|
@ -10,6 +10,9 @@
|
|||||||
},
|
},
|
||||||
"processor": "atmega32u2",
|
"processor": "atmega32u2",
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
|
"dynamic_keymap": {
|
||||||
|
"layer_count": 3
|
||||||
|
},
|
||||||
"community_layouts": ["tkl_ansi"],
|
"community_layouts": ["tkl_ansi"],
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT": {
|
||||||
|
@ -20,5 +20,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
/* key matrix size */
|
/* key matrix size */
|
||||||
#define MATRIX_ROWS 8
|
#define MATRIX_ROWS 8
|
||||||
#define MATRIX_COLS 18
|
#define MATRIX_COLS 18
|
||||||
|
|
||||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 3 // not enough memory for a 4th layer with VIA
|
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Majestouch TKL \\\\w The Pegasus Hoof 2013",
|
"keyboard_name": "Majestouch TKL \\\\w The Pegasus Hoof 2013",
|
||||||
"diode_direction": "COL2ROW",
|
"diode_direction": "COL2ROW",
|
||||||
|
"dynamic_keymap": {
|
||||||
|
"layer_count": 3
|
||||||
|
},
|
||||||
"indicators": {
|
"indicators": {
|
||||||
"caps_lock": "C6",
|
"caps_lock": "C6",
|
||||||
"scroll_lock": "C5",
|
"scroll_lock": "C5",
|
||||||
|
@ -20,5 +20,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
/* key matrix size */
|
/* key matrix size */
|
||||||
#define MATRIX_ROWS 8
|
#define MATRIX_ROWS 8
|
||||||
#define MATRIX_COLS 18
|
#define MATRIX_COLS 18
|
||||||
|
|
||||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 3 // not enough memory for a 4th layer with VIA
|
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Majestouch TKL The Pegasus Hoof 2015",
|
"keyboard_name": "Majestouch TKL The Pegasus Hoof 2015",
|
||||||
"diode_direction": "COL2ROW",
|
"diode_direction": "COL2ROW",
|
||||||
|
"dynamic_keymap": {
|
||||||
|
"layer_count": 3
|
||||||
|
},
|
||||||
"indicators": {
|
"indicators": {
|
||||||
"caps_lock": "C6",
|
"caps_lock": "C6",
|
||||||
"scroll_lock": "C5",
|
"scroll_lock": "C5",
|
||||||
|
@ -22,8 +22,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
/* Locking resynchronize hack */
|
/* Locking resynchronize hack */
|
||||||
#define LOCKING_RESYNC_ENABLE
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 3
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Feature disable options
|
* Feature disable options
|
||||||
* These options are also useful to firmware size reduction.
|
* These options are also useful to firmware size reduction.
|
||||||
|
@ -20,6 +20,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
||||||
|
|
||||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 3
|
|
||||||
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
|
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
|
||||||
|
|
||||||
|
@ -22,9 +22,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
/* Locking resynchronize hack */
|
/* Locking resynchronize hack */
|
||||||
#define LOCKING_RESYNC_ENABLE
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 3
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Feature disable options
|
* Feature disable options
|
||||||
* These options are also useful to firmware size reduction.
|
* These options are also useful to firmware size reduction.
|
||||||
|
@ -26,9 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
/* Locking resynchronize hack */
|
/* Locking resynchronize hack */
|
||||||
#define LOCKING_RESYNC_ENABLE
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
|
||||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 3
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Feature disable options
|
* Feature disable options
|
||||||
* These options are also useful to firmware size reduction.
|
* These options are also useful to firmware size reduction.
|
||||||
|
@ -31,8 +31,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define WS2812_SPI_SCK_PAL_MODE 0
|
#define WS2812_SPI_SCK_PAL_MODE 0
|
||||||
#define WS2812_SPI_SCK_PIN B13
|
#define WS2812_SPI_SCK_PIN B13
|
||||||
|
|
||||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 2
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Feature disable options
|
* Feature disable options
|
||||||
* These options are also useful to firmware size reduction.
|
* These options are also useful to firmware size reduction.
|
||||||
|
@ -8,8 +8,8 @@ led_config_t g_led_config = {
|
|||||||
{0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
|
{0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
|
||||||
{32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16},
|
{32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16},
|
||||||
{33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49},
|
{33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49},
|
||||||
{62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50},
|
{62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, NO_LED, NO_LED, NO_LED, NO_LED},
|
||||||
{63, NO_LED, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, NO_LED, NO_LED, 75},
|
{63, NO_LED, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, NO_LED, NO_LED, 75, NO_LED},
|
||||||
{86, 85, 84, NO_LED, NO_LED, 83, NO_LED, NO_LED, NO_LED, 82, 81, 80, 79, 78, NO_LED, 77, 76}
|
{86, 85, 84, NO_LED, NO_LED, 83, NO_LED, NO_LED, NO_LED, 82, 81, 80, 79, 78, NO_LED, 77, 76}
|
||||||
}, {
|
}, {
|
||||||
{0, 0}, {28, 0}, {42, 0}, {56, 0}, {71, 0}, {85, 0}, {99, 0}, {113, 0}, {127, 0}, {141, 0}, {155, 0}, {169, 0}, {184, 0}, {198, 0}, {212, 0}, {226, 0}, {226, 13}, {212, 13}, {198, 13}, {184, 13}, {169, 13}, {155, 13}, {141, 13}, {127, 13}, {113, 13}, {99, 13}, {85, 13}, {71, 13}, {56, 13}, {42, 13}, {28, 13}, {14, 13}, {0, 13}, {0, 26}, {14, 26}, {28, 26}, {42, 26}, {56, 26}, {71, 26}, {85, 26}, {99, 26}, {113, 26}, {127, 26}, {141, 26}, {155, 26}, {169, 26}, {184, 26}, {198, 26}, {212, 26}, {226, 26}, {169, 38}, {155, 38}, {141, 38}, {127, 38}, {113, 38}, {99, 38}, {85, 38}, {71, 38}, {56, 38}, {42, 38}, {28, 38}, {14, 38}, {0, 38}, {0, 51}, {28, 51}, {42, 51}, {56, 51}, {71, 51}, {85, 51}, {99, 51}, {113, 51}, {127, 51}, {141, 51}, {155, 51}, {169, 51}, {212, 51}, {226, 64}, {212, 64}, {184, 64}, {169, 64}, {155, 64}, {141, 64}, {127, 64}, {71, 64}, {28, 64}, {14, 64}, {0, 64}
|
{0, 0}, {28, 0}, {42, 0}, {56, 0}, {71, 0}, {85, 0}, {99, 0}, {113, 0}, {127, 0}, {141, 0}, {155, 0}, {169, 0}, {184, 0}, {198, 0}, {212, 0}, {226, 0}, {226, 13}, {212, 13}, {198, 13}, {184, 13}, {169, 13}, {155, 13}, {141, 13}, {127, 13}, {113, 13}, {99, 13}, {85, 13}, {71, 13}, {56, 13}, {42, 13}, {28, 13}, {14, 13}, {0, 13}, {0, 26}, {14, 26}, {28, 26}, {42, 26}, {56, 26}, {71, 26}, {85, 26}, {99, 26}, {113, 26}, {127, 26}, {141, 26}, {155, 26}, {169, 26}, {184, 26}, {198, 26}, {212, 26}, {226, 26}, {169, 38}, {155, 38}, {141, 38}, {127, 38}, {113, 38}, {99, 38}, {85, 38}, {71, 38}, {56, 38}, {42, 38}, {28, 38}, {14, 38}, {0, 38}, {0, 51}, {28, 51}, {42, 51}, {56, 51}, {71, 51}, {85, 51}, {99, 51}, {113, 51}, {127, 51}, {141, 51}, {155, 51}, {169, 51}, {212, 51}, {226, 64}, {212, 64}, {184, 64}, {169, 64}, {155, 64}, {141, 64}, {127, 64}, {71, 64}, {28, 64}, {14, 64}, {0, 64}
|
||||||
|
@ -8,8 +8,8 @@ led_config_t g_led_config = {
|
|||||||
{0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
|
{0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
|
||||||
{32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16},
|
{32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16},
|
||||||
{33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49},
|
{33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49},
|
||||||
{62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50},
|
{62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, NO_LED, NO_LED, NO_LED, NO_LED},
|
||||||
{63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, NO_LED, NO_LED, 76},
|
{63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, NO_LED, NO_LED, 76, NO_LED},
|
||||||
{87, 86, 85, NO_LED, NO_LED, 84, NO_LED, NO_LED, NO_LED, 83, 82, 81, 80, 79, NO_LED, 78, 77}
|
{87, 86, 85, NO_LED, NO_LED, 84, NO_LED, NO_LED, NO_LED, 83, 82, 81, 80, 79, NO_LED, 78, 77}
|
||||||
}, {
|
}, {
|
||||||
{0, 0}, {28, 0}, {42, 0}, {56, 0}, {71, 0}, {85, 0}, {99, 0}, {113, 0}, {127, 0}, {141, 0}, {155, 0}, {169, 0}, {184, 0}, {198, 0}, {212, 0}, {226, 0}, {226, 26}, {212, 26}, {198, 26}, {184, 26}, {169, 26}, {155, 26}, {141, 26}, {127, 26}, {113, 26}, {99, 26}, {85, 26}, {71, 26}, {56, 26}, {42, 26}, {28, 26}, {14, 26}, {0, 26}, {0, 26}, {14, 26}, {28, 26}, {42, 26}, {56, 26}, {71, 26}, {85, 26}, {99, 26}, {113, 26}, {127, 26}, {141, 26}, {155, 26}, {169, 26}, {184, 26}, {198, 26}, {212, 26}, {226, 26}, {169, 38}, {155, 38}, {141, 38}, {127, 38}, {113, 38}, {99, 38}, {85, 38}, {71, 38}, {56, 38}, {42, 38}, {28, 38}, {14, 38}, {0, 38}, {0, 51}, {14, 51}, {28, 51}, {42, 51}, {56, 51}, {71, 51}, {85, 51}, {99, 51}, {113, 51}, {127, 51}, {141, 51}, {155, 51}, {169, 51}, {212, 51}, {226, 64}, {212, 64}, {184, 64}, {169, 64}, {155, 64}, {141, 64}, {127, 64}, {71, 64}, {28, 64}, {14, 64}, {0, 64}
|
{0, 0}, {28, 0}, {42, 0}, {56, 0}, {71, 0}, {85, 0}, {99, 0}, {113, 0}, {127, 0}, {141, 0}, {155, 0}, {169, 0}, {184, 0}, {198, 0}, {212, 0}, {226, 0}, {226, 26}, {212, 26}, {198, 26}, {184, 26}, {169, 26}, {155, 26}, {141, 26}, {127, 26}, {113, 26}, {99, 26}, {85, 26}, {71, 26}, {56, 26}, {42, 26}, {28, 26}, {14, 26}, {0, 26}, {0, 26}, {14, 26}, {28, 26}, {42, 26}, {56, 26}, {71, 26}, {85, 26}, {99, 26}, {113, 26}, {127, 26}, {141, 26}, {155, 26}, {169, 26}, {184, 26}, {198, 26}, {212, 26}, {226, 26}, {169, 38}, {155, 38}, {141, 38}, {127, 38}, {113, 38}, {99, 38}, {85, 38}, {71, 38}, {56, 38}, {42, 38}, {28, 38}, {14, 38}, {0, 38}, {0, 51}, {14, 51}, {28, 51}, {42, 51}, {56, 51}, {71, 51}, {85, 51}, {99, 51}, {113, 51}, {127, 51}, {141, 51}, {155, 51}, {169, 51}, {212, 51}, {226, 64}, {212, 64}, {184, 64}, {169, 64}, {155, 64}, {141, 64}, {127, 64}, {71, 64}, {28, 64}, {14, 64}, {0, 64}
|
||||||
|
@ -21,8 +21,6 @@
|
|||||||
/* Locking resynchronize hack */
|
/* Locking resynchronize hack */
|
||||||
#define LOCKING_RESYNC_ENABLE
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
#define RGB_MATRIX_SLEEP
|
|
||||||
|
|
||||||
/* External spi flash */
|
/* External spi flash */
|
||||||
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14
|
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14
|
||||||
#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
|
#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
|
||||||
@ -37,8 +35,3 @@
|
|||||||
#define AW20216S_CS_PIN_2 B15
|
#define AW20216S_CS_PIN_2 B15
|
||||||
#define AW20216S_EN_PIN_1 C13
|
#define AW20216S_EN_PIN_1 C13
|
||||||
#define AW20216S_EN_PIN_2 C13
|
#define AW20216S_EN_PIN_2 C13
|
||||||
|
|
||||||
#define DRIVER_COUNT 2
|
|
||||||
#define DRIVER_1_LED_TOTAL 66
|
|
||||||
#define DRIVER_2_LED_TOTAL 19
|
|
||||||
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
|
|
||||||
|
@ -167,7 +167,8 @@
|
|||||||
{ "flags": 4, "matrix": [0, 5], "x": 150, "y": 50 },
|
{ "flags": 4, "matrix": [0, 5], "x": 150, "y": 50 },
|
||||||
{ "flags": 4, "matrix": [11, 0], "x": 0, "y": 1 },
|
{ "flags": 4, "matrix": [11, 0], "x": 0, "y": 1 },
|
||||||
{ "flags": 4, "matrix": [11, 1], "x": 0, "y": 2 }
|
{ "flags": 4, "matrix": [11, 1], "x": 0, "y": 2 }
|
||||||
]
|
],
|
||||||
|
"sleep": true
|
||||||
},
|
},
|
||||||
"url": "",
|
"url": "",
|
||||||
"usb": {
|
"usb": {
|
||||||
|
@ -21,8 +21,6 @@
|
|||||||
/* Locking resynchronize hack */
|
/* Locking resynchronize hack */
|
||||||
#define LOCKING_RESYNC_ENABLE
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
#define RGB_MATRIX_SLEEP
|
|
||||||
|
|
||||||
/* External spi flash */
|
/* External spi flash */
|
||||||
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14
|
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14
|
||||||
|
|
||||||
@ -36,7 +34,3 @@
|
|||||||
#define AW20216S_CS_PIN_2 B15
|
#define AW20216S_CS_PIN_2 B15
|
||||||
#define AW20216S_EN_PIN_1 C13
|
#define AW20216S_EN_PIN_1 C13
|
||||||
#define AW20216S_EN_PIN_2 C13
|
#define AW20216S_EN_PIN_2 C13
|
||||||
|
|
||||||
#define DRIVER_1_LED_TOTAL 68
|
|
||||||
#define DRIVER_2_LED_TOTAL 54
|
|
||||||
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
|
|
||||||
|
@ -173,7 +173,8 @@
|
|||||||
{ "flags": 4, "matrix": [0, 3], "x": 155, "y": 55 },
|
{ "flags": 4, "matrix": [0, 3], "x": 155, "y": 55 },
|
||||||
{ "flags": 4, "matrix": [7, 3], "x": 165, "y": 55 },
|
{ "flags": 4, "matrix": [7, 3], "x": 165, "y": 55 },
|
||||||
{ "flags": 4, "matrix": [0, 5], "x": 175, "y": 55 }
|
{ "flags": 4, "matrix": [0, 5], "x": 175, "y": 55 }
|
||||||
]
|
],
|
||||||
|
"sleep": true
|
||||||
},
|
},
|
||||||
"url": "",
|
"url": "",
|
||||||
"usb": {
|
"usb": {
|
||||||
|
@ -20,13 +20,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifdef RGB_MATRIX_ENABLE
|
|
||||||
#define RGB_MATRIX_LED_COUNT 15
|
|
||||||
#define RGB_MATRIX_KEYPRESSES
|
|
||||||
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
|
||||||
#define RGB_MATRIX_DEFAULT_HUE 221
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define I2C1_SCL_PIN B8
|
#define I2C1_SCL_PIN B8
|
||||||
#define I2C1_SDA_PIN B9
|
#define I2C1_SDA_PIN B9
|
||||||
|
|
||||||
|
@ -17,6 +17,10 @@
|
|||||||
"pin": "A10"
|
"pin": "A10"
|
||||||
},
|
},
|
||||||
"rgb_matrix": {
|
"rgb_matrix": {
|
||||||
|
"default": {
|
||||||
|
"animation": "solid_reactive_simple",
|
||||||
|
"hue": 221
|
||||||
|
},
|
||||||
"driver": "ws2812",
|
"driver": "ws2812",
|
||||||
"layout": [
|
"layout": [
|
||||||
{"matrix": [0, 2], "x": 224, "y": 0, "flags": 4},
|
{"matrix": [0, 2], "x": 224, "y": 0, "flags": 4},
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
/* Copyright 2022 Leo Deng (@myst729)
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#ifdef RGB_MATRIX_ENABLE
|
|
||||||
#define RGB_MATRIX_LED_COUNT 31
|
|
||||||
#define RGB_MATRIX_KEYPRESSES
|
|
||||||
#define ENABLE_RGB_MATRIX_BREATHING
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_ALL
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
|
||||||
#endif
|
|
@ -9,6 +9,13 @@
|
|||||||
"device_version": "0.0.1"
|
"device_version": "0.0.1"
|
||||||
},
|
},
|
||||||
"rgb_matrix": {
|
"rgb_matrix": {
|
||||||
|
"animations": {
|
||||||
|
"breathing": true,
|
||||||
|
"cycle_all": true,
|
||||||
|
"solid_reactive_multiwide": true,
|
||||||
|
"solid_reactive_multinexus": true,
|
||||||
|
"solid_multisplash": true
|
||||||
|
},
|
||||||
"driver": "ws2812"
|
"driver": "ws2812"
|
||||||
},
|
},
|
||||||
"matrix_pins": {
|
"matrix_pins": {
|
||||||
|
@ -17,60 +17,3 @@
|
|||||||
|
|
||||||
#define BACKLIGHT_PWM_DRIVER PWMD2
|
#define BACKLIGHT_PWM_DRIVER PWMD2
|
||||||
#define BACKLIGHT_PWM_CHANNEL 4
|
#define BACKLIGHT_PWM_CHANNEL 4
|
||||||
|
|
||||||
/* RGB Matrix */
|
|
||||||
#ifdef RGB_MATRIX_ENABLE
|
|
||||||
#define RGB_MATRIX_LED_COUNT 30
|
|
||||||
#define RGB_MATRIX_KEYPRESSES
|
|
||||||
// #define RGB_MATRIX_KEYRELEASES
|
|
||||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
|
||||||
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
|
|
||||||
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
|
|
||||||
// Enable Effects
|
|
||||||
// == Regular Effects ==
|
|
||||||
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
|
||||||
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
|
||||||
#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
|
||||||
#define ENABLE_RGB_MATRIX_BREATHING
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_ALL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
|
|
||||||
#define ENABLE_RGB_MATRIX_DUAL_BEACON
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINDROPS
|
|
||||||
#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_BREATHING
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_PENDULUM
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_WAVE
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_FLOW
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
|
||||||
// == Framebuffer Effects ==
|
|
||||||
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
|
||||||
#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
|
||||||
// == Reactive Effects ==
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
|
||||||
#define ENABLE_RGB_MATRIX_SPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_MULTISPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
|
||||||
#endif
|
|
||||||
|
@ -9,7 +9,56 @@
|
|||||||
"device_version": "0.0.1"
|
"device_version": "0.0.1"
|
||||||
},
|
},
|
||||||
"rgb_matrix": {
|
"rgb_matrix": {
|
||||||
"driver": "ws2812"
|
"animations": {
|
||||||
|
"alphas_mods": true,
|
||||||
|
"gradient_up_down": true,
|
||||||
|
"gradient_left_right": true,
|
||||||
|
"breathing": true,
|
||||||
|
"band_sat": true,
|
||||||
|
"band_val": true,
|
||||||
|
"band_pinwheel_sat": true,
|
||||||
|
"band_pinwheel_val": true,
|
||||||
|
"band_spiral_sat": true,
|
||||||
|
"band_spiral_val": true,
|
||||||
|
"cycle_all": true,
|
||||||
|
"cycle_left_right": true,
|
||||||
|
"cycle_up_down": true,
|
||||||
|
"cycle_out_in": true,
|
||||||
|
"cycle_out_in_dual": true,
|
||||||
|
"cycle_pinwheel": true,
|
||||||
|
"cycle_spiral": true,
|
||||||
|
"dual_beacon": true,
|
||||||
|
"rainbow_moving_chevron": true,
|
||||||
|
"rainbow_beacon": true,
|
||||||
|
"rainbow_pinwheels": true,
|
||||||
|
"raindrops": true,
|
||||||
|
"jellybean_raindrops": true,
|
||||||
|
"hue_breathing": true,
|
||||||
|
"hue_pendulum": true,
|
||||||
|
"hue_wave": true,
|
||||||
|
"pixel_fractal": true,
|
||||||
|
"pixel_flow": true,
|
||||||
|
"pixel_rain": true,
|
||||||
|
"typing_heatmap": true,
|
||||||
|
"digital_rain": true,
|
||||||
|
"solid_reactive_simple": true,
|
||||||
|
"solid_reactive": true,
|
||||||
|
"solid_reactive_wide": true,
|
||||||
|
"solid_reactive_multiwide": true,
|
||||||
|
"solid_reactive_cross": true,
|
||||||
|
"solid_reactive_multicross": true,
|
||||||
|
"solid_reactive_nexus": true,
|
||||||
|
"solid_reactive_multinexus": true,
|
||||||
|
"splash": true,
|
||||||
|
"multisplash": true,
|
||||||
|
"solid_splash": true,
|
||||||
|
"solid_multisplash": true
|
||||||
|
},
|
||||||
|
"default": {
|
||||||
|
"animation": "cycle_all"
|
||||||
|
},
|
||||||
|
"driver": "ws2812",
|
||||||
|
"max_brightness": 200
|
||||||
},
|
},
|
||||||
"matrix_pins": {
|
"matrix_pins": {
|
||||||
"cols": ["B13", "B14", "B3", "A4", "A6"],
|
"cols": ["B13", "B14", "B3", "A4", "A6"],
|
||||||
|
@ -1,69 +0,0 @@
|
|||||||
/* Copyright 2022 DOIO
|
|
||||||
* Copyright 2022 DOIO2022 <https://github.com/DOIO2022>
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
/* RGB Matrix config */
|
|
||||||
#define RGB_MATRIX_LED_COUNT 12
|
|
||||||
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_UP_DOWN
|
|
||||||
#define RGB_MATRIX_SLEEP
|
|
||||||
#define RGB_MATRIX_KEYPRESSES
|
|
||||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
|
||||||
|
|
||||||
/* RGB Matrix effect */
|
|
||||||
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
|
||||||
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
|
||||||
#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
|
||||||
#define ENABLE_RGB_MATRIX_BREATHING
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_ALL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
|
|
||||||
#define ENABLE_RGB_MATRIX_DUAL_BEACON
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINDROPS
|
|
||||||
#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_BREATHING
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_PENDULUM
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_WAVE
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
|
||||||
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
|
||||||
#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
|
||||||
#define ENABLE_RGB_MATRIX_SPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_MULTISPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
|
@ -9,7 +9,54 @@
|
|||||||
"device_version": "0.0.1"
|
"device_version": "0.0.1"
|
||||||
},
|
},
|
||||||
"rgb_matrix": {
|
"rgb_matrix": {
|
||||||
"driver": "ws2812"
|
"animations": {
|
||||||
|
"alphas_mods": true,
|
||||||
|
"gradient_up_down": true,
|
||||||
|
"gradient_left_right": true,
|
||||||
|
"breathing": true,
|
||||||
|
"band_sat": true,
|
||||||
|
"band_val": true,
|
||||||
|
"band_pinwheel_sat": true,
|
||||||
|
"band_pinwheel_val": true,
|
||||||
|
"band_spiral_sat": true,
|
||||||
|
"band_spiral_val": true,
|
||||||
|
"cycle_all": true,
|
||||||
|
"cycle_left_right": true,
|
||||||
|
"cycle_up_down": true,
|
||||||
|
"cycle_out_in": true,
|
||||||
|
"cycle_out_in_dual": true,
|
||||||
|
"rainbow_moving_chevron": true,
|
||||||
|
"cycle_pinwheel": true,
|
||||||
|
"cycle_spiral": true,
|
||||||
|
"dual_beacon": true,
|
||||||
|
"rainbow_beacon": true,
|
||||||
|
"rainbow_pinwheels": true,
|
||||||
|
"raindrops": true,
|
||||||
|
"jellybean_raindrops": true,
|
||||||
|
"hue_breathing": true,
|
||||||
|
"hue_pendulum": true,
|
||||||
|
"hue_wave": true,
|
||||||
|
"pixel_fractal": true,
|
||||||
|
"pixel_rain": true,
|
||||||
|
"typing_heatmap": true,
|
||||||
|
"digital_rain": true,
|
||||||
|
"solid_reactive_simple": true,
|
||||||
|
"solid_reactive": true,
|
||||||
|
"solid_reactive_wide": true,
|
||||||
|
"solid_reactive_multiwide": true,
|
||||||
|
"solid_reactive_cross": true,
|
||||||
|
"solid_reactive_multicross": true,
|
||||||
|
"solid_reactive_nexus": true,
|
||||||
|
"solid_reactive_multinexus": true,
|
||||||
|
"splash": true,
|
||||||
|
"multisplash": true,
|
||||||
|
"solid_splash": true,
|
||||||
|
"solid_multisplash": true
|
||||||
|
},
|
||||||
|
"default": {
|
||||||
|
"animation": "cycle_up_down"
|
||||||
|
},
|
||||||
|
"driver": "ws2812",
|
||||||
"layout": [
|
"layout": [
|
||||||
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
|
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
|
||||||
{"matrix": [0, 1], "x": 75, "y": 0, "flags": 4},
|
{"matrix": [0, 1], "x": 75, "y": 0, "flags": 4},
|
||||||
@ -24,7 +71,8 @@
|
|||||||
{"matrix": [2, 2], "x": 150, "y": 64, "flags": 4},
|
{"matrix": [2, 2], "x": 150, "y": 64, "flags": 4},
|
||||||
{"matrix": [2, 3], "x": 224, "y": 64, "flags": 4}
|
{"matrix": [2, 3], "x": 224, "y": 64, "flags": 4}
|
||||||
],
|
],
|
||||||
"max_brightness": 200
|
"max_brightness": 200,
|
||||||
|
"sleep": true
|
||||||
},
|
},
|
||||||
"matrix_pins": {
|
"matrix_pins": {
|
||||||
"cols": ["B14", "B13", "B12", "B0", "A7"],
|
"cols": ["B14", "B13", "B12", "B0", "A7"],
|
||||||
|
@ -19,42 +19,3 @@
|
|||||||
|
|
||||||
/* Use the custom font */
|
/* Use the custom font */
|
||||||
#define OLED_FONT_H "./lib/glcdfont.c"
|
#define OLED_FONT_H "./lib/glcdfont.c"
|
||||||
|
|
||||||
#ifdef RGB_MATRIX_ENABLE
|
|
||||||
/* RGB Matrix config */
|
|
||||||
#define RGB_MATRIX_LED_COUNT 16
|
|
||||||
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
|
|
||||||
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_UP_DOWN
|
|
||||||
#define RGB_MATRIX_KEYPRESSES
|
|
||||||
|
|
||||||
/* RGB Matrix effect */
|
|
||||||
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
|
||||||
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
|
||||||
#define ENABLE_RGB_MATRIX_BREATHING
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_ALL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
|
||||||
#define ENABLE_RGB_MATRIX_DUAL_BEACON
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINDROPS
|
|
||||||
#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_BREATHING
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_PENDULUM
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_WAVE
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_FLOW
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
|
||||||
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
|
||||||
#define ENABLE_RGB_MATRIX_MULTISPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
|
||||||
#endif
|
|
||||||
|
@ -10,7 +10,41 @@
|
|||||||
"force_nkro": true
|
"force_nkro": true
|
||||||
},
|
},
|
||||||
"rgb_matrix": {
|
"rgb_matrix": {
|
||||||
"driver": "ws2812"
|
"animations": {
|
||||||
|
"alphas_mods": true,
|
||||||
|
"gradient_up_down": true,
|
||||||
|
"breathing": true,
|
||||||
|
"band_sat": true,
|
||||||
|
"band_val": true,
|
||||||
|
"band_pinwheel_sat": true,
|
||||||
|
"band_pinwheel_val": true,
|
||||||
|
"cycle_all": true,
|
||||||
|
"cycle_up_down": true,
|
||||||
|
"cycle_out_in": true,
|
||||||
|
"cycle_pinwheel": true,
|
||||||
|
"dual_beacon": true,
|
||||||
|
"rainbow_pinwheels": true,
|
||||||
|
"raindrops": true,
|
||||||
|
"jellybean_raindrops": true,
|
||||||
|
"hue_breathing": true,
|
||||||
|
"hue_pendulum": true,
|
||||||
|
"hue_wave": true,
|
||||||
|
"pixel_rain": true,
|
||||||
|
"pixel_flow": true,
|
||||||
|
"pixel_fractal": true,
|
||||||
|
"solid_reactive_simple": true,
|
||||||
|
"solid_reactive": true,
|
||||||
|
"solid_reactive_multiwide": true,
|
||||||
|
"solid_reactive_multicross": true,
|
||||||
|
"solid_reactive_multinexus": true,
|
||||||
|
"multisplash": true,
|
||||||
|
"solid_multisplash": true
|
||||||
|
},
|
||||||
|
"default": {
|
||||||
|
"animation": "cycle_up_down"
|
||||||
|
},
|
||||||
|
"driver": "ws2812",
|
||||||
|
"max_brightness": 200
|
||||||
},
|
},
|
||||||
"matrix_pins": {
|
"matrix_pins": {
|
||||||
"cols": ["F5", "F4", "F1", "F0", "B7"],
|
"cols": ["F5", "F4", "F1", "F0", "B7"],
|
||||||
|
@ -26,42 +26,3 @@
|
|||||||
/* Use the custom font */
|
/* Use the custom font */
|
||||||
#define OLED_FONT_H "./lib/glcdfont.c"
|
#define OLED_FONT_H "./lib/glcdfont.c"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef RGB_MATRIX_ENABLE
|
|
||||||
/* RGB Matrix config */
|
|
||||||
#define RGB_MATRIX_LED_COUNT 16
|
|
||||||
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
|
|
||||||
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_UP_DOWN
|
|
||||||
#define RGB_MATRIX_KEYPRESSES
|
|
||||||
|
|
||||||
/* RGB Matrix effect */
|
|
||||||
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
|
||||||
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
|
||||||
#define ENABLE_RGB_MATRIX_BREATHING
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_ALL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
|
||||||
#define ENABLE_RGB_MATRIX_DUAL_BEACON
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINDROPS
|
|
||||||
#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_BREATHING
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_PENDULUM
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_WAVE
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_FLOW
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
|
||||||
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
|
||||||
#define ENABLE_RGB_MATRIX_MULTISPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
|
||||||
#endif
|
|
||||||
|
@ -10,7 +10,41 @@
|
|||||||
"force_nkro": true
|
"force_nkro": true
|
||||||
},
|
},
|
||||||
"rgb_matrix": {
|
"rgb_matrix": {
|
||||||
"driver": "ws2812"
|
"animations": {
|
||||||
|
"alphas_mods": true,
|
||||||
|
"gradient_up_down": true,
|
||||||
|
"breathing": true,
|
||||||
|
"band_sat": true,
|
||||||
|
"band_val": true,
|
||||||
|
"band_pinwheel_sat": true,
|
||||||
|
"band_pinwheel_val": true,
|
||||||
|
"cycle_all": true,
|
||||||
|
"cycle_up_down": true,
|
||||||
|
"cycle_out_in": true,
|
||||||
|
"cycle_pinwheel": true,
|
||||||
|
"dual_beacon": true,
|
||||||
|
"rainbow_pinwheels": true,
|
||||||
|
"raindrops": true,
|
||||||
|
"jellybean_raindrops": true,
|
||||||
|
"hue_breathing": true,
|
||||||
|
"hue_pendulum": true,
|
||||||
|
"hue_wave": true,
|
||||||
|
"pixel_rain": true,
|
||||||
|
"pixel_flow": true,
|
||||||
|
"pixel_fractal": true,
|
||||||
|
"solid_reactive_simple": true,
|
||||||
|
"solid_reactive": true,
|
||||||
|
"solid_reactive_multiwide": true,
|
||||||
|
"solid_reactive_multicross": true,
|
||||||
|
"solid_reactive_multinexus": true,
|
||||||
|
"multisplash": true,
|
||||||
|
"solid_multisplash": true
|
||||||
|
},
|
||||||
|
"default": {
|
||||||
|
"animation": "cycle_up_down"
|
||||||
|
},
|
||||||
|
"driver": "ws2812",
|
||||||
|
"max_brightness": 200
|
||||||
},
|
},
|
||||||
"matrix_pins": {
|
"matrix_pins": {
|
||||||
"cols": ["B14", "B13", "B12", "B0", "A7"],
|
"cols": ["B14", "B13", "B12", "B0", "A7"],
|
||||||
|
@ -22,8 +22,6 @@
|
|||||||
/* Locking resynchronize hack */
|
/* Locking resynchronize hack */
|
||||||
#define LOCKING_RESYNC_ENABLE
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
// #define QMK_KEYS_PER_SCAN 12
|
|
||||||
|
|
||||||
/* OLED */
|
/* OLED */
|
||||||
#ifdef OLED_ENABLE
|
#ifdef OLED_ENABLE
|
||||||
# define OLED_BRIGHTNESS 5
|
# define OLED_BRIGHTNESS 5
|
||||||
@ -34,59 +32,7 @@
|
|||||||
# define I2C_DRIVER I2CD2
|
# define I2C_DRIVER I2CD2
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef RGB_MATRIX_ENABLE
|
#define RGB_MATRIX_LED_COUNT 36
|
||||||
/* RGB Matrix config */
|
|
||||||
#define RGB_MATRIX_LED_COUNT 36
|
|
||||||
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
|
|
||||||
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_UP_DOWN
|
|
||||||
# define RGB_MATRIX_SLEEP
|
|
||||||
# define RGB_MATRIX_KEYPRESSES
|
|
||||||
|
|
||||||
|
|
||||||
/* RGB Matrix effect */
|
|
||||||
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
|
||||||
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
|
||||||
#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
|
||||||
#define ENABLE_RGB_MATRIX_BREATHING
|
|
||||||
// #define ENABLE_RGB_MATRIX_BAND_SAT
|
|
||||||
// #define ENABLE_RGB_MATRIX_BAND_VAL
|
|
||||||
// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
|
||||||
// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
|
||||||
// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
|
||||||
// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
|
||||||
// #define ENABLE_RGB_MATRIX_CYCLE_ALL
|
|
||||||
// #define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
|
|
||||||
#define ENABLE_RGB_MATRIX_DUAL_BEACON
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINDROPS
|
|
||||||
#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_BREATHING
|
|
||||||
// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
|
|
||||||
// #define ENABLE_RGB_MATRIX_HUE_WAVE
|
|
||||||
// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
|
||||||
// #define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
|
||||||
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
|
||||||
#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
|
||||||
#define ENABLE_RGB_MATRIX_SPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_MULTISPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Feature disable options
|
* Feature disable options
|
||||||
|
@ -9,7 +9,44 @@
|
|||||||
"device_version": "0.0.1"
|
"device_version": "0.0.1"
|
||||||
},
|
},
|
||||||
"rgb_matrix": {
|
"rgb_matrix": {
|
||||||
"driver": "ws2812"
|
"animations": {
|
||||||
|
"alphas_mods": true,
|
||||||
|
"gradient_up_down": true,
|
||||||
|
"gradient_left_right": true,
|
||||||
|
"breathing": true,
|
||||||
|
"cycle_up_down": true,
|
||||||
|
"cycle_out_in": true,
|
||||||
|
"cycle_out_in_dual": true,
|
||||||
|
"rainbow_moving_chevron": true,
|
||||||
|
"cycle_pinwheel": true,
|
||||||
|
"cycle_spiral": true,
|
||||||
|
"dual_beacon": true,
|
||||||
|
"rainbow_beacon": true,
|
||||||
|
"rainbow_pinwheels": true,
|
||||||
|
"raindrops": true,
|
||||||
|
"jellybean_raindrops": true,
|
||||||
|
"hue_breathing": true,
|
||||||
|
"typing_heatmap": true,
|
||||||
|
"digital_rain": true,
|
||||||
|
"solid_reactive_simple": true,
|
||||||
|
"solid_reactive": true,
|
||||||
|
"solid_reactive_wide": true,
|
||||||
|
"solid_reactive_multiwide": true,
|
||||||
|
"solid_reactive_cross": true,
|
||||||
|
"solid_reactive_multicross": true,
|
||||||
|
"solid_reactive_nexus": true,
|
||||||
|
"solid_reactive_multinexus": true,
|
||||||
|
"splash": true,
|
||||||
|
"multisplash": true,
|
||||||
|
"solid_splash": true,
|
||||||
|
"solid_multisplash": true
|
||||||
|
},
|
||||||
|
"default": {
|
||||||
|
"animation": "cycle_up_down"
|
||||||
|
},
|
||||||
|
"driver": "ws2812",
|
||||||
|
"max_brightness": 200,
|
||||||
|
"sleep": true
|
||||||
},
|
},
|
||||||
"matrix_pins": {
|
"matrix_pins": {
|
||||||
"cols": ["B14", "B13", "B12", "B0", "A7", "A9", "A8"],
|
"cols": ["B14", "B13", "B12", "B0", "A7", "A9", "A8"],
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
// Copyright 2022 Katrina (@Daggette10)
|
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#define RGB_MATRIX_LED_COUNT 44
|
|
||||||
|
|
||||||
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
|
|
||||||
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
|
|
||||||
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
|
||||||
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
|
||||||
#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
|
||||||
#define ENABLE_RGB_MATRIX_BREATHING
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_ALL
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Feature disable options
|
|
||||||
* These options are also useful to firmware size reduction.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* disable debug print */
|
|
||||||
//#define NO_DEBUG
|
|
||||||
|
|
||||||
/* disable print */
|
|
||||||
//#define NO_PRINT
|
|
||||||
|
|
||||||
/* disable action features */
|
|
||||||
//#define NO_ACTION_LAYER
|
|
||||||
//#define NO_ACTION_TAPPING
|
|
||||||
//#define NO_ACTION_ONESHOT
|
|
@ -36,6 +36,14 @@
|
|||||||
"pin": "F6"
|
"pin": "F6"
|
||||||
},
|
},
|
||||||
"rgb_matrix": {
|
"rgb_matrix": {
|
||||||
|
"animations": {
|
||||||
|
"alphas_mods": true,
|
||||||
|
"gradient_up_down": true,
|
||||||
|
"gradient_left_right": true,
|
||||||
|
"breathing": true,
|
||||||
|
"cycle_all": true,
|
||||||
|
"rainbow_moving_chevron": true
|
||||||
|
},
|
||||||
"driver": "ws2812",
|
"driver": "ws2812",
|
||||||
"layout": [
|
"layout": [
|
||||||
{"flags": 4, "matrix": [0, 0], "x": 0, "y": 0},
|
{"flags": 4, "matrix": [0, 0], "x": 0, "y": 0},
|
||||||
@ -88,7 +96,8 @@
|
|||||||
{"flags": 2, "x": 0, "y": 0},
|
{"flags": 2, "x": 0, "y": 0},
|
||||||
{"flags": 2, "x": 74.6, "y": 0},
|
{"flags": 2, "x": 74.6, "y": 0},
|
||||||
{"flags": 2, "x": 224, "y": 0}
|
{"flags": 2, "x": 224, "y": 0}
|
||||||
]
|
],
|
||||||
|
"max_brightness": 200,
|
||||||
},
|
},
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT": {
|
||||||
|
@ -17,59 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
// The number of LEDs connected
|
|
||||||
#define RGB_MATRIX_LED_COUNT 67
|
|
||||||
|
|
||||||
#define RGB_MATRIX_KEYPRESSES
|
|
||||||
// RGB Matrix Animation modes. Explicitly enabled
|
|
||||||
// For full list of effects, see:
|
|
||||||
// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
|
|
||||||
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
|
||||||
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
|
||||||
#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
|
||||||
#define ENABLE_RGB_MATRIX_BREATHING
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_ALL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
|
|
||||||
#define ENABLE_RGB_MATRIX_DUAL_BEACON
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINDROPS
|
|
||||||
#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_BREATHING
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_PENDULUM
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_WAVE
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_FLOW
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
|
||||||
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
|
|
||||||
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
|
||||||
#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
|
||||||
// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
|
||||||
#define ENABLE_RGB_MATRIX_SPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_MULTISPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
|
||||||
|
|
||||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
#define LOCKING_SUPPORT_ENABLE
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
/* Locking resynchronize hack */
|
/* Locking resynchronize hack */
|
||||||
|
@ -9,6 +9,51 @@
|
|||||||
"device_version": "0.0.1"
|
"device_version": "0.0.1"
|
||||||
},
|
},
|
||||||
"rgb_matrix": {
|
"rgb_matrix": {
|
||||||
|
"animations": {
|
||||||
|
"alphas_mods": true,
|
||||||
|
"gradient_up_down": true,
|
||||||
|
"gradient_left_right": true,
|
||||||
|
"breathing": true,
|
||||||
|
"band_sat": true,
|
||||||
|
"band_val": true,
|
||||||
|
"band_pinwheel_sat": true,
|
||||||
|
"band_pinwheel_val": true,
|
||||||
|
"band_spiral_sat": true,
|
||||||
|
"band_spiral_val": true,
|
||||||
|
"cycle_all": true,
|
||||||
|
"cycle_left_right": true,
|
||||||
|
"cycle_up_down": true,
|
||||||
|
"rainbow_moving_chevron": true,
|
||||||
|
"cycle_out_in": true,
|
||||||
|
"cycle_out_in_dual": true,
|
||||||
|
"cycle_pinwheel": true,
|
||||||
|
"cycle_spiral": true,
|
||||||
|
"dual_beacon": true,
|
||||||
|
"rainbow_beacon": true,
|
||||||
|
"rainbow_pinwheels": true,
|
||||||
|
"raindrops": true,
|
||||||
|
"jellybean_raindrops": true,
|
||||||
|
"hue_breathing": true,
|
||||||
|
"hue_pendulum": true,
|
||||||
|
"hue_wave": true,
|
||||||
|
"pixel_rain": true,
|
||||||
|
"pixel_flow": true,
|
||||||
|
"pixel_fractal": true,
|
||||||
|
"typing_heatmap": true,
|
||||||
|
"digital_rain": true,
|
||||||
|
"solid_reactive_simple": true,
|
||||||
|
"solid_reactive": true,
|
||||||
|
"solid_reactive_wide": true,
|
||||||
|
"solid_reactive_multiwide": true,
|
||||||
|
"solid_reactive_cross": true,
|
||||||
|
"solid_reactive_multicross": true,
|
||||||
|
"solid_reactive_nexus": true,
|
||||||
|
"solid_reactive_multinexus": true,
|
||||||
|
"splash": true,
|
||||||
|
"multisplash": true,
|
||||||
|
"solid_splash": true,
|
||||||
|
"solid_multisplash": true
|
||||||
|
},
|
||||||
"driver": "ws2812"
|
"driver": "ws2812"
|
||||||
},
|
},
|
||||||
"matrix_pins": {
|
"matrix_pins": {
|
||||||
|
@ -21,12 +21,3 @@
|
|||||||
#define LOCKING_SUPPORT_ENABLE
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
/* Locking resynchronize hack */
|
/* Locking resynchronize hack */
|
||||||
#define LOCKING_RESYNC_ENABLE
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
// The number of LEDs connected
|
|
||||||
#define RGB_MATRIX_LED_COUNT 66
|
|
||||||
#define RGB_MATRIX_KEYPRESSES
|
|
||||||
#define RGB_MATRIX_KEYRELEASES
|
|
||||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
|
||||||
#define RGB_DISABLE_AFTER_TIMEOUT 0
|
|
||||||
#define RGB_MATRIX_LED_FLUSH_LIMIT 16
|
|
||||||
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
|
|
||||||
|
@ -59,7 +59,9 @@
|
|||||||
"solid_reactive_cross": true,
|
"solid_reactive_cross": true,
|
||||||
"solid_reactive_nexus": true,
|
"solid_reactive_nexus": true,
|
||||||
"splash": true
|
"splash": true
|
||||||
}
|
},
|
||||||
|
"max_brightness": 200,
|
||||||
|
"react_on_keyup": true
|
||||||
},
|
},
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT": {
|
||||||
|
@ -51,7 +51,9 @@
|
|||||||
"max_brightness": 180,
|
"max_brightness": 180,
|
||||||
"sat_steps": 8,
|
"sat_steps": 8,
|
||||||
"speed_steps": 10,
|
"speed_steps": 10,
|
||||||
"val_steps": 8
|
"val_steps": 8,
|
||||||
|
"react_on_keyup": true,
|
||||||
|
"sleep": true
|
||||||
},
|
},
|
||||||
"ws2812": {
|
"ws2812": {
|
||||||
"pin": "B5"
|
"pin": "B5"
|
||||||
|
@ -17,9 +17,4 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define RGB_MATRIX_LED_COUNT 8
|
|
||||||
#define RGB_MATRIX_SOLID_REACTIVE_GRADIENT_MODE
|
#define RGB_MATRIX_SOLID_REACTIVE_GRADIENT_MODE
|
||||||
#define RGB_MATRIX_KEYPRESSES
|
|
||||||
#define RGB_MATRIX_KEYRELEASES
|
|
||||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
|
||||||
#define RGB_MATRIX_SLEEP
|
|
@ -35,54 +35,5 @@
|
|||||||
//rgb matrix setting
|
//rgb matrix setting
|
||||||
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
|
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
|
||||||
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
|
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
|
||||||
#define DRIVER_1_LED_TOTAL 36
|
|
||||||
#define DRIVER_2_LED_TOTAL 36
|
#define RGB_MATRIX_LED_COUNT 72
|
||||||
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
|
|
||||||
// RGB Matrix Animation modes. Explicitly enabled
|
|
||||||
// For full list of effects, see:
|
|
||||||
// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
|
|
||||||
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
|
||||||
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
|
||||||
#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
|
||||||
#define ENABLE_RGB_MATRIX_BREATHING
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_ALL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
|
|
||||||
#define ENABLE_RGB_MATRIX_DUAL_BEACON
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINDROPS
|
|
||||||
#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_BREATHING
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_PENDULUM
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_WAVE
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_FLOW
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
|
||||||
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
|
|
||||||
// #define ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
|
||||||
// #define ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
|
||||||
// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
|
|
||||||
// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
|
||||||
// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
|
||||||
// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
|
||||||
// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
|
||||||
// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
|
||||||
// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
|
||||||
// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
|
||||||
// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
|
||||||
// #define ENABLE_RGB_MATRIX_SPLASH
|
|
||||||
// #define ENABLE_RGB_MATRIX_MULTISPLASH
|
|
||||||
// #define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
|
||||||
// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
|
||||||
|
@ -29,6 +29,37 @@
|
|||||||
"pin": "D7"
|
"pin": "D7"
|
||||||
},
|
},
|
||||||
"rgb_matrix": {
|
"rgb_matrix": {
|
||||||
|
"animations": {
|
||||||
|
"alphas_mods": true,
|
||||||
|
"gradient_up_down": true,
|
||||||
|
"gradient_left_right": true,
|
||||||
|
"breathing": true,
|
||||||
|
"band_sat": true,
|
||||||
|
"band_val": true,
|
||||||
|
"band_pinwheel_sat": true,
|
||||||
|
"band_pinwheel_val": true,
|
||||||
|
"band_spiral_sat": true,
|
||||||
|
"band_spiral_val": true,
|
||||||
|
"cycle_all": true,
|
||||||
|
"cycle_left_right": true,
|
||||||
|
"cycle_up_down": true,
|
||||||
|
"rainbow_moving_chevron": true,
|
||||||
|
"cycle_out_in": true,
|
||||||
|
"cycle_out_in_dual": true,
|
||||||
|
"cycle_pinwheel": true,
|
||||||
|
"cycle_spiral": true,
|
||||||
|
"dual_beacon": true,
|
||||||
|
"rainbow_beacon": true,
|
||||||
|
"rainbow_pinwheels": true,
|
||||||
|
"raindrops": true,
|
||||||
|
"jellybean_raindrops": true,
|
||||||
|
"hue_breathing": true,
|
||||||
|
"hue_pendulum": true,
|
||||||
|
"hue_wave": true,
|
||||||
|
"pixel_rain": true,
|
||||||
|
"pixel_flow": true,
|
||||||
|
"pixel_fractal": true
|
||||||
|
},
|
||||||
"driver": "is31fl3731"
|
"driver": "is31fl3731"
|
||||||
},
|
},
|
||||||
"processor": "atmega32u4",
|
"processor": "atmega32u4",
|
||||||
|
@ -1,74 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2021 DTIsaac
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#ifdef RGB_MATRIX_ENABLE
|
|
||||||
#define RGB_MATRIX_LED_COUNT 42
|
|
||||||
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses
|
|
||||||
#define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
|
|
||||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
|
||||||
// #define RGB_MATRIX_SLEEP // turn off effects when suspended
|
|
||||||
#define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
|
|
||||||
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
|
|
||||||
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_PINWHEEL // Sets the default mode, if none has been set
|
|
||||||
|
|
||||||
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
|
||||||
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
|
||||||
#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
|
||||||
#define ENABLE_RGB_MATRIX_BREATHING
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_ALL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
|
|
||||||
#define ENABLE_RGB_MATRIX_DUAL_BEACON
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINDROPS
|
|
||||||
#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_BREATHING
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_PENDULUM
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_WAVE
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
|
||||||
|
|
||||||
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
|
||||||
#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
|
||||||
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
|
||||||
#define ENABLE_RGB_MATRIX_SPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_MULTISPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
|
||||||
#endif
|
|
@ -15,7 +15,56 @@
|
|||||||
"pin": "D0"
|
"pin": "D0"
|
||||||
},
|
},
|
||||||
"rgb_matrix": {
|
"rgb_matrix": {
|
||||||
"driver": "ws2812"
|
"animations": {
|
||||||
|
"alphas_mods": true,
|
||||||
|
"gradient_up_down": true,
|
||||||
|
"gradient_left_right": true,
|
||||||
|
"breathing": true,
|
||||||
|
"band_sat": true,
|
||||||
|
"band_val": true,
|
||||||
|
"band_pinwheel_sat": true,
|
||||||
|
"band_pinwheel_val": true,
|
||||||
|
"band_spiral_sat": true,
|
||||||
|
"band_spiral_val": true,
|
||||||
|
"cycle_all": true,
|
||||||
|
"cycle_left_right": true,
|
||||||
|
"cycle_up_down": true,
|
||||||
|
"rainbow_moving_chevron": true,
|
||||||
|
"cycle_out_in": true,
|
||||||
|
"cycle_out_in_dual": true,
|
||||||
|
"cycle_pinwheel": true,
|
||||||
|
"cycle_spiral": true,
|
||||||
|
"dual_beacon": true,
|
||||||
|
"rainbow_beacon": true,
|
||||||
|
"rainbow_pinwheels": true,
|
||||||
|
"raindrops": true,
|
||||||
|
"jellybean_raindrops": true,
|
||||||
|
"hue_breathing": true,
|
||||||
|
"hue_pendulum": true,
|
||||||
|
"hue_wave": true,
|
||||||
|
"pixel_fractal": true,
|
||||||
|
"pixel_rain": true,
|
||||||
|
"typing_heatmap": true,
|
||||||
|
"digital_rain": true,
|
||||||
|
"solid_reactive_simple": true,
|
||||||
|
"solid_reactive": true,
|
||||||
|
"solid_reactive_wide": true,
|
||||||
|
"solid_reactive_multiwide": true,
|
||||||
|
"solid_reactive_cross": true,
|
||||||
|
"solid_reactive_multicross": true,
|
||||||
|
"solid_reactive_nexus": true,
|
||||||
|
"solid_reactive_multinexus": true,
|
||||||
|
"splash": true,
|
||||||
|
"multisplash": true,
|
||||||
|
"solid_splash": true,
|
||||||
|
"solid_multisplash": true
|
||||||
|
},
|
||||||
|
"default": {
|
||||||
|
"animation": "cycle_pinwheel"
|
||||||
|
},
|
||||||
|
"driver": "ws2812",
|
||||||
|
"max_brightness": 150,
|
||||||
|
"react_on_keyup": true
|
||||||
},
|
},
|
||||||
"matrix_pins": {
|
"matrix_pins": {
|
||||||
"cols": ["D1", "D6", "D3", "D2", "B6", "C6", "C7", "F7", "F6", "F5", "F4"],
|
"cols": ["D1", "D6", "D3", "D2", "B6", "C6", "C7", "F7", "F6", "F5", "F4"],
|
||||||
|
@ -20,45 +20,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define LED_00 B1
|
#define LED_00 B1
|
||||||
#define LED_01 B3
|
#define LED_01 B3
|
||||||
#define LED_02 B6
|
#define LED_02 B6
|
||||||
|
|
||||||
#define RGB_MATRIX_LED_COUNT 16
|
|
||||||
|
|
||||||
// Cleanup RGB
|
|
||||||
#ifdef RGB_MATRIX_ENABLE
|
|
||||||
|
|
||||||
#define RGB_MATRIX_SLEEP
|
|
||||||
|
|
||||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS // Heatmap, Rain
|
|
||||||
#define RGB_MATRIX_KEYPRESSES
|
|
||||||
|
|
||||||
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
|
||||||
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
|
||||||
#define ENABLE_RGB_MATRIX_BREATHING
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINDROPS
|
|
||||||
#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_FLOW
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
|
||||||
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
|
|
||||||
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
|
||||||
#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
|
||||||
// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
|
||||||
#define ENABLE_RGB_MATRIX_SPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_MULTISPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
@ -6,8 +6,38 @@
|
|||||||
"device_version": "0.1.0"
|
"device_version": "0.1.0"
|
||||||
},
|
},
|
||||||
"rgb_matrix": {
|
"rgb_matrix": {
|
||||||
|
"animations": {
|
||||||
|
"alphas_mods": true,
|
||||||
|
"gradient_up_down": true,
|
||||||
|
"breathing": true,
|
||||||
|
"band_sat": true,
|
||||||
|
"band_val": true,
|
||||||
|
"band_spiral_val": true,
|
||||||
|
"cycle_left_right": true,
|
||||||
|
"cycle_pinwheel": true,
|
||||||
|
"raindrops": true,
|
||||||
|
"jellybean_raindrops": true,
|
||||||
|
"pixel_rain": true,
|
||||||
|
"pixel_flow": true,
|
||||||
|
"pixel_fractal": true,
|
||||||
|
"typing_heatmap": true,
|
||||||
|
"digital_rain": true,
|
||||||
|
"solid_reactive_simple": true,
|
||||||
|
"solid_reactive": true,
|
||||||
|
"solid_reactive_wide": true,
|
||||||
|
"solid_reactive_multiwide": true,
|
||||||
|
"solid_reactive_cross": true,
|
||||||
|
"solid_reactive_multicross": true,
|
||||||
|
"solid_reactive_nexus": true,
|
||||||
|
"solid_reactive_multinexus": true,
|
||||||
|
"splash": true,
|
||||||
|
"multisplash": true,
|
||||||
|
"solid_splash": true,
|
||||||
|
"solid_multisplash": true
|
||||||
|
},
|
||||||
"driver": "ws2812",
|
"driver": "ws2812",
|
||||||
"timeout": 300000
|
"timeout": 300000,
|
||||||
|
"sleep": true
|
||||||
},
|
},
|
||||||
"matrix_pins": {
|
"matrix_pins": {
|
||||||
"cols": ["C6", "D7", "E6", "B4", "B5"],
|
"cols": ["C6", "D7", "E6", "B4", "B5"],
|
||||||
|
@ -33,12 +33,9 @@
|
|||||||
#define LED_WIN_LOCK_PIN C5
|
#define LED_WIN_LOCK_PIN C5
|
||||||
#define LED_MR_LOCK_PIN LED_SCROLL_LOCK_PIN
|
#define LED_MR_LOCK_PIN LED_SCROLL_LOCK_PIN
|
||||||
|
|
||||||
#ifdef RGB_MATRIX_ENABLE
|
|
||||||
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
|
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
|
||||||
#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC
|
#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC
|
||||||
|
|
||||||
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
|
|
||||||
|
|
||||||
/* I2C Alternate function settings */
|
/* I2C Alternate function settings */
|
||||||
#define I2C1_SCL_PAL_MODE 1
|
#define I2C1_SCL_PAL_MODE 1
|
||||||
#define I2C1_SDA_PAL_MODE 1
|
#define I2C1_SDA_PAL_MODE 1
|
||||||
@ -49,60 +46,3 @@
|
|||||||
#define I2C1_TIMINGR_SDADEL 0x0U
|
#define I2C1_TIMINGR_SDADEL 0x0U
|
||||||
#define I2C1_TIMINGR_SCLH 0x0cU
|
#define I2C1_TIMINGR_SCLH 0x0cU
|
||||||
#define I2C1_TIMINGR_SCLL 0x22U
|
#define I2C1_TIMINGR_SCLL 0x22U
|
||||||
|
|
||||||
# define RGB_MATRIX_SLEEP // turn off effects when suspended
|
|
||||||
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
|
||||||
# define RGB_MATRIX_KEYPRESSES
|
|
||||||
# define RGB_MATRIX_LED_PROCESS_LIMIT 4
|
|
||||||
# define RGB_MATRIX_LED_FLUSH_LIMIT 26
|
|
||||||
|
|
||||||
// RGB Matrix Animation modes. Explicitly enabled
|
|
||||||
// For full list of effects, see:
|
|
||||||
// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
|
|
||||||
# define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
|
||||||
# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
|
||||||
# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
|
||||||
# define ENABLE_RGB_MATRIX_BREATHING
|
|
||||||
# define ENABLE_RGB_MATRIX_BAND_SAT
|
|
||||||
# define ENABLE_RGB_MATRIX_BAND_VAL
|
|
||||||
# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
|
||||||
# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
|
||||||
# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
|
||||||
# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
|
||||||
# define ENABLE_RGB_MATRIX_CYCLE_ALL
|
|
||||||
# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
|
||||||
# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
|
||||||
# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
|
||||||
# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
|
|
||||||
# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
|
||||||
# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
|
||||||
# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
|
|
||||||
# define ENABLE_RGB_MATRIX_DUAL_BEACON
|
|
||||||
# define ENABLE_RGB_MATRIX_RAINBOW_BEACON
|
|
||||||
# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
|
||||||
# define ENABLE_RGB_MATRIX_RAINDROPS
|
|
||||||
# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
|
||||||
// # define ENABLE_RGB_MATRIX_HUE_BREATHING
|
|
||||||
// # define ENABLE_RGB_MATRIX_HUE_PENDULUM
|
|
||||||
// # define ENABLE_RGB_MATRIX_HUE_WAVE
|
|
||||||
# define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
|
||||||
# define ENABLE_RGB_MATRIX_PIXEL_FLOW
|
|
||||||
# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
|
||||||
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
|
|
||||||
# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
|
||||||
# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
|
||||||
// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
|
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
|
||||||
# define ENABLE_RGB_MATRIX_SPLASH
|
|
||||||
# define ENABLE_RGB_MATRIX_MULTISPLASH
|
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
|
||||||
|
|
||||||
#endif /* RGB_MATRIX_ENABLE */
|
|
||||||
|
@ -16,9 +16,4 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifdef RGB_MATRIX_ENABLE
|
|
||||||
#define DRIVER_1_LED_TOTAL 58
|
|
||||||
#define DRIVER_2_LED_TOTAL 26
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define CAPS_LED 46
|
#define CAPS_LED 46
|
||||||
|
@ -16,9 +16,4 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifdef RGB_MATRIX_ENABLE
|
|
||||||
#define DRIVER_1_LED_TOTAL 58
|
|
||||||
#define DRIVER_2_LED_TOTAL 10
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define CAPS_LED 30
|
#define CAPS_LED 30
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user