2020 May 30 Breaking Changes Update (#9215)
* Branch point for 2020 May 30 Breaking Change * Migrate `ACTION_LAYER_TOGGLE` to `TG()` (#8954) * Migrate `ACTION_MODS_ONESHOT` to `OSM()` (#8957) * Migrate `ACTION_DEFAULT_LAYER_SET` to `DF()` (#8958) * Migrate `ACTION_LAYER_MODS` to `LM()` (#8959) * Migrate `ACTION_MODS_TAP_KEY` to `MT()` (#8968) * Convert V-USB usbdrv to a submodule (#8321) * Unify Tap Hold functions and documentation (#8348) * Changing board names to prevent confusion (#8412) * Move the Keyboardio Model01 to a keyboardio/ subdir (#8499) * Move spaceman keyboards (#8830) * Migrate miscellaneous `fn_actions` entries (#8977) * Migrate `ACTION_MODS_KEY` to chained mod keycodes (#8979) * Organizing my keyboards (plaid, tartan, ergoinu) (#8537) * Refactor Lily58 to use split_common (#6260) * Refactor zinc to use split_common (#7114) * Add a message if bin/qmk doesn't work (#9000) * Fix conflicting types for 'tfp_printf' (#8269) * Fixed RGB_DISABLE_AFTER_TIMEOUT to be seconds based & small internals cleanup (#6480) * Refactor and updates to TKC1800 code (#8472) * Switch to qmk forks for everything (#9019) * audio refactor: replace deprecated PLAY_NOTE_ARRAY (#8484) * Audio enable corrections (2/3) (#8903) * Split HHKB to ANSI and JP layouts and Add VIA support for each (#8582) * Audio enable corrections (Part 4) (#8974) * Fix typo from PR7114 (#9171) * Augment future branch Changelogs (#8978) * Revert "Branch point for 2020 May 30 Breaking Change"
This commit is contained in:
parent
7b8a013826
commit
fced377ac0
460 changed files with 2624 additions and 12709 deletions
38
keyboards/keyboardio/model01/config.h
Normal file
38
keyboards/keyboardio/model01/config.h
Normal file
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
Copyright 2018 James Laird-Wah
|
||||
|
||||
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
|
||||
|
||||
#include <config_common.h>
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x1209
|
||||
#define PRODUCT_ID 0x2301
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Keyboardio
|
||||
#define PRODUCT Model 01
|
||||
#define DESCRIPTION (QMK)
|
||||
|
||||
/* key matrix size; rows are doubled for split */
|
||||
#define MATRIX_ROWS 8
|
||||
#define MATRIX_COLS 8
|
||||
|
||||
/* The scanners already debounce for us */
|
||||
#define DEBOUNCE 0
|
||||
|
||||
/* RGB matrix constants */
|
||||
#define DRIVER_LED_TOTAL 64
|
87
keyboards/keyboardio/model01/info.json
Normal file
87
keyboards/keyboardio/model01/info.json
Normal file
|
@ -0,0 +1,87 @@
|
|||
{
|
||||
"keyboard_name": "model01",
|
||||
"keyboard_folder": "keyboardio/model01",
|
||||
"url": "https://keyboard.io",
|
||||
"maintainer": "qmk",
|
||||
"width": 18.5,
|
||||
"height": 7.5,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label":"PROG", "x":0, "y":0.4, "h":1.3},
|
||||
{"label":"1", "x":1, "y":0.2, "h":1.5},
|
||||
{"label":"2", "x":2, "y":0.1, "h":1.1},
|
||||
{"label":"3", "x":3, "y":0},
|
||||
{"label":"4", "x":4, "y":0.1},
|
||||
{"label":"5", "x":5, "y":0.3},
|
||||
|
||||
{"label":"6", "x":12.5, "y":0.3},
|
||||
{"label":"7", "x":13.5, "y":0.1},
|
||||
{"label":"8", "x":14.5, "y":0},
|
||||
{"label":"9", "x":15.5, "y":0.1, "h":1.1},
|
||||
{"label":"0", "x":16.5, "y":0.2, "h":1.5},
|
||||
{"label":"NUM", "x":17.5, "y":0.4, "h":1.3},
|
||||
|
||||
{"label":"GRAVE", "x":0, "y":1.7},
|
||||
{"label":"Q", "x":1, "y":1.7},
|
||||
{"label":"W", "x":2, "y":1.2},
|
||||
{"label":"E", "x":3, "y":1},
|
||||
{"label":"R", "x":4, "y":1.1},
|
||||
{"label":"T", "x":5, "y":1.3},
|
||||
{"label":"LED", "x":6, "y":0.6, "h":1.5},
|
||||
|
||||
{"label":"ANY", "x":11.5, "y":0.6, "h":1.5},
|
||||
{"label":"Y", "x":12.5, "y":1.3},
|
||||
{"label":"U", "x":13.5, "y":1.1},
|
||||
{"label":"I", "x":14.5, "y":1},
|
||||
{"label":"O", "x":15.5, "y":1.2},
|
||||
{"label":"P", "x":16.5, "y":1.7},
|
||||
{"label":"EQUAL", "x":17.5, "y":1.7},
|
||||
|
||||
{"label":"PAGEUP", "x":0, "y":2.7},
|
||||
{"label":"A", "x":1, "y":2.7},
|
||||
{"label":"S", "x":2, "y":2.2},
|
||||
{"label":"D", "x":3, "y":2},
|
||||
{"label":"F", "x":4, "y":2.1},
|
||||
{"label":"G", "x":5, "y":2.3},
|
||||
{"label":"TAB", "x":6, "y":2.1, "h":1.3},
|
||||
|
||||
{"label":"ENTER", "x":11.5, "y":2.1, "h":1.3},
|
||||
{"label":"H", "x":12.5, "y":2.3},
|
||||
{"label":"J", "x":13.5, "y":2.1},
|
||||
{"label":"K", "x":14.5, "y":2},
|
||||
{"label":"L", "x":15.5, "y":2.2},
|
||||
{"label":"SEMICOLON", "x":16.5, "y":2.7},
|
||||
{"label":"QUOTE", "x":17.5, "y":2.7},
|
||||
|
||||
{"label":"PAGEDOWN", "x":0, "y":3.7, "h":1.2},
|
||||
{"label":"Z", "x":1, "y":3.7},
|
||||
{"label":"X", "x":2, "y":3.2, "h":1.15},
|
||||
{"label":"C", "x":3, "y":3},
|
||||
{"label":"V", "x":4, "y":3.1},
|
||||
{"label":"B", "x":5, "y":3.3},
|
||||
{"label":"ESC", "x":6, "y":3.4, "h":1.1},
|
||||
|
||||
{"label":"BUTTERFLY", "x":11.5, "y":3.4, "h":1.1},
|
||||
{"label":"N", "x":12.5, "y":3.3},
|
||||
{"label":"M", "x":13.5, "y":3.1},
|
||||
{"label":"COMMA", "x":14.5, "y":3},
|
||||
{"label":"DOT", "x":15.5, "y":3.2, "h":1.15},
|
||||
{"label":"SLASH", "x":16.5, "y":3.7},
|
||||
{"label":"MINS", "x":17.5, "y":3.7, "h":1.2},
|
||||
|
||||
{"label":"LCTL", "x":4.75, "y":4.3},
|
||||
{"label":"RCTL", "x":12.75, "y":4.3},
|
||||
{"label":"BACKSPACE", "x":5.75, "y":4.5},
|
||||
{"label":"SPACE", "x":11.75, "y":4.5},
|
||||
{"label":"LGUI", "x":6.75, "y":4.7},
|
||||
{"label":"RALT", "x":10.75, "y":4.7},
|
||||
{"label":"LSHIFT", "x":7.75, "y":5.1},
|
||||
{"label":"RSHIFT", "x":9.75, "y":5.1},
|
||||
|
||||
{"label":"FN", "x":6.25, "y":6.1, "h":1.4},
|
||||
{"label":"FN", "x":11.25, "y":6.1, "h":1.4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
19
keyboards/keyboardio/model01/keymaps/default/config.h
Normal file
19
keyboards/keyboardio/model01/keymaps/default/config.h
Normal file
|
@ -0,0 +1,19 @@
|
|||
/* Copyright 2018 James Laird-Wah
|
||||
*
|
||||
* 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
|
||||
|
||||
/* place overrides here */
|
124
keyboards/keyboardio/model01/keymaps/default/keymap.c
Normal file
124
keyboards/keyboardio/model01/keymaps/default/keymap.c
Normal file
|
@ -0,0 +1,124 @@
|
|||
/* Copyright 2018 James Laird-Wah
|
||||
*
|
||||
* 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 QMK_KEYBOARD_H
|
||||
|
||||
/* layer constants */
|
||||
enum {
|
||||
DEF = 0,
|
||||
NUM,
|
||||
FUN,
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[DEF] = LAYOUT(
|
||||
RESET , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , TG(NUM),
|
||||
KC_GRV , KC_Q , KC_W , KC_E , KC_R , KC_T , RGB_MOD, _______, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_EQL ,
|
||||
KC_PGUP, KC_A , KC_S , KC_D , KC_F , KC_G , KC_TAB , KC_ENT , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT,
|
||||
KC_PGDN, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_ESC , _______, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_MINS,
|
||||
KC_LCTL, KC_RCTL,
|
||||
KC_BSPC, KC_SPC ,
|
||||
KC_LGUI, KC_RALT,
|
||||
KC_LSFT, KC_RSFT,
|
||||
MO(FUN), MO(FUN)
|
||||
),
|
||||
[NUM] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_P7 , KC_P8 , KC_P9 , KC_PMNS, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4 , KC_P5 , KC_P6 , KC_PPLS, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1 , KC_P2 , KC_P3 , KC_PEQL, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P0 , KC_PDOT, KC_PAST, KC_PSLS, KC_PENT,
|
||||
_______, _______,
|
||||
_______, _______,
|
||||
_______, _______,
|
||||
_______, _______,
|
||||
_______, _______
|
||||
),
|
||||
[FUN] = LAYOUT(
|
||||
_______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 ,
|
||||
KC_TAB , _______, KC_MS_U, _______, KC_BTN3, _______, RGB_TOG, KC_MPRV, KC_MNXT, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_F12 ,
|
||||
KC_HOME, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN1, _______, _______, KC_MPLY, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, _______, _______,
|
||||
KC_END , KC_PSCR, KC_INS , _______, KC_BTN2, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_BSLS, KC_PIPE,
|
||||
_______, _______,
|
||||
KC_DEL , KC_ENT ,
|
||||
_______, _______,
|
||||
_______, _______,
|
||||
_______, _______
|
||||
)
|
||||
};
|
||||
|
||||
/* template for new layouts:
|
||||
LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______,
|
||||
_______, _______,
|
||||
_______, _______,
|
||||
_______, _______,
|
||||
_______, _______
|
||||
)
|
||||
*/
|
||||
|
||||
static void set_numpad_colours(int on, void (*write)(int, uint8_t, uint8_t, uint8_t)) {
|
||||
if (!on) {
|
||||
for (int i=44; i<=60; i++)
|
||||
write(i, 0, 0, 0);
|
||||
write(63, 0, 0, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
/* main number keys */
|
||||
for (int i=44; i<=47; i++)
|
||||
write(i, 255, 0, 0);
|
||||
for (int i=49; i<=54; i++)
|
||||
write(i, 255, 0, 0);
|
||||
|
||||
/* accessory keys */
|
||||
write(48, 128, 128, 0);
|
||||
for (int i=55; i<=59; i++)
|
||||
write(i, 128, 128, 0);
|
||||
|
||||
// enter
|
||||
write(63, 0, 128, 0);
|
||||
|
||||
// num key
|
||||
write(60, 128, 0, 128);
|
||||
}
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
/* the RGB matrix effects will overwrite the numpad indicator.
|
||||
* this handy mechanism allows to override the matrix effects.
|
||||
*/
|
||||
void rgb_matrix_indicators_user(void) {
|
||||
if (layer_state & (1<<NUM)) {
|
||||
set_numpad_colours(1, &rgb_matrix_set_color);
|
||||
}
|
||||
}
|
||||
#else /* no RGB matrix support */
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
if (state & (1<<NUM)) {
|
||||
set_numpad_colours(1, &set_led_to);
|
||||
} else {
|
||||
set_numpad_colours(0, &set_led_to);
|
||||
}
|
||||
|
||||
return state;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* vim: set ts=2 sw=2 et: */
|
3
keyboards/keyboardio/model01/keymaps/default/readme.md
Normal file
3
keyboards/keyboardio/model01/keymaps/default/readme.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
# The default keymap for Keyboardio's Model01
|
||||
|
||||
This implements all of their default keymap, except for mouse warping.
|
4
keyboards/keyboardio/model01/keymaps/dshields/config.h
Normal file
4
keyboards/keyboardio/model01/keymaps/dshields/config.h
Normal file
|
@ -0,0 +1,4 @@
|
|||
#pragma once
|
||||
|
||||
#define RGB_DIGITAL_RAIN_DROPS 18
|
||||
|
28
keyboards/keyboardio/model01/keymaps/dshields/keymap.c
Normal file
28
keyboards/keyboardio/model01/keymaps/dshields/keymap.c
Normal file
|
@ -0,0 +1,28 @@
|
|||
#include QMK_KEYBOARD_H
|
||||
#include "dshields.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[DEF] = LAYOUT(
|
||||
RESET , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______,
|
||||
KC_GRV , KC_Q , KC_W , KC_E , KC_R , KC_T , RGB_TOG, DM_REC1, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_EQL ,
|
||||
KC_PGUP, KC_A , KC_S , KC_D , KC_F , KC_G , KC_TAB , KC_ENT , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT,
|
||||
KC_PGDN, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_ESC , DM_PLY1, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_MINS,
|
||||
OSMLCTL, OSMRCTL,
|
||||
KC_BSPC, KC_SPC ,
|
||||
KC_LGUI, OSMRALT,
|
||||
OSMLSFT, OSMRSFT,
|
||||
OSL_FUN, OSL_FUN
|
||||
),
|
||||
[FUN] = LAYOUT(
|
||||
EEP_RST, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 ,
|
||||
KC_TAB , _______, KC_MS_U, _______, KC_BTN3, _______, RGB_MOD, DM_REC2, _______, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_F12 ,
|
||||
KC_HOME, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN1, _______, RGB_HUI, DM_RSTP, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, _______, _______,
|
||||
KC_END , KC_PSCR, KC_INS , _______, KC_BTN2, _______, RGB_HUD, DM_PLY2, _______, _______, _______, _______, KC_BSLS, KC_PIPE,
|
||||
_______, _______,
|
||||
KC_DEL , KC_ENT ,
|
||||
_______, _______,
|
||||
_______, _______,
|
||||
_______, _______
|
||||
)
|
||||
};
|
||||
|
10
keyboards/keyboardio/model01/keymaps/dshields/readme.md
Normal file
10
keyboards/keyboardio/model01/keymaps/dshields/readme.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
|
||||
About
|
||||
------
|
||||
|
||||
A lightly modded version of the default keymap.
|
||||
|
||||
- One-shot modifiers and layers.
|
||||
- Dynamic macros
|
||||
- No num lock layer
|
||||
|
19
keyboards/keyboardio/model01/keymaps/tw1t611/config.h
Normal file
19
keyboards/keyboardio/model01/keymaps/tw1t611/config.h
Normal file
|
@ -0,0 +1,19 @@
|
|||
/* Copyright 2018 James Laird-Wah
|
||||
*
|
||||
* 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
|
||||
|
||||
/* place overrides here */
|
50
keyboards/keyboardio/model01/keymaps/tw1t611/keymap.c
Normal file
50
keyboards/keyboardio/model01/keymaps/tw1t611/keymap.c
Normal file
|
@ -0,0 +1,50 @@
|
|||
#include QMK_KEYBOARD_H
|
||||
#include "keymap_german.h"
|
||||
|
||||
/* layer constants */
|
||||
enum {
|
||||
DEF = 0,
|
||||
MOD,
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[DEF] = LAYOUT(
|
||||
_______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , DE_SS ,
|
||||
KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , RGB_MOD, KC_MUTE, KC_Y , KC_U , KC_I , KC_O , KC_P , DE_AE ,
|
||||
KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , DE_PARA, _______, KC_H , KC_J , KC_K , KC_L , DE_SLSH, DE_OE ,
|
||||
DE_PIPE, KC_Z , KC_X , KC_C , KC_V , KC_B , _______, _______, KC_N , KC_M , DE_COMM, DE_DOT , DE_MINS, DE_UE ,
|
||||
KC_LALT, KC_LGUI,
|
||||
KC_SPC , KC_ENT ,
|
||||
KC_LSFT, MO(MOD),
|
||||
KC_BSPC, KC_DEL ,
|
||||
KC_LCTL, KC_RCTL
|
||||
),
|
||||
[MOD] = LAYOUT(
|
||||
KC_F12 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 ,
|
||||
DE_CIRC, DE_QUOT, DE_DQOT, DE_LCBR, DE_RCBR, DE_GRV , RGB_TOG, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END , DE_EQL , DE_PERC,
|
||||
DE_TILD, DE_EXLM, DE_DLR , DE_LPRN, DE_RPRN, DE_AMPR, _______, _______, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, DE_QST , DE_ASTR,
|
||||
DE_BSLS, DE_HASH, DE_LESS, DE_LBRC, DE_RBRC, DE_MORE, _______, RESET , DE_AT , DE_EURO, DE_SCLN, DE_COLN, DE_UNDS, DE_PLUS,
|
||||
_______, _______,
|
||||
_______, _______,
|
||||
_______, _______,
|
||||
_______, _______,
|
||||
_______, _______
|
||||
)
|
||||
};
|
||||
|
||||
/* template for new layouts:
|
||||
LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______,
|
||||
_______, _______,
|
||||
_______, _______,
|
||||
_______, _______,
|
||||
_______, _______
|
||||
)
|
||||
*/
|
||||
|
||||
/* vim: set ts=2 sw=2 et: */
|
5
keyboards/keyboardio/model01/keymaps/tw1t611/readme.md
Normal file
5
keyboards/keyboardio/model01/keymaps/tw1t611/readme.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Keymap for Keyboardio's Model01 by tw1t611
|
||||
|
||||
Features:
|
||||
- german keymap
|
||||
- vim optimized
|
132
keyboards/keyboardio/model01/leds.c
Normal file
132
keyboards/keyboardio/model01/leds.c
Normal file
|
@ -0,0 +1,132 @@
|
|||
/* Copyright 2018 James Laird-Wah
|
||||
*
|
||||
* 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 <quantum.h>
|
||||
#include <i2c_master.h>
|
||||
#include <led_tables.h>
|
||||
#include <rgb_matrix.h>
|
||||
#include <string.h>
|
||||
#include "model01.h"
|
||||
|
||||
#define I2C_TIMEOUT 1000
|
||||
|
||||
void set_all_leds_to(uint8_t r, uint8_t g, uint8_t b) {
|
||||
uint8_t buf[] = {
|
||||
TWI_CMD_LED_SET_ALL_TO,
|
||||
b, g, r
|
||||
};
|
||||
i2c_transmit(I2C_ADDR(LEFT), buf, sizeof(buf), I2C_TIMEOUT);
|
||||
i2c_transmit(I2C_ADDR(RIGHT), buf, sizeof(buf), I2C_TIMEOUT);
|
||||
_delay_us(10);
|
||||
}
|
||||
|
||||
void set_led_to(int led, uint8_t r, uint8_t g, uint8_t b) {
|
||||
uint8_t buf[] = {
|
||||
TWI_CMD_LED_SET_ONE_TO,
|
||||
led & 0x1f,
|
||||
b, g, r
|
||||
};
|
||||
int hand = (led >= 32) ? RIGHT : LEFT;
|
||||
i2c_transmit(I2C_ADDR(hand), buf, sizeof(buf), I2C_TIMEOUT);
|
||||
_delay_us(10);
|
||||
}
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
|
||||
__attribute__ ((weak))
|
||||
led_config_t g_led_config = { {
|
||||
{ 27, 26, 20, 19, 12, 11, 4, 3 },
|
||||
{ 28, 25, 21, 18, 13, 10, 5, 2 },
|
||||
{ 29, 24, 22, 17, 14, 9, 6, 1 },
|
||||
{ 30, 31, 23, 16, 15, 8, 7, 0 },
|
||||
{ 60, 59, 52, 51, 44, 43, 37, 36 },
|
||||
{ 61, 58, 53, 50, 45, 42, 38, 35 },
|
||||
{ 62, 57, 54, 49, 46, 41, 39, 34 },
|
||||
{ 63, 56, 55, 48, 47, 40, 32, 33 }
|
||||
}, {
|
||||
{ 3, 35 }, { 0, 26 }, { 0, 17 }, { 0, 6 }, { 14, 5 }, { 15, 16 }, { 16, 25 }, { 17, 34 },
|
||||
{ 31, 29 }, { 31, 19 }, { 30, 11 }, { 30, 1 }, { 45, 0 }, { 45, 8 }, { 46, 17 }, { 46, 27 },
|
||||
{ 60, 27 }, { 60, 18 }, { 60, 9 }, { 60, 0 }, { 74, 2 }, { 74, 11 }, { 75, 20 }, { 74, 28 },
|
||||
{ 89, 30 }, { 89, 19 }, { 89, 7 }, { 70, 38 }, { 82, 41 }, { 93, 45 }, { 104, 50 }, { 74, 64 },
|
||||
{ 149, 64 }, { 119, 50 }, { 130, 45 }, { 141, 41 }, { 153, 38 }, { 134, 7 }, { 134, 19 }, { 134, 30 },
|
||||
{ 149, 28 }, { 148, 20 }, { 149, 11 }, { 149, 2 }, { 163, 0 }, { 163, 9 }, { 163, 18 }, { 163, 27 },
|
||||
{ 177, 27 }, { 177, 17 }, { 178, 8 }, { 178, 0 }, { 193, 1 }, { 193, 11 }, { 192, 19 }, { 192, 29 },
|
||||
{ 206, 34 }, { 207, 25 }, { 208, 16 }, { 209, 5 }, { 224, 6 }, { 223, 17 }, { 223, 26 }, { 220, 35 }
|
||||
}, {
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4
|
||||
} };
|
||||
|
||||
|
||||
static struct {
|
||||
uint8_t b;
|
||||
uint8_t g;
|
||||
uint8_t r;
|
||||
} __attribute__((packed)) led_state[64];
|
||||
|
||||
static void set_color(int index, uint8_t r, uint8_t g, uint8_t b) {
|
||||
led_state[index].r = r;
|
||||
led_state[index].g = g;
|
||||
led_state[index].b = b;
|
||||
}
|
||||
|
||||
static void set_color_all(uint8_t r, uint8_t g, uint8_t b) {
|
||||
for (int i=0; i<DRIVER_LED_TOTAL; i++)
|
||||
set_color(i, r, g, b);
|
||||
}
|
||||
|
||||
static void init(void) {
|
||||
// Enable high current pathway to LEDs - this does violate the USB spec though! (1.6 amps...)
|
||||
DDRE |= _BV(6);
|
||||
PORTE &= ~_BV(6);
|
||||
|
||||
// Overcurrent check input
|
||||
DDRB &= ~_BV(4);
|
||||
PORTB &= ~_BV(4);
|
||||
}
|
||||
|
||||
static void flush(void) {
|
||||
uint8_t *bank_data = (uint8_t*)&led_state[0];
|
||||
uint8_t command[1 + 8*3];
|
||||
for (int hand=0; hand<2; hand++) {
|
||||
int addr = I2C_ADDR(hand);
|
||||
|
||||
for (int bank=0; bank<4; bank++) {
|
||||
command[0] = TWI_CMD_LED_BASE + bank;
|
||||
memcpy(&command[1], bank_data, 8*3);
|
||||
i2c_transmit(addr, command, sizeof(command), I2C_TIMEOUT);
|
||||
_delay_us(100);
|
||||
|
||||
bank_data += 8*3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const rgb_matrix_driver_t rgb_matrix_driver = {
|
||||
.init = init,
|
||||
.flush = flush,
|
||||
.set_color = set_color,
|
||||
.set_color_all = set_color_all
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
/* vim: set ts=2 sw=2 et: */
|
22
keyboards/keyboardio/model01/leds.h
Normal file
22
keyboards/keyboardio/model01/leds.h
Normal file
|
@ -0,0 +1,22 @@
|
|||
/* Copyright 2018 James Laird-Wah
|
||||
*
|
||||
* 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
|
||||
|
||||
#include <quantum.h>
|
||||
#include <rgb_matrix.h>
|
||||
|
||||
void set_all_leds_to(uint8_t r, uint8_t g, uint8_t b);
|
||||
void set_led_to(int led, uint8_t r, uint8_t g, uint8_t b);
|
94
keyboards/keyboardio/model01/matrix.c
Normal file
94
keyboards/keyboardio/model01/matrix.c
Normal file
|
@ -0,0 +1,94 @@
|
|||
/* Copyright 2018 James Laird-Wah
|
||||
*
|
||||
* 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 <quantum.h>
|
||||
#include <i2c_master.h>
|
||||
#include <string.h>
|
||||
#include "model01.h"
|
||||
|
||||
/* If no key events have occurred, the scanners will time out on reads.
|
||||
* So we don't want to be too permissive here. */
|
||||
#define I2C_TIMEOUT 10
|
||||
|
||||
static matrix_row_t rows[MATRIX_ROWS];
|
||||
#define ROWS_PER_HAND (MATRIX_ROWS / 2)
|
||||
|
||||
inline
|
||||
uint8_t matrix_rows(void) {
|
||||
return MATRIX_ROWS;
|
||||
}
|
||||
|
||||
inline
|
||||
uint8_t matrix_cols(void) {
|
||||
return MATRIX_COLS;
|
||||
}
|
||||
|
||||
static int i2c_read_hand(int hand) {
|
||||
uint8_t buf[5];
|
||||
i2c_status_t ret = i2c_receive(I2C_ADDR(hand), buf, sizeof(buf), I2C_TIMEOUT);
|
||||
if (ret != I2C_STATUS_SUCCESS)
|
||||
return 1;
|
||||
|
||||
if (buf[0] != TWI_REPLY_KEYDATA)
|
||||
return 2;
|
||||
|
||||
int start_row = hand ? ROWS_PER_HAND : 0;
|
||||
uint8_t *out = &rows[start_row];
|
||||
memcpy(out, &buf[1], 4);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int i2c_set_keyscan_interval(int hand, int delay) {
|
||||
uint8_t buf[] = {TWI_CMD_KEYSCAN_INTERVAL, delay};
|
||||
i2c_status_t ret = i2c_transmit(I2C_ADDR(hand), buf, sizeof(buf), I2C_TIMEOUT);
|
||||
return ret;
|
||||
}
|
||||
|
||||
void matrix_init(void) {
|
||||
/* Ensure scanner power is on - else right hand will not work */
|
||||
DDRC |= _BV(7);
|
||||
PORTC |= _BV(7);
|
||||
|
||||
i2c_init();
|
||||
i2c_set_keyscan_interval(LEFT, 2);
|
||||
i2c_set_keyscan_interval(RIGHT, 2);
|
||||
memset(rows, 0, sizeof(rows));
|
||||
|
||||
matrix_init_quantum();
|
||||
}
|
||||
|
||||
uint8_t matrix_scan(void) {
|
||||
uint8_t ret = 0;
|
||||
ret |= i2c_read_hand(LEFT);
|
||||
ret |= i2c_read_hand(RIGHT);
|
||||
matrix_scan_quantum();
|
||||
return ret;
|
||||
}
|
||||
|
||||
inline
|
||||
matrix_row_t matrix_get_row(uint8_t row) {
|
||||
return rows[row];
|
||||
}
|
||||
|
||||
void matrix_print(void) {
|
||||
print("\nr/c 0123456789ABCDEF\n");
|
||||
for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
|
||||
phex(row); print(": ");
|
||||
pbin_reverse16(matrix_get_row(row));
|
||||
print("\n");
|
||||
}
|
||||
}
|
||||
|
||||
/* vim: set ts=2 sw=2 et: */
|
38
keyboards/keyboardio/model01/model01.c
Normal file
38
keyboards/keyboardio/model01/model01.c
Normal file
|
@ -0,0 +1,38 @@
|
|||
/* Copyright 2018 James Laird-Wah
|
||||
*
|
||||
* 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 <quantum.h>
|
||||
#include <i2c_master.h>
|
||||
#include <string.h>
|
||||
#include "model01.h"
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
/* the bootloader can leave LEDs on, so */
|
||||
set_all_leds_to(0, 0, 0);
|
||||
matrix_init_user();
|
||||
}
|
||||
|
||||
void matrix_scan_kb(void) {
|
||||
matrix_scan_user();
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_scan_user(void) {
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_init_user(void) {
|
||||
}
|
||||
|
50
keyboards/keyboardio/model01/model01.h
Normal file
50
keyboards/keyboardio/model01/model01.h
Normal file
|
@ -0,0 +1,50 @@
|
|||
/* Copyright 2018 James Laird-Wah
|
||||
*
|
||||
* 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
|
||||
|
||||
#include <quantum.h>
|
||||
|
||||
#define LAYOUT( \
|
||||
L07, L06, L05, L04, L03, L02, R05, R04, R03, R02, R01, R00, \
|
||||
L17, L16, L15, L14, L13, L12, L01, R06, R15, R14, R13, R12, R11, R10, \
|
||||
L27, L26, L25, L24, L23, L22, L11, R16, R25, R24, R23, R22, R21, R20, \
|
||||
L37, L36, L35, L34, L33, L32, L21, R26, R35, R34, R33, R32, R31, R30, \
|
||||
L00, R07, \
|
||||
L10, R17, \
|
||||
L20, R27, \
|
||||
L30, R37, \
|
||||
L31, R36 \
|
||||
) { \
|
||||
{L00, L01, L02, L03, L04, L05, L06, L07}, \
|
||||
{L10, L11, L12, L13, L14, L15, L16, L17}, \
|
||||
{L20, L21, L22, L23, L24, L25, L26, L27}, \
|
||||
{L30, L31, L32, L33, L34, L35, L36, L37}, \
|
||||
{R00, R01, R02, R03, R04, R05, R06, R07}, \
|
||||
{R10, R11, R12, R13, R14, R15, R16, R17}, \
|
||||
{R20, R21, R22, R23, R24, R25, R26, R27}, \
|
||||
{R30, R31, R32, R33, R34, R35, R36, R37} \
|
||||
}
|
||||
|
||||
#include "wire-protocol-constants.h"
|
||||
#define I2C_ADDR_LEFT (0x58 << 1)
|
||||
#define I2C_ADDR_RIGHT (I2C_ADDR_LEFT + 6)
|
||||
#define I2C_ADDR(hand) ((hand) ? I2C_ADDR_RIGHT : I2C_ADDR_LEFT)
|
||||
#define LEFT 0
|
||||
#define RIGHT 1
|
||||
|
||||
#include "leds.h"
|
||||
|
||||
/* vim: set ts=2 sw=2 et: */
|
37
keyboards/keyboardio/model01/readme.md
Normal file
37
keyboards/keyboardio/model01/readme.md
Normal file
|
@ -0,0 +1,37 @@
|
|||
# Keyboardio Model 01
|
||||
|
||||
A split keyboard.
|
||||
|
||||
* Keyboard Maintainer: QMK Community
|
||||
* Hardware Supported: Keyboardio Model 01
|
||||
* Hardware Availability: [Keyboardio](https://shop.keyboard.io)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make keyboardio/model01:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
|
||||
Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Programming the Keyboard
|
||||
|
||||
To program the keyboard, if you have avrdude installed:
|
||||
|
||||
make keyboardio/model01:default:flash
|
||||
|
||||
When prompted to reset your keyboard, press the prog key at upper left. If the
|
||||
keyboard does not reset, you can hold the prog key while plugging it into your
|
||||
computer. The prog key will light up red in programming mode.
|
||||
|
||||
## Features
|
||||
|
||||
This implements the standard keymap, including mousekeys.
|
||||
|
||||
It doesn't do cursor warping - QMK does not support absolute mouse positioning.
|
||||
|
||||
LED support is limited. Gamma compensation and the high speed batch update
|
||||
functions supported by the hardware are not implemented. The high current power
|
||||
switch is also not implemented, so if you try and turn all the LEDs on at full
|
||||
brightness, something may conk out.
|
||||
|
||||
Hotplugging the two halves works but is not extensively tested.
|
35
keyboards/keyboardio/model01/rules.mk
Normal file
35
keyboards/keyboardio/model01/rules.mk
Normal file
|
@ -0,0 +1,35 @@
|
|||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
# Teensy halfkay
|
||||
# Pro Micro caterina
|
||||
# Atmel DFU atmel-dfu
|
||||
# LUFA DFU lufa-dfu
|
||||
# QMK DFU qmk-dfu
|
||||
# ATmega32A bootloadHID
|
||||
# ATmega328P USBasp
|
||||
BOOTLOADER = caterina
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = yes # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = no # USB Nkey Rollover
|
||||
MIDI_ENABLE = no # MIDI support
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
|
||||
CUSTOM_MATRIX = yes
|
||||
QUANTUM_LIB_SRC += i2c_master.c
|
||||
SRC += leds.c \
|
||||
matrix.c
|
||||
|
||||
# You can set RGB_MATRIX_ENABLE = no in your rules.mk to disable this and save the Flash
|
||||
RGB_MATRIX_ENABLE = custom # Enable RGB matrix effects.
|
53
keyboards/keyboardio/model01/wire-protocol-constants.h
Normal file
53
keyboards/keyboardio/model01/wire-protocol-constants.h
Normal file
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
* This file is taken from the KeyboardioScanner module:
|
||||
* https://github.com/keyboardio/KeyboardioScanner/blob/master/wire-protocol-constants.h
|
||||
*
|
||||
* Copyright (C) 2015-2018 Keyboard.io, Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#define TWI_CMD_NONE 0x00
|
||||
#define TWI_CMD_VERSION 0x01
|
||||
#define TWI_CMD_KEYSCAN_INTERVAL 0x02
|
||||
#define TWI_CMD_LED_SET_ALL_TO 0x03
|
||||
#define TWI_CMD_LED_SET_ONE_TO 0x04
|
||||
#define TWI_CMD_COLS_USE_PULLUPS 0x05
|
||||
#define TWI_CMD_LED_SPI_FREQUENCY 0x06
|
||||
|
||||
#define LED_SPI_FREQUENCY_4MHZ 0x07
|
||||
#define LED_SPI_FREQUENCY_2MHZ 0x06
|
||||
#define LED_SPI_FREQUENCY_1MHZ 0x05
|
||||
#define LED_SPI_FREQUENCY_512KHZ 0x04
|
||||
#define LED_SPI_FREQUENCY_256KHZ 0x03
|
||||
#define LED_SPI_FREQUENCY_128KHZ 0x02
|
||||
#define LED_SPI_FREQUENCY_64KHZ 0x01
|
||||
#define LED_SPI_OFF 0x00
|
||||
|
||||
|
||||
// 512KHZ seems to be the sweet spot in early testing
|
||||
// so make it the default
|
||||
#define LED_SPI_FREQUENCY_DEFAULT LED_SPI_FREQUENCY_512KHZ
|
||||
|
||||
|
||||
#define TWI_CMD_LED_BASE 0x80
|
||||
|
||||
#define TWI_REPLY_NONE 0x00
|
||||
#define TWI_REPLY_KEYDATA 0x01
|
Loading…
Add table
Add a link
Reference in a new issue