Merge branch 'develop' of github.com:qmk/qmk_firmware into develop
This commit is contained in:
@@ -795,6 +795,7 @@ These are defined in [`color.h`](https://github.com/qmk/qmk_firmware/blob/master
|
||||
#define RGB_MATRIX_DISABLE_KEYCODES // disables control of rgb matrix by keycodes (must use code functions to control the feature)
|
||||
#define RGB_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right.
|
||||
// If RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR
|
||||
#define RGB_TRIGGER_ON_KEYDOWN // Triggers RGB keypress events on key down. This makes RGB control feel more responsive. This may cause RGB to not function properly on some boards
|
||||
```
|
||||
|
||||
## EEPROM storage :id=eeprom-storage
|
||||
|
||||
@@ -138,6 +138,24 @@ void ap2_led_reset_foreground_color() {
|
||||
ap2_led_mask_set_mono(color);
|
||||
}
|
||||
|
||||
void ap2_led_sticky_set_key(uint8_t row, uint8_t col, ap2_led_t color) {
|
||||
uint8_t payload[] = {row, col, color.p.blue, color.p.green, color.p.red, color.p.alpha};
|
||||
proto_tx(CMD_LED_STICKY_SET_KEY, payload, sizeof(payload), 1);
|
||||
}
|
||||
|
||||
void ap2_led_unset_sticky_key(uint8_t row, uint8_t col) {
|
||||
uint8_t payload[] = {row, col};
|
||||
proto_tx(CMD_LED_STICKY_UNSET_KEY, payload, sizeof(payload), 1);
|
||||
}
|
||||
|
||||
void ap2_led_unset_sticky_row(uint8_t row) {
|
||||
uint8_t payload[] = {row};
|
||||
proto_tx(CMD_LED_STICKY_UNSET_ROW, payload, sizeof(payload), 1);
|
||||
}
|
||||
void ap2_led_unset_sticky_all(void) {
|
||||
proto_tx(CMD_LED_STICKY_UNSET_ALL, NULL, 0, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Currently keypresses are unified with other messages, still with single 1
|
||||
* byte payload. Transfer is normally fast enough for that to not be a problem -
|
||||
|
||||
@@ -86,6 +86,11 @@ void ap2_led_blink(uint8_t row, uint8_t col, ap2_led_t color, uint8_t count, uin
|
||||
void ap2_led_set_foreground_color(uint8_t red, uint8_t green, uint8_t blue);
|
||||
void ap2_led_reset_foreground_color(void);
|
||||
|
||||
void ap2_led_sticky_set_key(uint8_t row, uint8_t col, ap2_led_t color);
|
||||
void ap2_led_unset_sticky_key(uint8_t row, uint8_t col);
|
||||
void ap2_led_unset_sticky_row(uint8_t row);
|
||||
void ap2_led_unset_sticky_all(void);
|
||||
|
||||
typedef struct {
|
||||
uint8_t amount_of_profiles;
|
||||
uint8_t current_profile;
|
||||
|
||||
@@ -96,7 +96,7 @@ enum anne_pro_layers {
|
||||
*
|
||||
*/
|
||||
[FN2] = LAYOUT_60_ansi( /* FN2 */
|
||||
_______, KC_AP2_BT1, KC_AP2_BT2, KC_AP2_BT3, KC_AP2_BT4, _______, _______, _______, KC_AP_LED_OFF, KC_AP_LED_ON, _______, _______, _______, _______,
|
||||
_______, KC_AP2_BT1, KC_AP2_BT2, KC_AP2_BT3, KC_AP2_BT4, _______, _______, _______, _______, KC_AP_RGB_MOD, KC_AP_RGB_TOG, KC_AP_RGB_VAD, KC_AP_RGB_VAI, _______,
|
||||
MO(FN2), _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_HOME, KC_END, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_DEL, _______,
|
||||
@@ -109,9 +109,11 @@ enum anne_pro_layers {
|
||||
bool led_update_user(led_t leds) {
|
||||
if (leds.caps_lock) {
|
||||
// Set the leds to red
|
||||
ap2_led_set_foreground_color(0xFF, 0x00, 0x00);
|
||||
const ap2_led_t color = {.p.red = 0xff, .p.green = 0x00, .p.blue = 0x00, .p.alpha = 0xff};
|
||||
ap2_led_mask_set_mono(color);
|
||||
} else {
|
||||
ap2_led_reset_foreground_color();
|
||||
const ap2_led_t color = {.p.red = 0x00, .p.green = 0x00, .p.blue = 0x00, .p.alpha = 0x00};
|
||||
ap2_led_mask_set_mono(color);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
@@ -96,7 +96,7 @@ enum anne_pro_layers {
|
||||
*
|
||||
*/
|
||||
[FN2] = LAYOUT_60_ansi( /* FN2 */
|
||||
_______, KC_AP2_BT1, KC_AP2_BT2, KC_AP2_BT3, KC_AP2_BT4, _______, _______, _______, _______, KC_AP_LED_TOG, KC_AP_LED_NEXT_INTENSITY, KC_AP_LED_PREV_PROFILE, KC_AP_LED_NEXT_PROFILE, _______,
|
||||
_______, KC_AP2_BT1, KC_AP2_BT2, KC_AP2_BT3, KC_AP2_BT4, _______, _______, _______, _______, KC_AP_RGB_MOD, KC_AP_RGB_TOG, KC_AP_RGB_VAD, KC_AP_RGB_VAI, _______,
|
||||
MO(FN2), _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_HOME, KC_END, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_DEL, _______,
|
||||
@@ -134,16 +134,12 @@ bool led_update_user(led_t leds) {
|
||||
if (leds.caps_lock) {
|
||||
// Set the caps-lock to red
|
||||
const ap2_led_t color = {.p.red = 0xff, .p.green = 0x00, .p.blue = 0x00, .p.alpha = 0xff};
|
||||
|
||||
ap2_led_mask_set_key(2, 0, color);
|
||||
ap2_led_sticky_set_key(2, 0, color);
|
||||
/* NOTE: Instead of colouring the capslock only, you can change the whole
|
||||
keyboard with ap2_led_set_foreground_color */
|
||||
keyboard with ap2_led_mask_set_mono */
|
||||
} else {
|
||||
// Reset the capslock if there is no layer active
|
||||
if (!layer_state_is(FN1) && !layer_state_is(FN2)) {
|
||||
const ap2_led_t color = {.p.red = 0xff, .p.green = 0x00, .p.blue = 0x00, .p.alpha = 0x00};
|
||||
ap2_led_mask_set_key(2, 0, color);
|
||||
}
|
||||
ap2_led_unset_sticky_key(2, 0);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
@@ -55,6 +55,14 @@ enum {
|
||||
/* Number of profiles, current profile, on/off state,
|
||||
reactive flag, brightness, errors */
|
||||
CMD_LED_STATUS = 0x41,
|
||||
|
||||
/* Set sticky key, meaning the key will light up even when LEDs are turned off */
|
||||
CMD_LED_STICKY_SET_KEY = 0x50,
|
||||
CMD_LED_STICKY_SET_ROW = 0x51,
|
||||
CMD_LED_STICKY_SET_MONO = 0x52,
|
||||
CMD_LED_STICKY_UNSET_KEY = 0x53,
|
||||
CMD_LED_STICKY_UNSET_ROW = 0x54,
|
||||
CMD_LED_STICKY_UNSET_ALL = 0x55,
|
||||
};
|
||||
|
||||
/* 1 ROW * 14 COLS * 4B (RGBX) = 56 + header prefix. */
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
*/
|
||||
|
||||
#include "charybdis.h"
|
||||
#include "transactions.h"
|
||||
#include <string.h>
|
||||
|
||||
#ifdef CONSOLE_ENABLE
|
||||
# include "print.h"
|
||||
@@ -160,10 +162,8 @@ void charybdis_set_pointer_dragscroll_enabled(bool enable) {
|
||||
maybe_update_pointing_device_cpi(&g_charybdis_config);
|
||||
}
|
||||
|
||||
void pointing_device_init_kb(void) { maybe_update_pointing_device_cpi(&g_charybdis_config); }
|
||||
|
||||
# ifndef CONSTRAIN_HID
|
||||
# define CONSTRAIN_HID(value) ((value) < -127 ? -127 : ((value) > 127 ? 127 : (value)))
|
||||
# define CONSTRAIN_HID(value) ((value) < XY_REPORT_MIN ? XY_REPORT_MIN : ((value) > XY_REPORT_MAX ? XY_REPORT_MAX : (value)))
|
||||
# endif // !CONSTRAIN_HID
|
||||
|
||||
/**
|
||||
@@ -340,4 +340,49 @@ void matrix_init_kb(void) {
|
||||
read_charybdis_config_from_eeprom(&g_charybdis_config);
|
||||
matrix_init_user();
|
||||
}
|
||||
|
||||
# ifdef CHARYBDIS_CONFIG_SYNC
|
||||
void charybdis_config_sync_handler(uint8_t initiator2target_buffer_size, const void* initiator2target_buffer, uint8_t target2initiator_buffer_size, void* target2initiator_buffer) {
|
||||
if (initiator2target_buffer_size == sizeof(g_charybdis_config)) {
|
||||
memcpy(&g_charybdis_config, initiator2target_buffer, sizeof(g_charybdis_config));
|
||||
}
|
||||
}
|
||||
# endif
|
||||
|
||||
void keyboard_post_init_kb(void) {
|
||||
maybe_update_pointing_device_cpi(&g_charybdis_config);
|
||||
# ifdef CHARYBDIS_CONFIG_SYNC
|
||||
transaction_register_rpc(RPC_ID_KB_CONFIG_SYNC, charybdis_config_sync_handler);
|
||||
# endif
|
||||
keyboard_post_init_user();
|
||||
}
|
||||
|
||||
# ifdef CHARYBDIS_CONFIG_SYNC
|
||||
void housekeeping_task_kb(void) {
|
||||
if (is_keyboard_master()) {
|
||||
// Keep track of the last state, so that we can tell if we need to propagate to slave
|
||||
static charybdis_config_t last_charybdis_config = {0};
|
||||
static uint32_t last_sync = 0;
|
||||
bool needs_sync = false;
|
||||
|
||||
// Check if the state values are different
|
||||
if (memcmp(&g_charybdis_config, &last_charybdis_config, sizeof(g_charybdis_config))) {
|
||||
needs_sync = true;
|
||||
memcpy(&last_charybdis_config, &g_charybdis_config, sizeof(g_charybdis_config));
|
||||
}
|
||||
// Send to slave every 500ms regardless of state change
|
||||
if (timer_elapsed32(last_sync) > 500) {
|
||||
needs_sync = true;
|
||||
}
|
||||
|
||||
// Perform the sync if requested
|
||||
if (needs_sync) {
|
||||
if (transaction_rpc_send(RPC_ID_KB_CONFIG_SYNC, sizeof(g_charybdis_config), &g_charybdis_config)) {
|
||||
last_sync = timer_read32();
|
||||
}
|
||||
}
|
||||
}
|
||||
// no need for user function, is called already
|
||||
}
|
||||
# endif // CHARYBDIS_CONFIG_SYNC
|
||||
#endif // POINTING_DEVICE_ENABLE
|
||||
|
||||
@@ -20,6 +20,11 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
// Enable syncing of charybdis config
|
||||
#ifdef CHARYBDIS_CONFIG_SYNC
|
||||
# define SPLIT_TRANSACTION_IDS_KB RPC_ID_KB_CONFIG_SYNC
|
||||
#endif
|
||||
|
||||
/* Mouse config. */
|
||||
|
||||
#ifndef MOUSEKEY_MOVE_DELTA
|
||||
|
||||
@@ -176,3 +176,23 @@ To disable the custom keycodes, and reduce binary size, simply add a definition
|
||||
```c
|
||||
#define NO_CHARYBDIS_KEYCODES
|
||||
```
|
||||
|
||||
### Configuration Syncing
|
||||
|
||||
If you want/need to enable syncing of the charybdis config, such as to read the sniping or drag scroll modes on the other half (such as for displaying the status via rgb matrix, or added on screens, or what not), you can enabled this. To do so, add this to your `config.h`:
|
||||
|
||||
```c
|
||||
#define CHARYBDIS_CONFIG_SYNC
|
||||
```
|
||||
|
||||
Note that you will need to reflash both sides when enabling this.
|
||||
|
||||
### Enable Large Mouse Reports
|
||||
|
||||
By default, the X and Y motion for the pointing device/mouse reports is -127 to 127. You can definitely hit the limit for that with the sensors. You can enable support for -32767 to 32767 by adding this to your `config.h`:
|
||||
|
||||
```c
|
||||
#define MOUSE_EXTENDED_REPORT
|
||||
```
|
||||
|
||||
Note that you will need to reflash both sides when enabling this.
|
||||
|
||||
@@ -53,3 +53,7 @@
|
||||
#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue
|
||||
#define RGBLIGHT_SAT_STEP 12 // units to step when in/decresing saturation
|
||||
#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness)
|
||||
|
||||
/* define rotary encoder pins */
|
||||
#define ENCODERS_PAD_A {B0}
|
||||
#define ENCODERS_PAD_B {D1}
|
||||
|
||||
@@ -15,3 +15,15 @@
|
||||
*/
|
||||
|
||||
#include "quark_squared.h"
|
||||
|
||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||
if (!encoder_update_user(index, clockwise)) { return false; }
|
||||
if (index == 0) {
|
||||
if (clockwise) {
|
||||
tap_code_delay(KC_VOLD, 10);
|
||||
} else {
|
||||
tap_code_delay(KC_VOLU, 10);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
UNICODE_ENABLE = yes # Unicode
|
||||
|
||||
ENCODER_ENABLE = yes # Enable Rotary Encoders
|
||||
# Disable unsupported hardware
|
||||
AUDIO_SUPPORTED = no
|
||||
BACKLIGHT_SUPPORTED = no
|
||||
|
||||
126
keyboards/crkbd/keymaps/bermeo/config.h
Normal file
126
keyboards/crkbd/keymaps/bermeo/config.h
Normal file
@@ -0,0 +1,126 @@
|
||||
/*
|
||||
This is the c configuration file for the keymap
|
||||
|
||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
||||
Copyright 2015 Jack Humbert
|
||||
|
||||
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
|
||||
|
||||
//#define USE_MATRIX_I2C
|
||||
|
||||
/* Select hand configuration */
|
||||
|
||||
#define MASTER_LEFT
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
// #define TAPPING_FORCE_HOLD
|
||||
#define TAPPING_TERM 150
|
||||
// #define RETRO_TAPPING
|
||||
// #define IGNORE_MOD_TAP_INTERRUPT
|
||||
// #define PERMISSIVE_HOLD
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
# undef RGBLED_NUM
|
||||
# define RGBLED_NUM 27
|
||||
#define RGBLIGHT_EFFECT_BREATHING
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||
#define RGBLIGHT_EFFECT_SNAKE
|
||||
#define RGBLIGHT_EFFECT_KNIGHT
|
||||
#define RGBLIGHT_EFFECT_CHRISTMAS
|
||||
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
#define RGBLIGHT_EFFECT_RGB_TEST
|
||||
#define RGBLIGHT_EFFECT_ALTERNATING
|
||||
#define RGBLIGHT_EFFECT_TWINKLE
|
||||
# define RGBLIGHT_SLEEP
|
||||
# define RGBLIGHT_SPLIT
|
||||
# define RGBLIGHT_LIMIT_VAL 120
|
||||
# define RGBLIGHT_HUE_STEP 6
|
||||
# define RGBLIGHT_SAT_STEP 6
|
||||
# define RGBLIGHT_VAL_STEP 6
|
||||
# define RGBLIGHT_SLEEP
|
||||
# define RGBLIGHT_TIMEOUT 75000
|
||||
#endif
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
# define SPLIT_LAYER_STATE_ENABLE
|
||||
# define SPLIT_LED_STATE_ENABLE
|
||||
# define SPLIT_MODS_ENABLE
|
||||
# define SPLIT_WPM_ENABLE
|
||||
# define SPLIT_OLED_ENABLE
|
||||
# define OLED_FONT_H "keyboards/crkbd/keymaps/soundmonster/glcdfont.c"
|
||||
# define OLED_DISABLE_TIMEOUT
|
||||
# define OLED_TIMEOUT 150000
|
||||
# define OLED_BRIGHTNESS 255
|
||||
# define OLED_FADE_OUT
|
||||
# define OLED_FADE_OUT_INTERVAL 15
|
||||
#endif
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
|
||||
// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
|
||||
// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
|
||||
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
|
||||
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
# define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
|
||||
# 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 150 out of 255. Higher may cause the controller to crash.
|
||||
# define RGB_MATRIX_HUE_STEP 8
|
||||
# define RGB_MATRIX_SAT_STEP 8
|
||||
# define RGB_MATRIX_VAL_STEP 8
|
||||
# define RGB_MATRIX_SPD_STEP 10
|
||||
|
||||
/* Disable the animations you don't want/need. You will need to disable a good number of these *
|
||||
* because they take up a lot of space. Disable until you can successfully compile your firmware. */
|
||||
# define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
||||
# undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
||||
# undef ENABLE_RGB_MATRIX_BREATHING
|
||||
# undef ENABLE_RGB_MATRIX_BAND_SAT
|
||||
# undef ENABLE_RGB_MATRIX_BAND_VAL
|
||||
# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
||||
# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
||||
# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
||||
# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
||||
# undef ENABLE_RGB_MATRIX_CYCLE_ALL
|
||||
# undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
||||
# undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
||||
# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
|
||||
# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
||||
# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
||||
# undef ENABLE_RGB_MATRIX_DUAL_BEACON
|
||||
# undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
||||
# undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
|
||||
# undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
|
||||
# undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
||||
# undef ENABLE_RGB_MATRIX_RAINDROPS
|
||||
# undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
||||
# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
||||
# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
||||
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
||||
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
||||
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
||||
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
||||
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
||||
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
||||
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
||||
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
||||
# undef ENABLE_RGB_MATRIX_SPLASH
|
||||
# define ENABLE_RGB_MATRIX_MULTISPLASH
|
||||
# undef ENABLE_RGB_MATRIX_SOLID_SPLASH
|
||||
# undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
||||
#endif
|
||||
232
keyboards/crkbd/keymaps/bermeo/glcdfont.c
Normal file
232
keyboards/crkbd/keymaps/bermeo/glcdfont.c
Normal file
@@ -0,0 +1,232 @@
|
||||
#include "progmem.h"
|
||||
|
||||
// Corne 8x6 font with QMK Firmware Logo
|
||||
// Online editor: https://helixfonteditor.netlify.com/
|
||||
// See also: https://github.com/soundmonster/glcdfont_converter
|
||||
|
||||
const unsigned char font[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
|
||||
0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
|
||||
0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
|
||||
0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
|
||||
0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
|
||||
0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
|
||||
0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
|
||||
0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
|
||||
0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
|
||||
0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
|
||||
0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
|
||||
0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
|
||||
0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
|
||||
0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
|
||||
0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
|
||||
0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
|
||||
0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
|
||||
0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
|
||||
0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
|
||||
0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
|
||||
0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
|
||||
0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
|
||||
0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
|
||||
0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
|
||||
0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
|
||||
0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
|
||||
0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
|
||||
0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
|
||||
0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
|
||||
0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
|
||||
0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
|
||||
0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
|
||||
0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
|
||||
0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
|
||||
0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
|
||||
0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
|
||||
0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
|
||||
0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
|
||||
0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
|
||||
0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
|
||||
0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
|
||||
0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
|
||||
0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
|
||||
0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
|
||||
0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
|
||||
0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
|
||||
0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
|
||||
0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
|
||||
0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
|
||||
0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
|
||||
0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
|
||||
0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
|
||||
0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
|
||||
0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
|
||||
0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
|
||||
0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
|
||||
0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
|
||||
0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
|
||||
0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
|
||||
0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
|
||||
0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
|
||||
0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
|
||||
0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
|
||||
0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
|
||||
0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
|
||||
0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
|
||||
0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
|
||||
0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
|
||||
0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
|
||||
0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
|
||||
0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
|
||||
0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
|
||||
0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
|
||||
0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
|
||||
0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
|
||||
0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
|
||||
0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
|
||||
0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
|
||||
0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
|
||||
0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
|
||||
0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
|
||||
0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
|
||||
0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
|
||||
0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
|
||||
0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
|
||||
0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
|
||||
0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
|
||||
0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
|
||||
0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
|
||||
0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
|
||||
0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
|
||||
0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
|
||||
0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
|
||||
0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
|
||||
0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
|
||||
0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
|
||||
0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
|
||||
0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
|
||||
0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
|
||||
0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
|
||||
0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
|
||||
0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
|
||||
0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
|
||||
0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
|
||||
0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
|
||||
0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
|
||||
0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
|
||||
0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
|
||||
0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
|
||||
0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
|
||||
0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
|
||||
0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
|
||||
0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
|
||||
0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
|
||||
0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
|
||||
0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
|
||||
0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
|
||||
0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
|
||||
0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
|
||||
0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
|
||||
0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
|
||||
0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
|
||||
0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
|
||||
0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
|
||||
0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8,
|
||||
0xF8, 0x18, 0x00, 0xC0, 0xF0, 0xFC,
|
||||
0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0x7E, 0x00, 0x00, 0x00,
|
||||
0x00, 0xF8, 0x04, 0x22, 0x52, 0xE2,
|
||||
0x42, 0x42, 0x42, 0xE2, 0x52, 0x22,
|
||||
0x22, 0x22, 0x42, 0x82, 0x02, 0x02,
|
||||
0x22, 0x22, 0x02, 0x04, 0xF8, 0x00,
|
||||
0x00, 0xF8, 0x04, 0x02, 0x02, 0x82,
|
||||
0x42, 0x22, 0x42, 0x82, 0x02, 0x02,
|
||||
0x02, 0x82, 0x42, 0x22, 0x12, 0x22,
|
||||
0x42, 0x82, 0x02, 0x04, 0xF8, 0x00,
|
||||
0x00, 0xF8, 0xFC, 0xDE, 0xAE, 0x1E,
|
||||
0xBE, 0xBE, 0xBE, 0x1E, 0xAE, 0xDE,
|
||||
0xDE, 0xDE, 0xBE, 0x7E, 0xFE, 0xFE,
|
||||
0xDE, 0xDE, 0xFE, 0xFC, 0xF8, 0x00,
|
||||
0x00, 0xF8, 0xFC, 0xFE, 0xFE, 0x7E,
|
||||
0xBE, 0xDE, 0xBE, 0x7E, 0xFE, 0xFE,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x80, 0x80, 0x40, 0x40, 0x20, 0x20,
|
||||
0x10, 0x10, 0x08, 0x08, 0x10, 0x10,
|
||||
0x20, 0x20, 0x40, 0x40, 0x80, 0x80,
|
||||
0x80, 0x80, 0xC0, 0xC0, 0xE0, 0xE0,
|
||||
0xF0, 0xF0, 0xF8, 0xF8, 0xF0, 0xF0,
|
||||
0xE0, 0xE0, 0xC0, 0xC0, 0x80, 0x80,
|
||||
0x80, 0x80, 0x40, 0x40, 0x20, 0x20,
|
||||
0x10, 0x10, 0x08, 0x08, 0x10, 0x10,
|
||||
0x20, 0x20, 0x40, 0x40, 0x80, 0x80,
|
||||
0x80, 0x80, 0x40, 0xC0, 0x60, 0xA0,
|
||||
0x50, 0xB0, 0x58, 0xA8, 0x50, 0xB0,
|
||||
0x60, 0xA0, 0x40, 0xC0, 0x80, 0x80,
|
||||
0x00, 0xF8, 0xFC, 0xFE, 0xFF, 0xE0,
|
||||
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F,
|
||||
0x07, 0x01, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x1F, 0x20, 0x44, 0x4A, 0x47,
|
||||
0x42, 0x42, 0x42, 0x47, 0x4A, 0x44,
|
||||
0x40, 0x40, 0x40, 0x40, 0x41, 0x42,
|
||||
0x44, 0x44, 0x40, 0x20, 0x1F, 0x00,
|
||||
0x00, 0x1F, 0x20, 0x40, 0x41, 0x40,
|
||||
0x40, 0x40, 0x40, 0x40, 0x41, 0x40,
|
||||
0x41, 0x41, 0x4F, 0x48, 0x48, 0x48,
|
||||
0x4F, 0x41, 0x41, 0x20, 0x1F, 0x00,
|
||||
0x00, 0x1F, 0x3F, 0x7B, 0x75, 0x78,
|
||||
0x7D, 0x7D, 0x7D, 0x78, 0x75, 0x7B,
|
||||
0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x7D,
|
||||
0x7B, 0x7B, 0x7F, 0x3F, 0x1F, 0x00,
|
||||
0x00, 0x1F, 0x3F, 0x7F, 0x7E, 0x7F,
|
||||
0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x7F,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x88, 0x88, 0x5D, 0x5D, 0x3E, 0x3E,
|
||||
0x7C, 0x7C, 0xF8, 0xF8, 0x7C, 0x7C,
|
||||
0x3E, 0x3E, 0x5D, 0x5D, 0x88, 0x88,
|
||||
0x88, 0x88, 0x55, 0x55, 0x23, 0x23,
|
||||
0x47, 0x47, 0x8F, 0x8F, 0x47, 0x47,
|
||||
0x23, 0x23, 0x55, 0x55, 0x88, 0x88,
|
||||
0x88, 0x88, 0xD5, 0xD5, 0xE2, 0xE2,
|
||||
0xC4, 0xC4, 0x88, 0x88, 0xC4, 0xC4,
|
||||
0xE2, 0xE2, 0xD5, 0xD5, 0x88, 0x88,
|
||||
0x88, 0x88, 0x5D, 0xD5, 0x6B, 0xB6,
|
||||
0x6D, 0xD6, 0xAD, 0xDA, 0x6D, 0xD6,
|
||||
0x6B, 0xB6, 0x5D, 0xD5, 0x88, 0x88,
|
||||
0x00, 0x03, 0x0F, 0x1F, 0x3F, 0x3F,
|
||||
0x3F, 0x3F, 0x1F, 0x1F, 0x3F, 0x3F,
|
||||
0x7F, 0x7F, 0x7F, 0x3F, 0x3F, 0x1F,
|
||||
0x3F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7C,
|
||||
0x78, 0x78, 0x38, 0x1C, 0x0F, 0x00,
|
||||
0x04, 0xF8, 0x00, 0x00, 0xF8, 0x04,
|
||||
0x20, 0x1F, 0x00, 0x00, 0x1F, 0x20,
|
||||
0xFC, 0xF8, 0x00, 0x00, 0xF8, 0x04,
|
||||
0x3F, 0x1F, 0x00, 0x00, 0x1F, 0x20,
|
||||
0x04, 0xF8, 0x00, 0x00, 0xF8, 0xFC,
|
||||
0x20, 0x1F, 0x00, 0x00, 0x1F, 0x3F,
|
||||
0xFC, 0xF8, 0x00, 0x00, 0xF8, 0xFC,
|
||||
0x3F, 0x1F, 0x00, 0x00, 0x1F, 0x3F,
|
||||
0xFE, 0x7E, 0xBE, 0xDE, 0xEE, 0xDE,
|
||||
0xBE, 0x7E, 0xFE, 0xFC, 0xF8, 0x00,
|
||||
0x7E, 0x7E, 0x70, 0x77, 0x77, 0x77,
|
||||
0x70, 0x7E, 0x7E, 0x3F, 0x1F, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x01, 0x02, 0x02,
|
||||
0x04, 0x04, 0x08, 0x08, 0x04, 0x04,
|
||||
0x02, 0x02, 0x01, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x01, 0x02, 0x02,
|
||||
0x04, 0x04, 0x08, 0x08, 0x04, 0x04,
|
||||
0x02, 0x02, 0x01, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x01, 0x03, 0x03,
|
||||
0x07, 0x07, 0x0F, 0x0F, 0x07, 0x07,
|
||||
0x03, 0x03, 0x01, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x01, 0x03, 0x02,
|
||||
0x05, 0x06, 0x0D, 0x0A, 0x05, 0x06,
|
||||
0x03, 0x02, 0x01, 0x01, 0x00, 0x00
|
||||
};
|
||||
596
keyboards/crkbd/keymaps/bermeo/keymap.c
Normal file
596
keyboards/crkbd/keymaps/bermeo/keymap.c
Normal file
@@ -0,0 +1,596 @@
|
||||
// Copyright 2022 Guilherme Bermêo (bermeo.dev)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
enum layers {
|
||||
_QWERTY,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_NUMP,
|
||||
};
|
||||
|
||||
uint8_t mod_state;
|
||||
|
||||
bool isBarking = false;
|
||||
bool isJumping = false;
|
||||
bool showedJump = true;
|
||||
bool isSneaking = false;
|
||||
|
||||
enum custom_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
LOWER,
|
||||
RAISE,
|
||||
ADJUST,
|
||||
CEDILHA, // ç direct key
|
||||
AO, // ã direct key
|
||||
ASPAS, // " direct key
|
||||
|
||||
};
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {[_QWERTY] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
LCTL_T(KC_F3), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_GRAVE,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
LALT_T(KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
LSFT_T(KC_LEFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RGUI_T(KC_RIGHT),
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
LGUI_T(KC_DOWN), MO(1), KC_SPC, KC_BSPC, MO(2), RSFT_T(KC_UP)
|
||||
// `--------------------------' `--------------------------'
|
||||
),
|
||||
|
||||
[_LOWER] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
LCTL_T(KC_F5), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ESCAPE,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
LCTL(LGUI(KC_SPC)), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_ENT, KC_LBRC, KC_RBRC, KC_BSLS, KC_QUOT, KC_COLON, KC_ENT,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
LALT(KC_LEFT), KC_F1, KC_F2, KC_C, KC_V, KC_BSPC, KC_MINS, KC_EQL, KC_LT, KC_GT, KC_QUESTION, LALT(KC_RIGHT),
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
LGUI_T(KC_PAGE_DOWN), _______, KC_SPC, LALT(KC_BSPC), TG(3), RSFT_T(KC_PAGE_UP)
|
||||
// `--------------------------' `--------------------------'
|
||||
),
|
||||
|
||||
[_RAISE] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
LCTL_T(KC_F4), KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TILDE,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
LALT_T(KC_TAB), AO, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LCBR, KC_RCBR, KC_PIPE, ASPAS, KC_COLON, KC_ENT,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
LALT(KC_LEFT), XXXXXXX, XXXXXXX, CEDILHA, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LT, KC_GT, KC_QUESTION, LALT(KC_RIGHT),
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
LGUI_T(KC_END), TG(3), KC_SPC, KC_DEL, _______, RSFT_T(KC_HOME)
|
||||
// `--------------------------' `--------------------------'
|
||||
),
|
||||
|
||||
[_NUMP] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
RGB_TOG, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PAST, KC_PSLS,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
_______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_ENT,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
_______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, KC_PDOT, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_NO,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
TG(3), TG(3), TG(3), KC_BSPC, TG(3), KC_P0
|
||||
// `--------------------------' `--------------------------'
|
||||
)};
|
||||
|
||||
//Per key lights
|
||||
void rgb_matrix_indicators_user(void) {
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case _QWERTY:
|
||||
isSneaking = false;
|
||||
mod_state = get_mods();
|
||||
for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
|
||||
if (mod_state & MOD_MASK_SHIFT) {
|
||||
isBarking = true;
|
||||
rgb_matrix_set_color(52, 255, 255, 255);
|
||||
rgb_matrix_set_color(i, 255, 150, 0);
|
||||
} else if (mod_state & MOD_MASK_GUI || mod_state & MOD_MASK_CTRL) {
|
||||
isBarking = true;
|
||||
rgb_matrix_set_color(15, 255, 0, 0);
|
||||
switch (i) {
|
||||
case 0 ... 5: // underglow left side
|
||||
case 9: // cmd + T white (new tab)
|
||||
case 11: // cmd + F white (find)
|
||||
case 18: // cmd + W white (close tab)
|
||||
case 19: // cmd + S white (save)
|
||||
case 21: // cmd + Z white (undo)
|
||||
case 22: // cmd + A white (select all)
|
||||
case 27 ... 32: // underglow right side
|
||||
case 43: // cmd + K white (comment for desktop remote)
|
||||
case 48: // cmd + / white (comment line)
|
||||
rgb_matrix_set_color(i, 255, 255, 255); // white
|
||||
break;
|
||||
case 6: // space bar off
|
||||
case 24 ... 26: // left column off
|
||||
case 33: // backspace off
|
||||
case 41: // shift off
|
||||
case 51 ... 53: // right column off
|
||||
rgb_matrix_set_color(i, 0, 0, 0); //off
|
||||
break;
|
||||
}
|
||||
if (mod_state & MOD_MASK_GUI) {
|
||||
rgb_matrix_set_color(12, 255, 255, 255); // white V key
|
||||
rgb_matrix_set_color(15, 255, 255, 255); // white C key
|
||||
rgb_matrix_set_color(20, 255, 255, 255); // white X key
|
||||
} else {
|
||||
}
|
||||
} else if (mod_state & MOD_MASK_ALT) {
|
||||
isBarking = true;
|
||||
} else {
|
||||
isBarking = false;
|
||||
rgb_matrix_set_color(14, 0, 0, 0); // command key off
|
||||
}
|
||||
}
|
||||
rgb_matrix_set_color(13, 23, 181, 255); // cyan layer
|
||||
rgb_matrix_set_color(40, 255, 33, 0); // orange layer
|
||||
break;
|
||||
|
||||
case _RAISE:
|
||||
isSneaking = true;
|
||||
for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
|
||||
switch (i) {
|
||||
case 7: // B key off
|
||||
case 8: // G key off
|
||||
case 11: // F key off
|
||||
case 12: // V key off
|
||||
case 16: // D key off
|
||||
case 19 ... 21: // S, X, Z keys off
|
||||
case 25: // tab key off
|
||||
case 26: // shift key off
|
||||
case 52 ... 53: // right column off
|
||||
rgb_matrix_set_color(i, 0, 0, 0); // off
|
||||
break;
|
||||
case 15: // Ç key
|
||||
case 22: // Ã key
|
||||
case 24: // Launch (F4)
|
||||
case 40: // Active layer
|
||||
rgb_matrix_set_color(i, 255, 255, 255); // white
|
||||
break;
|
||||
case 13: // active layer
|
||||
rgb_matrix_set_color(i, 0, 255, 0); // green
|
||||
break;
|
||||
case 42: // , shifted key
|
||||
case 47 ... 49: // . / ; shifted keys
|
||||
rgb_matrix_set_color(i, 255, 214, 0); // yellow
|
||||
break;
|
||||
default:
|
||||
rgb_matrix_set_color(i, 255, 33, 0); // orange
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case _LOWER:
|
||||
isSneaking = true;
|
||||
for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
|
||||
switch (i) {
|
||||
case 7: // Delete key
|
||||
case 51: // ESC key
|
||||
rgb_matrix_set_color(i, 255, 0, 0); // red
|
||||
break;
|
||||
case 12: // V key off
|
||||
case 15: // C key off
|
||||
case 20: // X key off
|
||||
case 21: // Z key off
|
||||
|
||||
case 26: // shift key off
|
||||
case 52 ... 53: // right column off
|
||||
rgb_matrix_set_color(i, 0, 0, 0); // off
|
||||
break;
|
||||
case 11: // Right arrow key
|
||||
case 13: // Active layer
|
||||
case 16: // Up arrow key
|
||||
case 19: // Down arrow key
|
||||
case 22: // Left arrow key
|
||||
case 24: // Print
|
||||
rgb_matrix_set_color(i, 255, 255, 255); // white
|
||||
break;
|
||||
case 8: // Enter key
|
||||
case 40: // Activate Numpad
|
||||
rgb_matrix_set_color(i, 0, 255, 0); // green
|
||||
break;
|
||||
case 42: // , shifted key
|
||||
case 47 ... 49: // . / ; shifted keys
|
||||
case 25: // opens emoji dialog (on macOS)
|
||||
rgb_matrix_set_color(i, 255, 214, 0); // yellow
|
||||
break;
|
||||
default:
|
||||
rgb_matrix_set_color(i, 23, 181, 255); // cyan
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case _NUMP:
|
||||
isSneaking = true;
|
||||
for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
|
||||
switch (i) {
|
||||
case 12: // RGB speed-
|
||||
case 15: // RGB brigthness-
|
||||
case 20: // RGB saturation-
|
||||
case 21: // RGB hue-
|
||||
case 49: // Numpad -
|
||||
case 51: // Numpad /
|
||||
rgb_matrix_set_color(i, 255, 0, 0); // red
|
||||
break;
|
||||
case 8 ... 10: // G T R off
|
||||
case 17: // E off
|
||||
case 18: // W off
|
||||
case 23: // Q off
|
||||
case 25: // Tab off
|
||||
case 26: // LShift off
|
||||
case 33: // Backspace off
|
||||
case 35: // H off
|
||||
case 36: // Y off
|
||||
case 53: // RShift off
|
||||
rgb_matrix_set_color(i, 0, 0, 0); // off
|
||||
break;
|
||||
case 6: // Space bar off
|
||||
case 13: // Return to default layer
|
||||
case 16: // RGB brigthness+
|
||||
case 24: // RGB toggle
|
||||
case 37 ... 47: // Numpad numbers
|
||||
case 52: // Enter key
|
||||
rgb_matrix_set_color(i, 255, 255, 255); // white
|
||||
break;
|
||||
case 11: // RGB speed+
|
||||
case 19: // RGB saturation+
|
||||
case 22: // RGB hue+
|
||||
case 48: // Numpad +
|
||||
rgb_matrix_set_color(i, 0, 255, 0); // green
|
||||
break;
|
||||
case 34: // . numpad key
|
||||
rgb_matrix_set_color(i, 255, 214, 0); // yellow
|
||||
break;
|
||||
}
|
||||
rgb_matrix_set_color(13, 23, 181, 255); // Activate cyan layer
|
||||
rgb_matrix_set_color(40, 255, 33, 0); // Activate orange layer
|
||||
rgb_matrix_set_color(50, 0, 33, 255); // Numpad *
|
||||
rgb_matrix_set_color(14, 0, 255, 0); // Green layer active
|
||||
}
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||
return OLED_ROTATION_270;
|
||||
}
|
||||
|
||||
/* KEYBOARD PET START */
|
||||
/* settings */
|
||||
# define MIN_WALK_SPEED 10
|
||||
# define MIN_RUN_SPEED 60
|
||||
/* advanced settings */
|
||||
# define ANIM_FRAME_DURATION 100 // how long each frame lasts in ms
|
||||
# define ANIM_SIZE 96 // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024
|
||||
/* timers */
|
||||
uint32_t anim_timer = 0;
|
||||
uint32_t anim_sleep = 0;
|
||||
/* current frame */
|
||||
uint8_t current_frame = 0;
|
||||
/* status variables */
|
||||
int current_wpm = 0;
|
||||
// led_t led_usb_state;
|
||||
/* logic */
|
||||
static void render_luna(int LUNA_X, int LUNA_Y) {
|
||||
/* Sit */
|
||||
static const char PROGMEM sit[2][ANIM_SIZE] = {/* 'sit1', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x68, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
},
|
||||
/* 'sit2', 32x22px */
|
||||
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x90, 0x08, 0x18, 0x60, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0e, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
|
||||
|
||||
/* Walk */
|
||||
static const char PROGMEM walk[2][ANIM_SIZE] = {/* 'walk1', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x90, 0x90, 0x90, 0xa0, 0xc0, 0x80, 0x80, 0x80, 0x70, 0x08, 0x14, 0x08, 0x90, 0x10, 0x10, 0x08, 0xa4, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0xea, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x03, 0x06, 0x18, 0x20, 0x20, 0x3c, 0x0c, 0x12, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
},
|
||||
/* 'walk2', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x20, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x28, 0x10, 0x20, 0x20, 0x20, 0x10, 0x48, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0xf8, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x30, 0xd5, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x02, 0x1c, 0x14, 0x08, 0x10, 0x20, 0x2c, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
}};
|
||||
|
||||
/* Run */
|
||||
static const char PROGMEM run[2][ANIM_SIZE] = {/* 'run1', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x08, 0xc8, 0xb0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xc4, 0xa4, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x58, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x09, 0x04, 0x04, 0x04, 0x04, 0x02, 0x03, 0x02, 0x01, 0x01, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
},
|
||||
|
||||
/* 'run2', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x78, 0x28, 0x08, 0x10, 0x20, 0x30, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0xb0, 0x50, 0x55, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x1e, 0x20, 0x20, 0x18, 0x0c, 0x14, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
}};
|
||||
|
||||
// /* Bark */
|
||||
static const char PROGMEM bark[2][ANIM_SIZE] = {/* 'bark1', 32x22px */
|
||||
{
|
||||
0x00, 0xc0, 0x20, 0x10, 0xd0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
},
|
||||
|
||||
/* 'bark2', 32x22px */
|
||||
{
|
||||
0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x2c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x20, 0x4a, 0x09, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
}};
|
||||
|
||||
/* Sneak */
|
||||
static const char PROGMEM sneak[2][ANIM_SIZE] = {/* 'sneak1', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x80, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x21, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x04, 0x04, 0x04, 0x03, 0x01, 0x00, 0x00, 0x09, 0x01, 0x80, 0x80, 0xab, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x02, 0x06, 0x18, 0x20, 0x20, 0x38, 0x08, 0x10, 0x18, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
|
||||
},
|
||||
|
||||
/* 'sneak2', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xa0, 0x20, 0x40, 0x80, 0xc0, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x40, 0x40, 0x55, 0x82, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x04, 0x18, 0x10, 0x08, 0x10, 0x20, 0x28, 0x34, 0x06, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
}};
|
||||
|
||||
/* animation */
|
||||
void animate_luna(void) {
|
||||
/* jump */
|
||||
if (isJumping || !showedJump) {
|
||||
/* clear */
|
||||
oled_set_cursor(LUNA_X, LUNA_Y + 2);
|
||||
oled_write(" ", false);
|
||||
oled_set_cursor(LUNA_X, LUNA_Y - 1);
|
||||
showedJump = true;
|
||||
} else {
|
||||
/* clear */
|
||||
oled_set_cursor(LUNA_X, LUNA_Y - 1);
|
||||
oled_write(" ", false);
|
||||
oled_set_cursor(LUNA_X, LUNA_Y);
|
||||
}
|
||||
/* switch frame */
|
||||
current_frame = (current_frame + 1) % 2;
|
||||
/* draw */
|
||||
if (isBarking) {
|
||||
oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE);
|
||||
|
||||
} else if (isSneaking) {
|
||||
oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE);
|
||||
|
||||
} else if (current_wpm <= MIN_WALK_SPEED) {
|
||||
oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE);
|
||||
|
||||
} else if (current_wpm <= MIN_RUN_SPEED) {
|
||||
oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE);
|
||||
|
||||
} else {
|
||||
oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE);
|
||||
}
|
||||
}
|
||||
/* animation timer */
|
||||
if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
|
||||
anim_timer = timer_read32();
|
||||
animate_luna();
|
||||
}
|
||||
}
|
||||
|
||||
void render_mod_status_gui_alt(uint8_t modifiers) {
|
||||
static const char PROGMEM gui_off_1[] = {0x85, 0x86, 0};
|
||||
static const char PROGMEM gui_off_2[] = {0xa5, 0xa6, 0};
|
||||
static const char PROGMEM gui_on_1[] = {0x8d, 0x8e, 0};
|
||||
static const char PROGMEM gui_on_2[] = {0xad, 0xae, 0};
|
||||
static const char PROGMEM alt_off_1[] = {0x87, 0x88, 0};
|
||||
static const char PROGMEM alt_off_2[] = {0xa7, 0xa8, 0};
|
||||
static const char PROGMEM alt_on_1[] = {0x8f, 0x90, 0};
|
||||
static const char PROGMEM alt_on_2[] = {0xaf, 0xb0, 0};
|
||||
|
||||
// fillers between the modifier icons bleed into the icon frames
|
||||
static const char PROGMEM off_off_1[] = {0xc5, 0};
|
||||
static const char PROGMEM off_off_2[] = {0xc6, 0};
|
||||
static const char PROGMEM on_off_1[] = {0xc7, 0};
|
||||
static const char PROGMEM on_off_2[] = {0xc8, 0};
|
||||
static const char PROGMEM off_on_1[] = {0xc9, 0};
|
||||
static const char PROGMEM off_on_2[] = {0xca, 0};
|
||||
static const char PROGMEM on_on_1[] = {0xcb, 0};
|
||||
static const char PROGMEM on_on_2[] = {0xcc, 0};
|
||||
|
||||
if (modifiers & MOD_MASK_GUI) {
|
||||
oled_write_P(gui_on_1, false);
|
||||
} else {
|
||||
oled_write_P(gui_off_1, false);
|
||||
}
|
||||
if ((modifiers & MOD_MASK_GUI) && (modifiers & MOD_MASK_ALT)) {
|
||||
oled_write_P(on_on_1, false);
|
||||
} else if (modifiers & MOD_MASK_GUI) {
|
||||
oled_write_P(on_off_1, false);
|
||||
} else if (modifiers & MOD_MASK_ALT) {
|
||||
oled_write_P(off_on_1, false);
|
||||
} else {
|
||||
oled_write_P(off_off_1, false);
|
||||
}
|
||||
if (modifiers & MOD_MASK_ALT) {
|
||||
oled_write_P(alt_on_1, false);
|
||||
} else {
|
||||
oled_write_P(alt_off_1, false);
|
||||
}
|
||||
if (modifiers & MOD_MASK_GUI) {
|
||||
oled_write_P(gui_on_2, false);
|
||||
} else {
|
||||
oled_write_P(gui_off_2, false);
|
||||
}
|
||||
if (modifiers & MOD_MASK_GUI & MOD_MASK_ALT) {
|
||||
oled_write_P(on_on_2, false);
|
||||
} else if (modifiers & MOD_MASK_GUI) {
|
||||
oled_write_P(on_off_2, false);
|
||||
} else if (modifiers & MOD_MASK_ALT) {
|
||||
oled_write_P(off_on_2, false);
|
||||
} else {
|
||||
oled_write_P(off_off_2, false);
|
||||
}
|
||||
if (modifiers & MOD_MASK_ALT) {
|
||||
oled_write_P(alt_on_2, false);
|
||||
} else {
|
||||
oled_write_P(alt_off_2, false);
|
||||
}
|
||||
}
|
||||
|
||||
void render_mod_status_ctrl_shift(uint8_t modifiers) {
|
||||
static const char PROGMEM ctrl_off_1[] = {0x89, 0x8a, 0};
|
||||
static const char PROGMEM ctrl_off_2[] = {0xa9, 0xaa, 0};
|
||||
static const char PROGMEM ctrl_on_1[] = {0x91, 0x92, 0};
|
||||
static const char PROGMEM ctrl_on_2[] = {0xb1, 0xb2, 0};
|
||||
static const char PROGMEM shift_off_1[] = {0x8b, 0x8c, 0};
|
||||
static const char PROGMEM shift_off_2[] = {0xab, 0xac, 0};
|
||||
static const char PROGMEM shift_on_1[] = {0xcd, 0xce, 0};
|
||||
static const char PROGMEM shift_on_2[] = {0xcf, 0xd0, 0};
|
||||
|
||||
// fillers between the modifier icons bleed into the icon frames
|
||||
static const char PROGMEM off_off_1[] = {0xc5, 0};
|
||||
static const char PROGMEM off_off_2[] = {0xc6, 0};
|
||||
static const char PROGMEM on_off_1[] = {0xc7, 0};
|
||||
static const char PROGMEM on_off_2[] = {0xc8, 0};
|
||||
static const char PROGMEM off_on_1[] = {0xc9, 0};
|
||||
static const char PROGMEM off_on_2[] = {0xca, 0};
|
||||
static const char PROGMEM on_on_1[] = {0xcb, 0};
|
||||
static const char PROGMEM on_on_2[] = {0xcc, 0};
|
||||
|
||||
if (modifiers & MOD_MASK_CTRL) {
|
||||
oled_write_P(ctrl_on_1, false);
|
||||
} else {
|
||||
oled_write_P(ctrl_off_1, false);
|
||||
}
|
||||
if ((modifiers & MOD_MASK_CTRL) && (modifiers & MOD_MASK_SHIFT)) {
|
||||
oled_write_P(on_on_1, false);
|
||||
} else if (modifiers & MOD_MASK_CTRL) {
|
||||
oled_write_P(on_off_1, false);
|
||||
} else if (modifiers & MOD_MASK_SHIFT) {
|
||||
oled_write_P(off_on_1, false);
|
||||
} else {
|
||||
oled_write_P(off_off_1, false);
|
||||
}
|
||||
if (modifiers & MOD_MASK_SHIFT) {
|
||||
oled_write_P(shift_on_1, false);
|
||||
} else {
|
||||
oled_write_P(shift_off_1, false);
|
||||
}
|
||||
if (modifiers & MOD_MASK_CTRL) {
|
||||
oled_write_P(ctrl_on_2, false);
|
||||
} else {
|
||||
oled_write_P(ctrl_off_2, false);
|
||||
}
|
||||
if (modifiers & MOD_MASK_CTRL & MOD_MASK_SHIFT) {
|
||||
oled_write_P(on_on_2, false);
|
||||
} else if (modifiers & MOD_MASK_CTRL) {
|
||||
oled_write_P(on_off_2, false);
|
||||
} else if (modifiers & MOD_MASK_SHIFT) {
|
||||
oled_write_P(off_on_2, false);
|
||||
} else {
|
||||
oled_write_P(off_off_2, false);
|
||||
}
|
||||
if (modifiers & MOD_MASK_SHIFT) {
|
||||
oled_write_P(shift_on_2, false);
|
||||
} else {
|
||||
oled_write_P(shift_off_2, false);
|
||||
}
|
||||
}
|
||||
|
||||
void render_layer_state(void) {
|
||||
static const char PROGMEM default_layer[] = {0x20, 0x94, 0x95, 0x96, 0x20, 0x20, 0xb4, 0xb5, 0xb6, 0x20, 0x20, 0xd4, 0xd5, 0xd6, 0x20, 0};
|
||||
static const char PROGMEM raise_layer[] = {0x20, 0x97, 0x98, 0x99, 0x20, 0x20, 0xb7, 0xb8, 0xb9, 0x20, 0x20, 0xd7, 0xd8, 0xd9, 0x20, 0};
|
||||
static const char PROGMEM lower_layer[] = {0x20, 0x9a, 0x9b, 0x9c, 0x20, 0x20, 0xba, 0xbb, 0xbc, 0x20, 0x20, 0xda, 0xdb, 0xdc, 0x20, 0};
|
||||
static const char PROGMEM nump_layer[] = {0x20, 0x9d, 0x9e, 0x9f, 0x20, 0x20, 0xbd, 0xbe, 0xbf, 0x20, 0x20, 0xdd, 0xde, 0xdf, 0x20, 0};
|
||||
if (layer_state_is(_NUMP)) {
|
||||
oled_write_P(nump_layer, false);
|
||||
} else if (layer_state_is(_LOWER)) {
|
||||
oled_write_P(lower_layer, false);
|
||||
} else if (layer_state_is(_RAISE)) {
|
||||
oled_write_P(raise_layer, false);
|
||||
} else {
|
||||
oled_write_P(default_layer, false);
|
||||
}
|
||||
}
|
||||
|
||||
// renders on oled
|
||||
bool oled_task_user(void) {
|
||||
current_wpm = get_current_wpm();
|
||||
// led_usb_state = host_keyboard_led_state();
|
||||
|
||||
if (is_keyboard_left()) {
|
||||
oled_set_cursor(0, 2);
|
||||
if (isSneaking) {
|
||||
render_layer_state();
|
||||
} else {
|
||||
for (size_t i = 0; i < 7; i++) {
|
||||
oled_write(" ", false);
|
||||
}
|
||||
}
|
||||
render_luna(0, 12);
|
||||
} else {
|
||||
oled_set_cursor(0, 6);
|
||||
render_layer_state();
|
||||
oled_set_cursor(0, 11);
|
||||
if (mod_state) {
|
||||
render_mod_status_gui_alt(get_mods());
|
||||
render_mod_status_ctrl_shift(get_mods());
|
||||
} else {
|
||||
for (size_t i = 0; i < 5; i++) {
|
||||
oled_write(" ", false);
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
||||
switch (keycode) {
|
||||
// ç key
|
||||
case CEDILHA:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_QUOT);
|
||||
unregister_code(KC_QUOT);
|
||||
register_code(KC_C);
|
||||
unregister_code(KC_C);
|
||||
}
|
||||
break;
|
||||
return false;
|
||||
|
||||
// ã key
|
||||
case AO:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_LSFT);
|
||||
register_code(KC_GRV);
|
||||
unregister_code(KC_LSFT);
|
||||
unregister_code(KC_GRV);
|
||||
register_code(KC_A);
|
||||
unregister_code(KC_A);
|
||||
}
|
||||
break;
|
||||
return false;
|
||||
|
||||
// direct " key
|
||||
case ASPAS:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_LSFT);
|
||||
register_code(KC_QUOT);
|
||||
register_code(KC_SPC);
|
||||
unregister_code(KC_SPC);
|
||||
unregister_code(KC_QUOT);
|
||||
unregister_code(KC_LSFT);
|
||||
}
|
||||
break;
|
||||
return false;
|
||||
|
||||
// Luna jumping on space
|
||||
case KC_SPC:
|
||||
if (record->event.pressed) {
|
||||
isJumping = true;
|
||||
showedJump = false;
|
||||
} else {
|
||||
isJumping = false;
|
||||
}
|
||||
break;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
158
keyboards/crkbd/keymaps/bermeo/readme.md
Normal file
158
keyboards/crkbd/keymaps/bermeo/readme.md
Normal file
@@ -0,0 +1,158 @@
|
||||
# Bermeo Layout for Corne
|
||||
|
||||
## Features
|
||||
|
||||
### *Corne for neo-latin creatives*
|
||||
|
||||
* Usable with left hand only (Figma, Adobe, Spline, etc) to combo with mouse.
|
||||
* Delete and enter keys on the left side.
|
||||
* Z and X on left side with lower layer used to control the monitor's brigtness.
|
||||
* Arrow keys on left hand (vim logic)
|
||||
* Accentuations used in Romance (neo-latin) languages like Spanish, Portuguese, French and Italian - ` ~ ^ ' -.
|
||||
|
||||
#### Direct ç and ã keys
|
||||
|
||||
The termination "tion" (eg. action) in portuguese is "ção" (eg. ação). This layout is optimized to use the less keys possible to write words with this termination.
|
||||
|
||||
Compared to the `crkbd:default` layout the difference to output ção would be half of the interations:
|
||||
|
||||
| crkbd:bermeo | <sub>`MO(2)`</sub>, `KC_C`, `KC_A`, <sup>`MO(2)`</sup> |
|
||||
|:--|:--|
|
||||
| crkbd:default | `KC_QUOT`, `KC_C`, <sub>`MO(2)`</sub>, <sub>`KC_SFT`</sub>, `KC_GRV`, <sup>`MO(2)`</sup>, <sup>`KC_SFT`</sup>, `KC_A` |
|
||||
|
||||
[ <sub>`hold key`</sub> , <sup>`release key`</sup> ]
|
||||
|
||||
### Modern OLED Support
|
||||
|
||||
* Non-intrusive OLED layer indicator.
|
||||
* Non-intrusive OLED modifier indicators ⌘ ⇧ ⌥ ⌃.
|
||||
* Fully animated Luna on left side.
|
||||
|
||||
### Full per-key RGB Matrix support
|
||||
|
||||
With the index of every key mapped in the table below to be used with `rgb_matrix_set_color(index, r, g, b)`;.
|
||||
|
||||
#### Indexes of the keys
|
||||
|
||||
|||||||||||||||
|
||||
|:--:|:--:|:--:|:--:|:--:|:--:|--|--|:--:|:--:|:--:|:--:|:--:|:--:|
|
||||
| 24 | 23 | 18 | 17 | 10 | 9 ||| 36 | 37 | 44 | 45 | 50 | 51 |
|
||||
| 25 | 22 | 19 | 16 | 11 | 8 ||| 35 | 38 | 43 | 46 | 49 | 52 |
|
||||
| 26 | 21 | 20 | 15 | 12 | 7 ||| 34 | 39 | 42 | 47 | 48 | 53 |
|
||||
||||| 14 | 13 | 6 | 33 | 40 | 41 |||||
|
||||
|
||||
Each layer uses the LED `14` as an visual indicator:
|
||||
|
||||
* ⚫️ Default layer
|
||||
* 🔵 Lower (0)
|
||||
* 🟠 Raise (1)
|
||||
* 🟢 Numpad (2)
|
||||
* ⚪️ Control and Command
|
||||
* 🟡 Shift
|
||||
|
||||
## Mod-taps
|
||||
|
||||
For convenience, QMK includes some Mod-Tap shortcuts to make common combinations more compact in your keymap:
|
||||
| Key | Description |
|
||||
| :-- | --: |
|
||||
| LCTL_T(kc) | Left Control when held, kc when tapped. |
|
||||
| LSFT_T(kc) | Left Shift when held, kc when tapped. |
|
||||
| LALT_T(kc) | Left Alt when held, kc when tapped. |
|
||||
| ALT(kc) | Left Alt + kc when tapped. |
|
||||
| LGUI_T(kc) | Left GUI when held, kc when tapped. |
|
||||
| RSFT_T(kc) | Right Shift when held, kc when tapped. |
|
||||
| RGUI_T(kc) | Right GUI when held, kc when tapped. |
|
||||
|
||||
## Macros
|
||||
|
||||
|Layer | Name | Description | Keys |
|
||||
| :--: | --: | -- | --: |
|
||||
| 🟠 | CEDILLA | Directly outputs ç | ' + c |
|
||||
| 🟠 | AO | Directly outputs ã | shift + ` + a |
|
||||
| 🟠 | ASPAS | Outputs ", since diaeresis[^1] are less used than " (for coding and quoting) | shift + ' + space |
|
||||
|
||||
## Layers
|
||||
|
||||
### QWERTY
|
||||
|
||||
|||||||||||||||
|
||||
|:--|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|--:|
|
||||
| LCTL_T(F3[^2]) | Q | W | E | R | T ||| Y | U | I | O | P | GRAVE |
|
||||
| LALT_T(TAB) | A | S | D | F | G ||| H | J | K | L | ; | ↵ |
|
||||
| LSFT_T(←) | Z | X | C | V | B ||| N | M | , | . | / | RGUI_T(→) |
|
||||
||||| LGUI_T(↓) | MO(1) | SPACE | ⌫ | MO(2)| RSFT_T( ↑) |||||
|
||||
|
||||
|
||||
### LOWER 🔵
|
||||
|
||||
|||||||||||||||
|
||||
|:--|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|--:|
|
||||
|CTL_T(F5[^3]) | 1 | 2 | 3 | 4 | 5 ||| 6 | 7 | 8 | 9 | 0 | ESCAPE |
|
||||
|LCTL(LGUI(KC_SPC))[^4] | ← | ↓ | ↑ | → | ↵ ||| [ | ] | \ | ' | : | ↵ |
|
||||
|ALT(←) | F1[^5] | F2[^6] | C | V | ⌫ ||| - | = | < | > | ? | LALT(→) |
|
||||
||||| LGUI_T(PAGE_DOWN) | _ | SPACE | LALT(⌫) | TG(3) | RSFT_T(PAGE_UP) |||||
|
||||
|
||||
### RAISE 🟠
|
||||
|
||||
|||||||||||||||
|
||||
|:--|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|--:|
|
||||
LCTL_T(F4[^7]) | ! | @ | # | $ | % ||| ˆ | & | * | ( | ) | ˜ |
|
||||
LALT_T(TAB) | Ã[^8] | | | | ||| { | } | | | "[^9] | : | ↵ |
|
||||
LALT(←) | | | Ç[^10] | | ||| _ | + | < | > | ? | LALT(→) |
|
||||
||||| LGUI_T(END) | TG(3) | SPACE| DEL| _ | RSFT_T(HOME) |||||
|
||||
|
||||
### NUMPAD 🟢
|
||||
|
||||
|||||||||||||||
|
||||
|:--|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|--:|
|
||||
| RGB_TOG || | | |||| | 7 | 8 | 9 | * | / |
|
||||
|| RGB_HUI | RGB_SAI | RGB_VAI | RGB_SPI |||| | 4 | 5 | 6 | - | ↵ |
|
||||
|| RGB_HUD | RGB_SAD | RGB_VAD | RGB_SPD |||| . | 1 | 2 | 3 | + | |
|
||||
||||| TG(3)| TG(3) | TG(3) | ⌫ | TG(3) | 0 |||||
|
||||
|
||||
## Usage
|
||||
|
||||
To compile and flash, from `qmk setup` folder, run:
|
||||
|
||||
make crkbd:bermeo:flash
|
||||
|
||||
## Compiled size
|
||||
|
||||
28658/28672 (99%, 14 bytes free)
|
||||
|
||||
If more space is needed, start by deactivating Macros and Luna's animations.
|
||||
|
||||
## Credits
|
||||
|
||||
Guilherme Bermêo [(github)](https://git.bermeo.dev)
|
||||
|
||||
### Thanks
|
||||
|
||||
* @armand1m
|
||||
* @brneor
|
||||
* @drashna
|
||||
* @hellsingcoder
|
||||
* @soundmonster
|
||||
* @wdtamagi
|
||||
|
||||
[^1]: The diaeresis (/daɪˈɛrəsɪs, -ˈɪər-/ dy-ERR-ə-sis, -EER-; also known as the trema) and the umlaut (/ˈʊmlaʊt/) are two different diacritical marks that (in modern usage) look alike. They both consist of two dots ¨ placed over a letter, usually a vowel; when that letter is an i or a j, the diacritic replaces the tittle: ï. In computer systems, both forms have the same code point (binary code). Their appearance in print or on screen may vary between typefaces but rarely within the same typeface. The "diaeresis" diacritic is used to mark the separation of two distinct vowels in adjacent syllables when an instance of diaeresis (or hiatus) occurs, so as to distinguish from a digraph or diphthong.
|
||||
The "umlaut" diacritic, in contrast, indicates a sound shift phenomenon – also known as umlaut – in which a back vowel becomes a front vowel.
|
||||
Neither of these phenomena occur in English, except in loanwords (like naïve) or for stylistic reasons (as in the Brontë family or Mötley Crüe).
|
||||
|
||||
[^2]: Open Mission Control.
|
||||
|
||||
[^3]: Bring up the screenshot toolbar.
|
||||
|
||||
[^4]: Opens emoji dialog box.
|
||||
|
||||
[^5]: Decrease display brightness.
|
||||
|
||||
[^6]: Increase display brightness.
|
||||
|
||||
[^7]: Launchpad.
|
||||
|
||||
[^8]: Macro "CEDILLA".
|
||||
|
||||
[^9]: Macro "AO".
|
||||
|
||||
[^10]: Macro "ASPAS".
|
||||
19
keyboards/crkbd/keymaps/bermeo/rules.mk
Normal file
19
keyboards/crkbd/keymaps/bermeo/rules.mk
Normal file
@@ -0,0 +1,19 @@
|
||||
RGBLIGHT_ENABLE = no
|
||||
RGB_MATRIX_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = no
|
||||
NKRO_ENABLE = no
|
||||
OLED_ENABLE = yes
|
||||
OLED_DRIVER = SSD1306
|
||||
LTO_ENABLE = yes
|
||||
SLEEP_LED_ENABLE = yes
|
||||
WPM_ENABLE = yes
|
||||
|
||||
|
||||
#Dont use
|
||||
CONSOLE_ENABLE = no
|
||||
MOUSEKEY_ENABLE = no
|
||||
BOOTMAGIC_ENABLE = no
|
||||
COMBO_ENABLE = no
|
||||
AUDIO_ENABLE = no
|
||||
MIDI_ENABLE = no
|
||||
BLUETOOTH_ENABLE = no
|
||||
42
keyboards/ducky/one2sf/1967st/1967st.h
Normal file
42
keyboards/ducky/one2sf/1967st/1967st.h
Normal file
@@ -0,0 +1,42 @@
|
||||
/* Copyright 2019 /u/KeepItUnder
|
||||
*
|
||||
* 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 XXX KC_NO
|
||||
|
||||
/* This a shortcut to help you visually see your layout.
|
||||
*
|
||||
* The first section contains all of the arguments representing the physical
|
||||
* layout of the board and position of the keys.
|
||||
*
|
||||
* The second converts the arguments into a two-dimensional array which
|
||||
* represents the switch matrix.
|
||||
*/
|
||||
#define LAYOUT_all( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \
|
||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
|
||||
k40, k41, k42, k45, k4a, k4b, k4c, k4d, k4e, k4f \
|
||||
) { \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \
|
||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, }, \
|
||||
{ k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k4a, k4b, k4c, k4d, k4e, k4f } \
|
||||
}
|
||||
57
keyboards/ducky/one2sf/1967st/boards/NUC123SD4AN0/board.c
Normal file
57
keyboards/ducky/one2sf/1967st/boards/NUC123SD4AN0/board.c
Normal file
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
ChibiOS Driver element - Copyright (C) 2019 /u/KeepItUnder
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
#include "hal.h"
|
||||
|
||||
#if HAL_USE_PAL || defined(__DOXYGEN__)
|
||||
/**
|
||||
* @brief PAL setup.
|
||||
* @details Digital I/O ports static configuration as defined in @p board.h.
|
||||
* This variable is used by the HAL when initializing the PAL driver.
|
||||
*/
|
||||
const PALConfig pal_default_config = {
|
||||
# if NUC123_HAS_GPIOA
|
||||
{VAL_GPIOA_PMD, VAL_GPIOA_OFFD, VAL_GPIOA_DMASK, VAL_GPIOA_DBEN, VAL_GPIOA_IMD, VAL_GPIOA_IEN, VAL_GPIOA_ISRC, VAL_GPIOA_DOUT},
|
||||
# endif
|
||||
# if NUC123_HAS_GPIOB
|
||||
{VAL_GPIOB_PMD, VAL_GPIOB_OFFD, VAL_GPIOB_DMASK, VAL_GPIOB_DBEN, VAL_GPIOB_IMD, VAL_GPIOB_IEN, VAL_GPIOB_ISRC, VAL_GPIOB_DOUT},
|
||||
# endif
|
||||
# if NUC123_HAS_GPIOC
|
||||
{VAL_GPIOC_PMD, VAL_GPIOC_OFFD, VAL_GPIOC_DMASK, VAL_GPIOC_DBEN, VAL_GPIOC_IMD, VAL_GPIOC_IEN, VAL_GPIOC_ISRC, VAL_GPIOC_DOUT},
|
||||
# endif
|
||||
# if NUC123_HAS_GPIOD
|
||||
{VAL_GPIOD_PMD, VAL_GPIOD_OFFD, VAL_GPIOD_DMASK, VAL_GPIOD_DBEN, VAL_GPIOD_IMD, VAL_GPIOD_IEN, VAL_GPIOD_ISRC, VAL_GPIOD_DOUT},
|
||||
# endif
|
||||
# if NUC123_HAS_GPIOF
|
||||
{VAL_GPIOF_PMD, VAL_GPIOF_OFFD, VAL_GPIOF_DMASK, VAL_GPIOF_DBEN, VAL_GPIOF_IMD, VAL_GPIOF_IEN, VAL_GPIOF_ISRC, VAL_GPIOF_DOUT},
|
||||
# endif
|
||||
};
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Early initialization code.
|
||||
* @details This initialization must be performed just after stack setup
|
||||
* and before any other initialization.
|
||||
*/
|
||||
void __early_init(void) {
|
||||
NUC123_clock_init();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Board-specific initialization code.
|
||||
* @todo Add your board-specific code, if any.
|
||||
*/
|
||||
void boardInit(void) {}
|
||||
961
keyboards/ducky/one2sf/1967st/boards/NUC123SD4AN0/board.h
Normal file
961
keyboards/ducky/one2sf/1967st/boards/NUC123SD4AN0/board.h
Normal file
@@ -0,0 +1,961 @@
|
||||
/*
|
||||
ChibiOS Driver element - Copyright (C) 2019 /u/KeepItUnder
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef BOARD_H
|
||||
#define BOARD_H
|
||||
|
||||
/*
|
||||
* Setup for Generic NUC123 board.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Board identifier.
|
||||
*/
|
||||
#define BOARD_NUC123SD4AN0
|
||||
#define BOARD_NAME "Nuvoton NUC123SD4AN0 MCU"
|
||||
|
||||
/*
|
||||
* Board oscillators-related settings.
|
||||
* NOTE: LSE not fitted.
|
||||
* NOTE: HSE is fitted.
|
||||
*/
|
||||
#if !defined(NUC123_LSECLK)
|
||||
#define NUC123_LSECLK 0U
|
||||
#endif
|
||||
|
||||
#define NUC123_LSEDRV (3U << 3U)
|
||||
|
||||
#if !defined(NUC123_HSECLK)
|
||||
#define NUC123_HSECLK 12000000U
|
||||
#endif
|
||||
|
||||
//#define NUC123_HSE_BYPASS
|
||||
|
||||
/*
|
||||
* MCU type as defined in the NUC123 header.
|
||||
*/
|
||||
#define NUC123SD4AN0
|
||||
|
||||
/*
|
||||
* GPIO Multi Function Pin USB Setup
|
||||
* Requires Some GPIO pins to be disabled/set to USB
|
||||
*/
|
||||
|
||||
/*
|
||||
* IO pins assignments.
|
||||
*/
|
||||
#define GPIOA_PIN0 0U
|
||||
#define GPIOA_PIN1 1U
|
||||
#define GPIOA_PIN2 2U
|
||||
#define GPIOA_PIN3 3U
|
||||
#define GPIOA_PIN4 4U
|
||||
#define GPIOA_PIN5 5U
|
||||
#define GPIOA_PIN6 6U
|
||||
#define GPIOA_PIN7 7U
|
||||
#define GPIOA_PIN8 8U
|
||||
#define GPIOA_PIN9 9U
|
||||
#define GPIOA_SPI1_MISO0 10U
|
||||
#define GPIOA_SPI1_CLK 11U
|
||||
#define GPIOA_PWM0 12U
|
||||
#define GPIOA_PWM1 13U
|
||||
#define GPIOA_PWM2 14U
|
||||
#define GPIOA_PWM3 15U
|
||||
|
||||
#define GPIOB_UART0_RXD 0U
|
||||
#define GPIOB_UART0_TXD 1U
|
||||
#define GPIOB_UART0_RTS 2U
|
||||
#define GPIOB_UART0_CTS 3U
|
||||
#define GPIOB_UART1_RXD 4U
|
||||
#define GPIOB_UART1_TXD 5U
|
||||
#define GPIOB_UART1_RTS 6U
|
||||
#define GPIOB_UART1_CTS 7U
|
||||
#define GPIOB_TM0 8U
|
||||
#define GPIOB_TM1 9U
|
||||
#define GPIOB_TM2 10U
|
||||
#define GPIOB_PIN11 11U
|
||||
#define GPIOB_CLK0 12U
|
||||
#define GPIOB_PIN13 13U
|
||||
#define GPIOB_INT0 14U
|
||||
#define GPIOB_INT1 15U
|
||||
|
||||
#define GPIOC_PIN0 0U
|
||||
#define GPIOC_PIN1 1U
|
||||
#define GPIOC_PIN2 2U
|
||||
#define GPIOC_PIN3 3U
|
||||
#define GPIOC_PIN4 4U
|
||||
#define GPIOC_PIN5 5U
|
||||
#define GPIOC_PIN6 6U
|
||||
#define GPIOC_PIN7 7U
|
||||
#define GPIOC_PIN8 8U
|
||||
#define GPIOC_PIN9 9U
|
||||
#define GPIOC_PIN10 10U
|
||||
#define GPIOC_PIN11 11U
|
||||
#define GPIOC_PIN12 12U
|
||||
#define GPIOC_PIN13 13U
|
||||
#define GPIOC_PIN14 14U
|
||||
#define GPIOC_PIN15 15U
|
||||
|
||||
#define GPIOD_ADC0 0U
|
||||
#define GPIOD_ADC1 1U
|
||||
#define GPIOD_ADC2 2U
|
||||
#define GPIOD_ADC3 3U
|
||||
#define GPIOD_ADC4 4U
|
||||
#define GPIOD_ADC5 5U
|
||||
#define GPIOD_PIN6 6U
|
||||
#define GPIOD_PIN7 7U
|
||||
#define GPIOD_PIN8 8U
|
||||
#define GPIOD_PIN9 9U
|
||||
#define GPIOD_PIN10 10U
|
||||
#define GPIOD_PIN11 11U
|
||||
#define GPIOD_PIN12 12U
|
||||
#define GPIOD_PIN13 13U
|
||||
#define GPIOD_PIN14 14U
|
||||
#define GPIOD_PIN15 15U
|
||||
|
||||
#define GPIOE_PIN0 0U
|
||||
#define GPIOE_PIN1 1U
|
||||
#define GPIOE_PIN2 2U
|
||||
#define GPIOE_PIN3 3U
|
||||
#define GPIOE_PIN4 4U
|
||||
#define GPIOE_PIN5 5U
|
||||
#define GPIOE_PIN6 6U
|
||||
#define GPIOE_PIN7 7U
|
||||
#define GPIOE_PIN8 8U
|
||||
#define GPIOE_PIN9 9U
|
||||
#define GPIOE_PIN10 10U
|
||||
#define GPIOE_PIN11 11U
|
||||
#define GPIOE_PIN12 12U
|
||||
#define GPIOE_PIN13 13U
|
||||
#define GPIOE_PIN14 14U
|
||||
#define GPIOE_PIN15 15U
|
||||
|
||||
#define GPIOF_OSC_OUT 0U
|
||||
#define GPIOF_OSC_IN 1U
|
||||
#define GPIOF_I2C0_SDA 2U
|
||||
#define GPIOF_I2C0_SCL 3U
|
||||
#define GPIOF_PIN4 4U
|
||||
#define GPIOF_PIN5 5U
|
||||
#define GPIOF_PIN6 6U
|
||||
#define GPIOF_PIN7 7U
|
||||
#define GPIOF_PIN8 8U
|
||||
#define GPIOF_PIN9 9U
|
||||
#define GPIOF_PIN10 10U
|
||||
#define GPIOF_PIN11 11U
|
||||
#define GPIOF_PIN12 12U
|
||||
#define GPIOF_PIN13 13U
|
||||
#define GPIOF_PIN14 14U
|
||||
#define GPIOF_PIN15 15U
|
||||
|
||||
/*
|
||||
* IO lines assignments.
|
||||
*/
|
||||
#define LINE_USB_DM PAL_LINE(GPIOA, 11U)
|
||||
#define LINE_USB_DP PAL_LINE(GPIOA, 12U)
|
||||
#define LINE_SWDIO PAL_LINE(GPIOA, 13U)
|
||||
#define LINE_SWCLK PAL_LINE(GPIOA, 14U)
|
||||
|
||||
// #define LINE_SPI2_SCK PAL_LINE(GPIOB, 13U)
|
||||
// #define LINE_SPI2_MISO PAL_LINE(GPIOB, 14U)
|
||||
// #define LINE_SPI2_MOSI PAL_LINE(GPIOB, 15U)
|
||||
|
||||
#define LINE_OSC_IN PAL_LINE(GPIOF, 0U)
|
||||
#define LINE_OSC_OUT PAL_LINE(GPIOF, 1U)
|
||||
|
||||
/*
|
||||
* I/O ports initial setup, this configuration is established soon after reset
|
||||
* in the initialization code.
|
||||
* Please refer to the NUC123 Reference Manual for details.
|
||||
*/
|
||||
#define PIN_MODE_INPUT(n) (0U << ((n) * 2U))
|
||||
#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U))
|
||||
#define PIN_MODE_OPENDRAIN(n) (2U << ((n) * 2U))
|
||||
#define PIN_MODE_QUASI(n) (3U << ((n) * 2U))
|
||||
#define PIN_DIGITAL_EN(n) (0U << (n))
|
||||
#define PIN_DIGITAL_DIS(n) (1U << (n))
|
||||
#define PIN_DMASK_DIS(n) (0U << (n))
|
||||
#define PIN_DMASK_EN(n) (1U << (n))
|
||||
#define PIN_DBNCE_DIS(n) (0U << (n))
|
||||
#define PIN_DBNCE_EN(n) (1U << (n))
|
||||
#define PIN_IMD_EDGE(n) (0U << (n))
|
||||
#define PIN_IMD_LVL(n) (1U << (n))
|
||||
#define PIN_IEN_FELL_DIS(n) (0U << (n))
|
||||
#define PIN_IEN_FELL_EN(n) (1U << (n))
|
||||
#define PIN_IEN_REHL_DIS(n) ((0U << (n)) << 16)
|
||||
#define PIN_IEN_REHL_EN(n) ((1U << (n)) << 16)
|
||||
#define PIN_ISRC_EN(n) (1U << (n))
|
||||
#define PIN_ISRC_DIS(n) (0U << (n))
|
||||
#define PIN_ISRC_CLR(n) (1U << (n))
|
||||
#define PIN_DATA_LOW(n) (0U << (n))
|
||||
#define PIN_DATA_HIGH(n) (1U << (n))
|
||||
|
||||
/*
|
||||
* GPIOA setup:
|
||||
*
|
||||
* PA0 - PIN0 (input pullup).
|
||||
* PA1 - PIN1 (input pullup).
|
||||
* PA2 - PIN2 (input pullup).
|
||||
* PA3 - PIN3 (input pullup).
|
||||
* PA4 - PIN4 (input pullup).
|
||||
* PA5 - PIN5 (input pullup).
|
||||
* PA6 - PIN6 (input pullup).
|
||||
* PA7 - PIN7 (input pullup).
|
||||
* PA8 - PIN8 (input pullup).
|
||||
* PA9 - PIN9 (input pullup).
|
||||
* PA10 - SPI1_MISO0 (input pullup).
|
||||
* PA11 - SPI1_CLK (input floating).
|
||||
* PA12 - PWM0 (input floating).
|
||||
* PA13 - PWM1 (input pullup).
|
||||
* PA14 - PWM2 (input pullup).
|
||||
* PA15 - PWM3 (input pullup).
|
||||
*/
|
||||
|
||||
#define VAL_GPIOA_PMD (PIN_MODE_INPUT(GPIOA_PIN0) | \
|
||||
PIN_MODE_INPUT(GPIOA_PIN1) | \
|
||||
PIN_MODE_INPUT(GPIOA_PIN2) | \
|
||||
PIN_MODE_INPUT(GPIOA_PIN3) | \
|
||||
PIN_MODE_INPUT(GPIOA_PIN4) | \
|
||||
PIN_MODE_INPUT(GPIOA_PIN5) | \
|
||||
PIN_MODE_INPUT(GPIOA_PIN6) | \
|
||||
PIN_MODE_INPUT(GPIOA_PIN7) | \
|
||||
PIN_MODE_INPUT(GPIOA_PIN8) | \
|
||||
PIN_MODE_INPUT(GPIOA_PIN9) | \
|
||||
PIN_MODE_INPUT(GPIOA_SPI1_MISO0) | \
|
||||
PIN_MODE_INPUT(GPIOA_SPI1_CLK) | \
|
||||
PIN_MODE_INPUT(GPIOA_PWM0) | \
|
||||
PIN_MODE_INPUT(GPIOA_PWM1) | \
|
||||
PIN_MODE_INPUT(GPIOA_PWM2) | \
|
||||
PIN_MODE_INPUT(GPIOA_PWM3))
|
||||
#define VAL_GPIOA_OFFD (PIN_DIGITAL_EN(GPIOA_PIN0) | \
|
||||
PIN_DIGITAL_EN(GPIOA_PIN1) | \
|
||||
PIN_DIGITAL_EN(GPIOA_PIN2) | \
|
||||
PIN_DIGITAL_EN(GPIOA_PIN3) | \
|
||||
PIN_DIGITAL_EN(GPIOA_PIN4) | \
|
||||
PIN_DIGITAL_EN(GPIOA_PIN5) | \
|
||||
PIN_DIGITAL_EN(GPIOA_PIN6) | \
|
||||
PIN_DIGITAL_EN(GPIOA_PIN7) | \
|
||||
PIN_DIGITAL_EN(GPIOA_PIN8) | \
|
||||
PIN_DIGITAL_EN(GPIOA_PIN9) | \
|
||||
PIN_DIGITAL_EN(GPIOA_SPI1_MISO0) | \
|
||||
PIN_DIGITAL_EN(GPIOA_SPI1_CLK) | \
|
||||
PIN_DIGITAL_EN(GPIOA_PWM0) | \
|
||||
PIN_DIGITAL_EN(GPIOA_PWM1) | \
|
||||
PIN_DIGITAL_EN(GPIOA_PWM2) | \
|
||||
PIN_DIGITAL_EN(GPIOA_PWM3))
|
||||
#define VAL_GPIOA_DMASK (PIN_DMASK_EN(GPIOA_PIN0) | \
|
||||
PIN_DMASK_EN(GPIOA_PIN1) | \
|
||||
PIN_DMASK_EN(GPIOA_PIN2) | \
|
||||
PIN_DMASK_EN(GPIOA_PIN3) | \
|
||||
PIN_DMASK_EN(GPIOA_PIN4) | \
|
||||
PIN_DMASK_EN(GPIOA_PIN5) | \
|
||||
PIN_DMASK_EN(GPIOA_PIN6) | \
|
||||
PIN_DMASK_EN(GPIOA_PIN7) | \
|
||||
PIN_DMASK_EN(GPIOA_PIN8) | \
|
||||
PIN_DMASK_EN(GPIOA_PIN9) | \
|
||||
PIN_DMASK_EN(GPIOA_SPI1_MISO0) | \
|
||||
PIN_DMASK_EN(GPIOA_SPI1_CLK) | \
|
||||
PIN_DMASK_EN(GPIOA_PWM0) | \
|
||||
PIN_DMASK_EN(GPIOA_PWM1) | \
|
||||
PIN_DMASK_EN(GPIOA_PWM2) | \
|
||||
PIN_DMASK_EN(GPIOA_PWM3))
|
||||
#define VAL_GPIOA_DBEN (PIN_DBNCE_EN(GPIOA_PIN0) | \
|
||||
PIN_DBNCE_EN(GPIOA_PIN1) | \
|
||||
PIN_DBNCE_EN(GPIOA_PIN2) | \
|
||||
PIN_DBNCE_EN(GPIOA_PIN3) | \
|
||||
PIN_DBNCE_EN(GPIOA_PIN4) | \
|
||||
PIN_DBNCE_EN(GPIOA_PIN5) | \
|
||||
PIN_DBNCE_EN(GPIOA_PIN6) | \
|
||||
PIN_DBNCE_EN(GPIOA_PIN7) | \
|
||||
PIN_DBNCE_EN(GPIOA_PIN8) | \
|
||||
PIN_DBNCE_EN(GPIOA_PIN9) | \
|
||||
PIN_DBNCE_EN(GPIOA_SPI1_MISO0) | \
|
||||
PIN_DBNCE_EN(GPIOA_SPI1_CLK) | \
|
||||
PIN_DBNCE_EN(GPIOA_PWM0) | \
|
||||
PIN_DBNCE_EN(GPIOA_PWM1) | \
|
||||
PIN_DBNCE_EN(GPIOA_PWM2) | \
|
||||
PIN_DBNCE_EN(GPIOA_PWM3))
|
||||
#define VAL_GPIOA_IMD (PIN_IMD_EDGE(GPIOA_PIN0) | \
|
||||
PIN_IMD_EDGE(GPIOA_PIN1) | \
|
||||
PIN_IMD_EDGE(GPIOA_PIN2) | \
|
||||
PIN_IMD_EDGE(GPIOA_PIN3) | \
|
||||
PIN_IMD_EDGE(GPIOA_PIN4) | \
|
||||
PIN_IMD_EDGE(GPIOA_PIN5) | \
|
||||
PIN_IMD_EDGE(GPIOA_PIN6) | \
|
||||
PIN_IMD_EDGE(GPIOA_PIN7) | \
|
||||
PIN_IMD_EDGE(GPIOA_PIN8) | \
|
||||
PIN_IMD_EDGE(GPIOA_PIN9) | \
|
||||
PIN_IMD_EDGE(GPIOA_SPI1_MISO0) | \
|
||||
PIN_IMD_EDGE(GPIOA_SPI1_CLK) | \
|
||||
PIN_IMD_EDGE(GPIOA_PWM0) | \
|
||||
PIN_IMD_EDGE(GPIOA_PWM1) | \
|
||||
PIN_IMD_EDGE(GPIOA_PWM2) | \
|
||||
PIN_IMD_EDGE(GPIOA_PWM3))
|
||||
#define VAL_GPIOA_IEN (PIN_IEN_FELL_DIS(GPIOA_PIN0) | \
|
||||
PIN_IEN_FELL_DIS(GPIOA_PIN1) | \
|
||||
PIN_IEN_FELL_DIS(GPIOA_PIN2) | \
|
||||
PIN_IEN_FELL_DIS(GPIOA_PIN3) | \
|
||||
PIN_IEN_FELL_DIS(GPIOA_PIN4) | \
|
||||
PIN_IEN_FELL_DIS(GPIOA_PIN5) | \
|
||||
PIN_IEN_FELL_DIS(GPIOA_PIN6) | \
|
||||
PIN_IEN_FELL_DIS(GPIOA_PIN7) | \
|
||||
PIN_IEN_FELL_DIS(GPIOA_PIN8) | \
|
||||
PIN_IEN_FELL_DIS(GPIOA_PIN9) | \
|
||||
PIN_IEN_FELL_DIS(GPIOA_SPI1_MISO0) | \
|
||||
PIN_IEN_FELL_DIS(GPIOA_SPI1_CLK) | \
|
||||
PIN_IEN_FELL_DIS(GPIOA_PWM0) | \
|
||||
PIN_IEN_FELL_DIS(GPIOA_PWM1) | \
|
||||
PIN_IEN_FELL_DIS(GPIOA_PWM2) | \
|
||||
PIN_IEN_FELL_DIS(GPIOA_PWM3))
|
||||
#define VAL_GPIOA_ISRC (PIN_ISRC_DIS(GPIOA_PIN0) | \
|
||||
PIN_ISRC_DIS(GPIOA_PIN1) | \
|
||||
PIN_ISRC_DIS(GPIOA_PIN2) | \
|
||||
PIN_ISRC_DIS(GPIOA_PIN3) | \
|
||||
PIN_ISRC_DIS(GPIOA_PIN4) | \
|
||||
PIN_ISRC_DIS(GPIOA_PIN5) | \
|
||||
PIN_ISRC_DIS(GPIOA_PIN6) | \
|
||||
PIN_ISRC_DIS(GPIOA_PIN7) | \
|
||||
PIN_ISRC_DIS(GPIOA_PIN8) | \
|
||||
PIN_ISRC_DIS(GPIOA_PIN9) | \
|
||||
PIN_ISRC_DIS(GPIOA_SPI1_MISO0) | \
|
||||
PIN_ISRC_DIS(GPIOA_SPI1_CLK) | \
|
||||
PIN_ISRC_DIS(GPIOA_PWM0) | \
|
||||
PIN_ISRC_DIS(GPIOA_PWM1) | \
|
||||
PIN_ISRC_DIS(GPIOA_PWM2) | \
|
||||
PIN_ISRC_DIS(GPIOA_PWM3))
|
||||
#define VAL_GPIOA_DOUT (PIN_DATA_LOW(GPIOA_PIN0) | \
|
||||
PIN_DATA_LOW(GPIOA_PIN1) | \
|
||||
PIN_DATA_LOW(GPIOA_PIN2) | \
|
||||
PIN_DATA_LOW(GPIOA_PIN3) | \
|
||||
PIN_DATA_LOW(GPIOA_PIN4) | \
|
||||
PIN_DATA_LOW(GPIOA_PIN5) | \
|
||||
PIN_DATA_LOW(GPIOA_PIN6) | \
|
||||
PIN_DATA_LOW(GPIOA_PIN7) | \
|
||||
PIN_DATA_LOW(GPIOA_PIN8) | \
|
||||
PIN_DATA_LOW(GPIOA_PIN9) | \
|
||||
PIN_DATA_LOW(GPIOA_SPI1_MISO0) | \
|
||||
PIN_DATA_LOW(GPIOA_SPI1_CLK) | \
|
||||
PIN_DATA_LOW(GPIOA_PWM0) | \
|
||||
PIN_DATA_LOW(GPIOA_PWM1) | \
|
||||
PIN_DATA_LOW(GPIOA_PWM2) | \
|
||||
PIN_DATA_LOW(GPIOA_PWM3))
|
||||
|
||||
/*
|
||||
* GPIOB setup:
|
||||
*
|
||||
* PB0 - UART0_RXD (input pullup).
|
||||
* PB1 - UART0_TXD (output).
|
||||
* PB2 - UART0_RTS (output).
|
||||
* PB3 - UART0_CTS (output).
|
||||
* PB4 - UART1_RXD (output).
|
||||
* PB5 - UART1_TXD (output).
|
||||
* PB6 - UART1_RTS (output).
|
||||
* PB7 - UART1_CTS (output).
|
||||
* PB8 - TM0 (input pullup).
|
||||
* PB9 - TM1 (input pullup).
|
||||
* PB10 - TM2 (input pullup).
|
||||
* PB11 - PIN11 (input pullup).
|
||||
* PB12 - CLK0 (output).
|
||||
* PB13 - PIN13 (output).
|
||||
* PB14 - INT0 (debug output).
|
||||
* PB15 - INT1 (input pullup).
|
||||
*/
|
||||
#define VAL_GPIOB_PMD (PIN_MODE_INPUT(GPIOB_UART0_RXD) | \
|
||||
PIN_MODE_OUTPUT(GPIOB_UART0_TXD) | \
|
||||
PIN_MODE_OUTPUT(GPIOB_UART0_RTS) | \
|
||||
PIN_MODE_OUTPUT(GPIOB_UART0_CTS) | \
|
||||
PIN_MODE_OUTPUT(GPIOB_UART1_RXD) | \
|
||||
PIN_MODE_OUTPUT(GPIOB_UART1_TXD) | \
|
||||
PIN_MODE_OUTPUT(GPIOB_UART1_RTS) | \
|
||||
PIN_MODE_OUTPUT(GPIOB_UART1_CTS) | \
|
||||
PIN_MODE_INPUT(GPIOB_TM0) | \
|
||||
PIN_MODE_INPUT(GPIOB_TM1) | \
|
||||
PIN_MODE_INPUT(GPIOB_TM2) | \
|
||||
PIN_MODE_INPUT(GPIOB_PIN11) | \
|
||||
PIN_MODE_OUTPUT(GPIOB_CLK0) | \
|
||||
PIN_MODE_OUTPUT(GPIOB_PIN13) | \
|
||||
PIN_MODE_OUTPUT(GPIOB_INT0) | \
|
||||
PIN_MODE_INPUT(GPIOB_INT1))
|
||||
#define VAL_GPIOB_OFFD (PIN_DIGITAL_EN(GPIOB_UART0_RXD) | \
|
||||
PIN_DIGITAL_DIS(GPIOB_UART0_TXD) | \
|
||||
PIN_DIGITAL_DIS(GPIOB_UART0_RTS) | \
|
||||
PIN_DIGITAL_DIS(GPIOB_UART0_CTS) | \
|
||||
PIN_DIGITAL_DIS(GPIOB_UART1_RXD) | \
|
||||
PIN_DIGITAL_DIS(GPIOB_UART1_TXD) | \
|
||||
PIN_DIGITAL_DIS(GPIOB_UART1_RTS) | \
|
||||
PIN_DIGITAL_DIS(GPIOB_UART1_CTS) | \
|
||||
PIN_DIGITAL_DIS(GPIOB_TM0) | \
|
||||
PIN_DIGITAL_EN(GPIOB_TM1) | \
|
||||
PIN_DIGITAL_EN(GPIOB_TM2) | \
|
||||
PIN_DIGITAL_EN(GPIOB_PIN11) | \
|
||||
PIN_DIGITAL_DIS(GPIOB_CLK0) | \
|
||||
PIN_DIGITAL_DIS(GPIOB_PIN13) | \
|
||||
PIN_DIGITAL_DIS(GPIOB_INT0) | \
|
||||
PIN_DIGITAL_EN(GPIOB_INT1))
|
||||
#define VAL_GPIOB_DMASK (PIN_DMASK_EN(GPIOB_UART0_RXD) | \
|
||||
PIN_DMASK_DIS(GPIOB_UART0_TXD) | \
|
||||
PIN_DMASK_DIS(GPIOB_UART0_RTS) | \
|
||||
PIN_DMASK_DIS(GPIOB_UART0_CTS) | \
|
||||
PIN_DMASK_DIS(GPIOB_UART1_RXD) | \
|
||||
PIN_DMASK_DIS(GPIOB_UART1_TXD) | \
|
||||
PIN_DMASK_DIS(GPIOB_UART1_RTS) | \
|
||||
PIN_DMASK_DIS(GPIOB_UART1_CTS) | \
|
||||
PIN_DMASK_EN(GPIOB_TM0) | \
|
||||
PIN_DMASK_EN(GPIOB_TM1) | \
|
||||
PIN_DMASK_EN(GPIOB_TM2) | \
|
||||
PIN_DMASK_EN(GPIOB_PIN11) | \
|
||||
PIN_DMASK_DIS(GPIOB_CLK0) | \
|
||||
PIN_DMASK_DIS(GPIOB_PIN13) | \
|
||||
PIN_DMASK_DIS(GPIOB_INT0) | \
|
||||
PIN_DMASK_EN(GPIOB_INT1))
|
||||
#define VAL_GPIOB_DBEN (PIN_DBNCE_EN(GPIOB_UART0_RXD) | \
|
||||
PIN_DBNCE_DIS(GPIOB_UART0_TXD) | \
|
||||
PIN_DBNCE_DIS(GPIOB_UART0_RTS) | \
|
||||
PIN_DBNCE_DIS(GPIOB_UART0_CTS) | \
|
||||
PIN_DBNCE_DIS(GPIOB_UART1_RXD) | \
|
||||
PIN_DBNCE_DIS(GPIOB_UART1_TXD) | \
|
||||
PIN_DBNCE_DIS(GPIOB_UART1_RTS) | \
|
||||
PIN_DBNCE_DIS(GPIOB_UART1_CTS) | \
|
||||
PIN_DBNCE_EN(GPIOB_TM0) | \
|
||||
PIN_DBNCE_EN(GPIOB_TM1) | \
|
||||
PIN_DBNCE_EN(GPIOB_TM2) | \
|
||||
PIN_DBNCE_EN(GPIOB_PIN11) | \
|
||||
PIN_DBNCE_DIS(GPIOB_CLK0) | \
|
||||
PIN_DBNCE_DIS(GPIOB_PIN13) | \
|
||||
PIN_DBNCE_DIS(GPIOB_INT0) | \
|
||||
PIN_DBNCE_EN(GPIOB_INT1))
|
||||
#define VAL_GPIOB_IMD (PIN_IMD_EDGE(GPIOB_UART0_RXD) | \
|
||||
PIN_IMD_EDGE(GPIOB_UART0_TXD) | \
|
||||
PIN_IMD_EDGE(GPIOB_UART0_RTS) | \
|
||||
PIN_IMD_EDGE(GPIOB_UART0_CTS) | \
|
||||
PIN_IMD_EDGE(GPIOB_UART1_RXD) | \
|
||||
PIN_IMD_EDGE(GPIOB_UART1_TXD) | \
|
||||
PIN_IMD_EDGE(GPIOB_UART1_RTS) | \
|
||||
PIN_IMD_EDGE(GPIOB_UART1_CTS) | \
|
||||
PIN_IMD_EDGE(GPIOB_TM0) | \
|
||||
PIN_IMD_EDGE(GPIOB_TM1) | \
|
||||
PIN_IMD_EDGE(GPIOB_TM2) | \
|
||||
PIN_IMD_EDGE(GPIOB_PIN11) | \
|
||||
PIN_IMD_EDGE(GPIOB_CLK0) | \
|
||||
PIN_IMD_EDGE(GPIOB_PIN13) | \
|
||||
PIN_IMD_EDGE(GPIOB_INT0) | \
|
||||
PIN_IMD_EDGE(GPIOB_INT1))
|
||||
#define VAL_GPIOB_IEN (PIN_IEN_FELL_DIS(GPIOB_UART0_RXD) | \
|
||||
PIN_IEN_FELL_DIS(GPIOB_UART0_TXD) | \
|
||||
PIN_IEN_FELL_DIS(GPIOB_UART0_RTS) | \
|
||||
PIN_IEN_FELL_DIS(GPIOB_UART0_CTS) | \
|
||||
PIN_IEN_FELL_DIS(GPIOB_UART1_RXD) | \
|
||||
PIN_IEN_FELL_DIS(GPIOB_UART1_TXD) | \
|
||||
PIN_IEN_FELL_DIS(GPIOB_UART1_RTS) | \
|
||||
PIN_IEN_FELL_DIS(GPIOB_UART1_CTS) | \
|
||||
PIN_IEN_FELL_DIS(GPIOB_TM0) | \
|
||||
PIN_IEN_FELL_DIS(GPIOB_TM1) | \
|
||||
PIN_IEN_FELL_DIS(GPIOB_TM2) | \
|
||||
PIN_IEN_FELL_DIS(GPIOB_PIN11) | \
|
||||
PIN_IEN_FELL_DIS(GPIOB_CLK0) | \
|
||||
PIN_IEN_FELL_DIS(GPIOB_PIN13) | \
|
||||
PIN_IEN_FELL_DIS(GPIOB_INT0) | \
|
||||
PIN_IEN_FELL_DIS(GPIOB_INT1))
|
||||
#define VAL_GPIOB_ISRC (PIN_ISRC_DIS(GPIOB_UART0_RXD) | \
|
||||
PIN_ISRC_DIS(GPIOB_UART0_TXD) | \
|
||||
PIN_ISRC_DIS(GPIOB_UART0_RTS) | \
|
||||
PIN_ISRC_DIS(GPIOB_UART0_CTS) | \
|
||||
PIN_ISRC_DIS(GPIOB_UART1_RXD) | \
|
||||
PIN_ISRC_DIS(GPIOB_UART1_TXD) | \
|
||||
PIN_ISRC_DIS(GPIOB_UART1_RTS) | \
|
||||
PIN_ISRC_DIS(GPIOB_UART1_CTS) | \
|
||||
PIN_ISRC_DIS(GPIOB_TM0) | \
|
||||
PIN_ISRC_DIS(GPIOB_TM1) | \
|
||||
PIN_ISRC_DIS(GPIOB_TM2) | \
|
||||
PIN_ISRC_DIS(GPIOB_PIN11) | \
|
||||
PIN_ISRC_DIS(GPIOB_CLK0) | \
|
||||
PIN_ISRC_DIS(GPIOB_PIN13) | \
|
||||
PIN_ISRC_DIS(GPIOB_INT0) | \
|
||||
PIN_ISRC_DIS(GPIOB_INT1))
|
||||
#define VAL_GPIOB_DOUT (PIN_DATA_LOW(GPIOB_UART0_RXD) | \
|
||||
PIN_DATA_LOW(GPIOB_UART0_TXD) | \
|
||||
PIN_DATA_LOW(GPIOB_UART0_RTS) | \
|
||||
PIN_DATA_LOW(GPIOB_UART0_CTS) | \
|
||||
PIN_DATA_LOW(GPIOB_UART1_RXD) | \
|
||||
PIN_DATA_LOW(GPIOB_UART1_TXD) | \
|
||||
PIN_DATA_LOW(GPIOB_UART1_RTS) | \
|
||||
PIN_DATA_LOW(GPIOB_UART1_CTS) | \
|
||||
PIN_DATA_LOW(GPIOB_TM0) | \
|
||||
PIN_DATA_LOW(GPIOB_TM1) | \
|
||||
PIN_DATA_LOW(GPIOB_TM2) | \
|
||||
PIN_DATA_LOW(GPIOB_PIN11) | \
|
||||
PIN_DATA_LOW(GPIOB_CLK0) | \
|
||||
PIN_DATA_LOW(GPIOB_PIN13) | \
|
||||
PIN_DATA_LOW(GPIOB_INT0) | \
|
||||
PIN_DATA_LOW(GPIOB_INT1))
|
||||
|
||||
/*
|
||||
* GPIOC setup:
|
||||
*
|
||||
* PC0 - PIN0 (input pullup).
|
||||
* PC1 - PIN1 (input pullup).
|
||||
* PC2 - PIN2 (input pullup).
|
||||
* PC3 - PIN3 (input pullup).
|
||||
* PC4 - PIN4 (output).
|
||||
* PC5 - PIN5 (output).
|
||||
* PC6 - PIN6 (input pullup).
|
||||
* PC7 - PIN7 (input pullup).
|
||||
* PC8 - PIN8 (input pullup).
|
||||
* PC9 - PIN9 (input pullup).
|
||||
* PC10 - PIN10 (input pullup).
|
||||
* PC11 - PIN11 (input pullup).
|
||||
* PC12 - PIN12 (input pullup).
|
||||
* PC13 - PIN13 (input pullup).
|
||||
* PC14 - PIN14 (input pullup).
|
||||
* PC15 - PIN15 (input pullup).
|
||||
*/
|
||||
#define VAL_GPIOC_PMD (PIN_MODE_INPUT(GPIOC_PIN0) | \
|
||||
PIN_MODE_INPUT(GPIOC_PIN1) | \
|
||||
PIN_MODE_INPUT(GPIOC_PIN2) | \
|
||||
PIN_MODE_INPUT(GPIOC_PIN3) | \
|
||||
PIN_MODE_OUTPUT(GPIOC_PIN4) | \
|
||||
PIN_MODE_OUTPUT(GPIOC_PIN5) | \
|
||||
PIN_MODE_INPUT(GPIOC_PIN6) | \
|
||||
PIN_MODE_INPUT(GPIOC_PIN7) | \
|
||||
PIN_MODE_INPUT(GPIOC_PIN8) | \
|
||||
PIN_MODE_INPUT(GPIOC_PIN9) | \
|
||||
PIN_MODE_INPUT(GPIOC_PIN10) | \
|
||||
PIN_MODE_INPUT(GPIOC_PIN11) | \
|
||||
PIN_MODE_INPUT(GPIOC_PIN12) | \
|
||||
PIN_MODE_INPUT(GPIOC_PIN13) | \
|
||||
PIN_MODE_INPUT(GPIOC_PIN14) | \
|
||||
PIN_MODE_INPUT(GPIOC_PIN15))
|
||||
#define VAL_GPIOC_OFFD (PIN_DIGITAL_EN(GPIOC_PIN0) | \
|
||||
PIN_DIGITAL_EN(GPIOC_PIN1) | \
|
||||
PIN_DIGITAL_EN(GPIOC_PIN2) | \
|
||||
PIN_DIGITAL_EN(GPIOC_PIN3) | \
|
||||
PIN_DIGITAL_DIS(GPIOC_PIN4) | \
|
||||
PIN_DIGITAL_DIS(GPIOC_PIN5) | \
|
||||
PIN_DIGITAL_EN(GPIOC_PIN6) | \
|
||||
PIN_DIGITAL_EN(GPIOC_PIN7) | \
|
||||
PIN_DIGITAL_EN(GPIOC_PIN8) | \
|
||||
PIN_DIGITAL_EN(GPIOC_PIN9) | \
|
||||
PIN_DIGITAL_EN(GPIOC_PIN10) | \
|
||||
PIN_DIGITAL_EN(GPIOC_PIN11) | \
|
||||
PIN_DIGITAL_EN(GPIOC_PIN12) | \
|
||||
PIN_DIGITAL_EN(GPIOC_PIN13) | \
|
||||
PIN_DIGITAL_EN(GPIOC_PIN14) | \
|
||||
PIN_DIGITAL_EN(GPIOC_PIN15))
|
||||
#define VAL_GPIOC_DMASK (PIN_DMASK_EN(GPIOC_PIN0) | \
|
||||
PIN_DMASK_EN(GPIOC_PIN1) | \
|
||||
PIN_DMASK_EN(GPIOC_PIN2) | \
|
||||
PIN_DMASK_EN(GPIOC_PIN3) | \
|
||||
PIN_DMASK_DIS(GPIOC_PIN4) | \
|
||||
PIN_DMASK_DIS(GPIOC_PIN5) | \
|
||||
PIN_DMASK_EN(GPIOC_PIN6) | \
|
||||
PIN_DMASK_EN(GPIOC_PIN7) | \
|
||||
PIN_DMASK_EN(GPIOC_PIN8) | \
|
||||
PIN_DMASK_EN(GPIOC_PIN9) | \
|
||||
PIN_DMASK_EN(GPIOC_PIN10) | \
|
||||
PIN_DMASK_EN(GPIOC_PIN11) | \
|
||||
PIN_DMASK_EN(GPIOC_PIN12) | \
|
||||
PIN_DMASK_EN(GPIOC_PIN13) | \
|
||||
PIN_DMASK_EN(GPIOC_PIN14) | \
|
||||
PIN_DMASK_EN(GPIOC_PIN15))
|
||||
#define VAL_GPIOC_DBEN (PIN_DBNCE_EN(GPIOC_PIN0) | \
|
||||
PIN_DBNCE_EN(GPIOC_PIN1) | \
|
||||
PIN_DBNCE_EN(GPIOC_PIN2) | \
|
||||
PIN_DBNCE_EN(GPIOC_PIN3) | \
|
||||
PIN_DBNCE_DIS(GPIOC_PIN4) | \
|
||||
PIN_DBNCE_DIS(GPIOC_PIN5) | \
|
||||
PIN_DBNCE_EN(GPIOC_PIN6) | \
|
||||
PIN_DBNCE_EN(GPIOC_PIN7) | \
|
||||
PIN_DBNCE_EN(GPIOC_PIN8) | \
|
||||
PIN_DBNCE_EN(GPIOC_PIN9) | \
|
||||
PIN_DBNCE_EN(GPIOC_PIN10) | \
|
||||
PIN_DBNCE_EN(GPIOC_PIN11) | \
|
||||
PIN_DBNCE_EN(GPIOC_PIN12) | \
|
||||
PIN_DBNCE_EN(GPIOC_PIN13) | \
|
||||
PIN_DBNCE_EN(GPIOC_PIN14) | \
|
||||
PIN_DBNCE_EN(GPIOC_PIN15))
|
||||
#define VAL_GPIOC_IMD (PIN_IMD_EDGE(GPIOC_PIN0) | \
|
||||
PIN_IMD_EDGE(GPIOC_PIN1) | \
|
||||
PIN_IMD_EDGE(GPIOC_PIN2) | \
|
||||
PIN_IMD_EDGE(GPIOC_PIN3) | \
|
||||
PIN_IMD_EDGE(GPIOC_PIN4) | \
|
||||
PIN_IMD_EDGE(GPIOC_PIN5) | \
|
||||
PIN_IMD_EDGE(GPIOC_PIN6) | \
|
||||
PIN_IMD_EDGE(GPIOC_PIN7) | \
|
||||
PIN_IMD_EDGE(GPIOC_PIN8) | \
|
||||
PIN_IMD_EDGE(GPIOC_PIN9) | \
|
||||
PIN_IMD_EDGE(GPIOC_PIN10) | \
|
||||
PIN_IMD_EDGE(GPIOC_PIN11) | \
|
||||
PIN_IMD_EDGE(GPIOC_PIN12) | \
|
||||
PIN_IMD_EDGE(GPIOC_PIN13) | \
|
||||
PIN_IMD_EDGE(GPIOC_PIN14) | \
|
||||
PIN_IMD_EDGE(GPIOC_PIN15))
|
||||
#define VAL_GPIOC_IEN (PIN_IEN_FELL_DIS(GPIOC_PIN0) | \
|
||||
PIN_IEN_FELL_DIS(GPIOC_PIN1) | \
|
||||
PIN_IEN_FELL_DIS(GPIOC_PIN2) | \
|
||||
PIN_IEN_FELL_DIS(GPIOC_PIN3) | \
|
||||
PIN_IEN_FELL_DIS(GPIOC_PIN4) | \
|
||||
PIN_IEN_FELL_DIS(GPIOC_PIN5) | \
|
||||
PIN_IEN_FELL_DIS(GPIOC_PIN6) | \
|
||||
PIN_IEN_FELL_DIS(GPIOC_PIN7) | \
|
||||
PIN_IEN_FELL_DIS(GPIOC_PIN8) | \
|
||||
PIN_IEN_FELL_DIS(GPIOC_PIN9) | \
|
||||
PIN_IEN_FELL_DIS(GPIOC_PIN10) | \
|
||||
PIN_IEN_FELL_DIS(GPIOC_PIN11) | \
|
||||
PIN_IEN_FELL_DIS(GPIOC_PIN12) | \
|
||||
PIN_IEN_FELL_DIS(GPIOC_PIN13) | \
|
||||
PIN_IEN_FELL_DIS(GPIOC_PIN14) | \
|
||||
PIN_IEN_FELL_DIS(GPIOC_PIN15))
|
||||
#define VAL_GPIOC_ISRC (PIN_ISRC_DIS(GPIOC_PIN0) | \
|
||||
PIN_ISRC_DIS(GPIOC_PIN1) | \
|
||||
PIN_ISRC_DIS(GPIOC_PIN2) | \
|
||||
PIN_ISRC_DIS(GPIOC_PIN3) | \
|
||||
PIN_ISRC_DIS(GPIOC_PIN4) | \
|
||||
PIN_ISRC_DIS(GPIOC_PIN5) | \
|
||||
PIN_ISRC_DIS(GPIOC_PIN6) | \
|
||||
PIN_ISRC_DIS(GPIOC_PIN7) | \
|
||||
PIN_ISRC_DIS(GPIOC_PIN8) | \
|
||||
PIN_ISRC_DIS(GPIOC_PIN9) | \
|
||||
PIN_ISRC_DIS(GPIOC_PIN10) | \
|
||||
PIN_ISRC_DIS(GPIOC_PIN11) | \
|
||||
PIN_ISRC_DIS(GPIOC_PIN12) | \
|
||||
PIN_ISRC_DIS(GPIOC_PIN13) | \
|
||||
PIN_ISRC_DIS(GPIOC_PIN14) | \
|
||||
PIN_ISRC_DIS(GPIOC_PIN15))
|
||||
#define VAL_GPIOC_DOUT (PIN_DATA_LOW(GPIOC_PIN0) | \
|
||||
PIN_DATA_LOW(GPIOC_PIN1) | \
|
||||
PIN_DATA_LOW(GPIOC_PIN2) | \
|
||||
PIN_DATA_LOW(GPIOC_PIN3) | \
|
||||
PIN_DATA_LOW(GPIOC_PIN4) | \
|
||||
PIN_DATA_LOW(GPIOC_PIN5) | \
|
||||
PIN_DATA_LOW(GPIOC_PIN6) | \
|
||||
PIN_DATA_LOW(GPIOC_PIN7) | \
|
||||
PIN_DATA_LOW(GPIOC_PIN8) | \
|
||||
PIN_DATA_LOW(GPIOC_PIN9) | \
|
||||
PIN_DATA_LOW(GPIOC_PIN10) | \
|
||||
PIN_DATA_LOW(GPIOC_PIN11) | \
|
||||
PIN_DATA_LOW(GPIOC_PIN12) | \
|
||||
PIN_DATA_LOW(GPIOC_PIN13) | \
|
||||
PIN_DATA_LOW(GPIOC_PIN14) | \
|
||||
PIN_DATA_LOW(GPIOC_PIN15))
|
||||
|
||||
/*
|
||||
* GPIOD setup:
|
||||
*
|
||||
* PD0 - ADC0 (input pullup).
|
||||
* PD1 - ADC1 (input pullup).
|
||||
* PD2 - ADC2 (input pullup).
|
||||
* PD3 - ADC3 (output).
|
||||
* PD4 - ADC4 (output).
|
||||
* PD5 - ADC5 (output).
|
||||
* PD6 - PIN6 (input pullup).
|
||||
* PD7 - PIN7 (input pullup).
|
||||
* PD8 - PIN8 (input pullup).
|
||||
* PD9 - PIN9 (output).
|
||||
* PD10 - PIN10 (debug output).
|
||||
* PD11 - PIN11 (output).
|
||||
* PD12 - PIN12 (input pullup).
|
||||
* PD13 - PIN13 (input pullup).
|
||||
* PD14 - PIN14 (input pullup).
|
||||
* PD15 - PIN15 (input pullup).
|
||||
*/
|
||||
#define VAL_GPIOD_PMD (PIN_MODE_INPUT(GPIOD_ADC0) | \
|
||||
PIN_MODE_INPUT(GPIOD_ADC1) | \
|
||||
PIN_MODE_INPUT(GPIOD_ADC2) | \
|
||||
PIN_MODE_OUTPUT(GPIOD_ADC3) | \
|
||||
PIN_MODE_OUTPUT(GPIOD_ADC4) | \
|
||||
PIN_MODE_OUTPUT(GPIOD_ADC5) | \
|
||||
PIN_MODE_INPUT(GPIOD_PIN6) | \
|
||||
PIN_MODE_INPUT(GPIOD_PIN7) | \
|
||||
PIN_MODE_INPUT(GPIOD_PIN8) | \
|
||||
PIN_MODE_OUTPUT(GPIOD_PIN9) | \
|
||||
PIN_MODE_OUTPUT(GPIOD_PIN10) | \
|
||||
PIN_MODE_OUTPUT(GPIOD_PIN11) | \
|
||||
PIN_MODE_INPUT(GPIOD_PIN12) | \
|
||||
PIN_MODE_INPUT(GPIOD_PIN13) | \
|
||||
PIN_MODE_INPUT(GPIOD_PIN14) | \
|
||||
PIN_MODE_INPUT(GPIOD_PIN15))
|
||||
#define VAL_GPIOD_OFFD (PIN_DIGITAL_EN(GPIOD_ADC0) | \
|
||||
PIN_DIGITAL_EN(GPIOD_ADC1) | \
|
||||
PIN_DIGITAL_EN(GPIOD_ADC2) | \
|
||||
PIN_DIGITAL_DIS(GPIOD_ADC3) | \
|
||||
PIN_DIGITAL_DIS(GPIOD_ADC4) | \
|
||||
PIN_DIGITAL_DIS(GPIOD_ADC5) | \
|
||||
PIN_DIGITAL_EN(GPIOD_PIN6) | \
|
||||
PIN_DIGITAL_EN(GPIOD_PIN7) | \
|
||||
PIN_DIGITAL_EN(GPIOD_PIN8) | \
|
||||
PIN_DIGITAL_DIS(GPIOD_PIN9) | \
|
||||
PIN_DIGITAL_DIS(GPIOD_PIN10) | \
|
||||
PIN_DIGITAL_DIS(GPIOD_PIN11) | \
|
||||
PIN_DIGITAL_EN(GPIOD_PIN12) | \
|
||||
PIN_DIGITAL_EN(GPIOD_PIN13) | \
|
||||
PIN_DIGITAL_EN(GPIOD_PIN14) | \
|
||||
PIN_DIGITAL_EN(GPIOD_PIN15))
|
||||
#define VAL_GPIOD_DMASK (PIN_DMASK_EN(GPIOD_ADC0) | \
|
||||
PIN_DMASK_EN(GPIOD_ADC1) | \
|
||||
PIN_DMASK_EN(GPIOD_ADC2) | \
|
||||
PIN_DMASK_DIS(GPIOD_ADC3) | \
|
||||
PIN_DMASK_DIS(GPIOD_ADC4) | \
|
||||
PIN_DMASK_DIS(GPIOD_ADC5) | \
|
||||
PIN_DMASK_EN(GPIOD_PIN6) | \
|
||||
PIN_DMASK_EN(GPIOD_PIN7) | \
|
||||
PIN_DMASK_EN(GPIOD_PIN8) | \
|
||||
PIN_DMASK_DIS(GPIOD_PIN9) | \
|
||||
PIN_DMASK_DIS(GPIOD_PIN10) | \
|
||||
PIN_DMASK_DIS(GPIOD_PIN11) | \
|
||||
PIN_DMASK_EN(GPIOD_PIN12) | \
|
||||
PIN_DMASK_EN(GPIOD_PIN13) | \
|
||||
PIN_DMASK_EN(GPIOD_PIN14) | \
|
||||
PIN_DMASK_EN(GPIOD_PIN15))
|
||||
#define VAL_GPIOD_DBEN (PIN_DBNCE_EN(GPIOD_ADC0) | \
|
||||
PIN_DBNCE_EN(GPIOD_ADC1) | \
|
||||
PIN_DBNCE_EN(GPIOD_ADC2) | \
|
||||
PIN_DBNCE_DIS(GPIOD_ADC3) | \
|
||||
PIN_DBNCE_DIS(GPIOD_ADC4) | \
|
||||
PIN_DBNCE_DIS(GPIOD_ADC5) | \
|
||||
PIN_DBNCE_EN(GPIOD_PIN6) | \
|
||||
PIN_DBNCE_EN(GPIOD_PIN7) | \
|
||||
PIN_DBNCE_EN(GPIOD_PIN8) | \
|
||||
PIN_DBNCE_DIS(GPIOD_PIN9) | \
|
||||
PIN_DBNCE_DIS(GPIOD_PIN10) | \
|
||||
PIN_DBNCE_DIS(GPIOD_PIN11) | \
|
||||
PIN_DBNCE_EN(GPIOD_PIN12) | \
|
||||
PIN_DBNCE_EN(GPIOD_PIN13) | \
|
||||
PIN_DBNCE_EN(GPIOD_PIN14) | \
|
||||
PIN_DBNCE_EN(GPIOD_PIN15))
|
||||
#define VAL_GPIOD_IMD (PIN_IMD_EDGE(GPIOD_ADC0) | \
|
||||
PIN_IMD_EDGE(GPIOD_ADC1) | \
|
||||
PIN_IMD_EDGE(GPIOD_ADC2) | \
|
||||
PIN_IMD_EDGE(GPIOD_ADC3) | \
|
||||
PIN_IMD_EDGE(GPIOD_ADC4) | \
|
||||
PIN_IMD_EDGE(GPIOD_ADC5) | \
|
||||
PIN_IMD_EDGE(GPIOD_PIN6) | \
|
||||
PIN_IMD_EDGE(GPIOD_PIN7) | \
|
||||
PIN_IMD_EDGE(GPIOD_PIN8) | \
|
||||
PIN_IMD_EDGE(GPIOD_PIN9) | \
|
||||
PIN_IMD_EDGE(GPIOD_PIN10) | \
|
||||
PIN_IMD_EDGE(GPIOD_PIN11) | \
|
||||
PIN_IMD_EDGE(GPIOD_PIN12) | \
|
||||
PIN_IMD_EDGE(GPIOD_PIN13) | \
|
||||
PIN_IMD_EDGE(GPIOD_PIN14) | \
|
||||
PIN_IMD_EDGE(GPIOD_PIN15))
|
||||
#define VAL_GPIOD_IEN (PIN_IEN_FELL_DIS(GPIOD_ADC0) | \
|
||||
PIN_IEN_FELL_DIS(GPIOD_ADC1) | \
|
||||
PIN_IEN_FELL_DIS(GPIOD_ADC2) | \
|
||||
PIN_IEN_FELL_DIS(GPIOD_ADC3) | \
|
||||
PIN_IEN_FELL_DIS(GPIOD_ADC4) | \
|
||||
PIN_IEN_FELL_DIS(GPIOD_ADC5) | \
|
||||
PIN_IEN_FELL_DIS(GPIOD_PIN6) | \
|
||||
PIN_IEN_FELL_DIS(GPIOD_PIN7) | \
|
||||
PIN_IEN_FELL_DIS(GPIOD_PIN8) | \
|
||||
PIN_IEN_FELL_DIS(GPIOD_PIN9) | \
|
||||
PIN_IEN_FELL_DIS(GPIOD_PIN10) | \
|
||||
PIN_IEN_FELL_DIS(GPIOD_PIN11) | \
|
||||
PIN_IEN_FELL_DIS(GPIOD_PIN12) | \
|
||||
PIN_IEN_FELL_DIS(GPIOD_PIN13) | \
|
||||
PIN_IEN_FELL_DIS(GPIOD_PIN14) | \
|
||||
PIN_IEN_FELL_DIS(GPIOD_PIN15))
|
||||
#define VAL_GPIOD_ISRC (PIN_ISRC_DIS(GPIOD_ADC0) | \
|
||||
PIN_ISRC_DIS(GPIOD_ADC1) | \
|
||||
PIN_ISRC_DIS(GPIOD_ADC2) | \
|
||||
PIN_ISRC_DIS(GPIOD_ADC3) | \
|
||||
PIN_ISRC_DIS(GPIOD_ADC4) | \
|
||||
PIN_ISRC_DIS(GPIOD_ADC5) | \
|
||||
PIN_ISRC_DIS(GPIOD_PIN6) | \
|
||||
PIN_ISRC_DIS(GPIOD_PIN7) | \
|
||||
PIN_ISRC_DIS(GPIOD_PIN8) | \
|
||||
PIN_ISRC_DIS(GPIOD_PIN9) | \
|
||||
PIN_ISRC_DIS(GPIOD_PIN10) | \
|
||||
PIN_ISRC_DIS(GPIOD_PIN11) | \
|
||||
PIN_ISRC_DIS(GPIOD_PIN12) | \
|
||||
PIN_ISRC_DIS(GPIOD_PIN13) | \
|
||||
PIN_ISRC_DIS(GPIOD_PIN14) | \
|
||||
PIN_ISRC_DIS(GPIOD_PIN15))
|
||||
#define VAL_GPIOD_DOUT (PIN_DATA_LOW(GPIOD_ADC0) | \
|
||||
PIN_DATA_LOW(GPIOD_ADC1) | \
|
||||
PIN_DATA_LOW(GPIOD_ADC2) | \
|
||||
PIN_DATA_LOW(GPIOD_ADC3) | \
|
||||
PIN_DATA_LOW(GPIOD_ADC4) | \
|
||||
PIN_DATA_LOW(GPIOD_ADC5) | \
|
||||
PIN_DATA_LOW(GPIOD_PIN6) | \
|
||||
PIN_DATA_LOW(GPIOD_PIN7) | \
|
||||
PIN_DATA_LOW(GPIOD_PIN8) | \
|
||||
PIN_DATA_LOW(GPIOD_PIN9) | \
|
||||
PIN_DATA_LOW(GPIOD_PIN10) | \
|
||||
PIN_DATA_LOW(GPIOD_PIN11) | \
|
||||
PIN_DATA_LOW(GPIOD_PIN12) | \
|
||||
PIN_DATA_LOW(GPIOD_PIN13) | \
|
||||
PIN_DATA_LOW(GPIOD_PIN14) | \
|
||||
PIN_DATA_LOW(GPIOD_PIN15))
|
||||
|
||||
/*
|
||||
* GPIOF setup:
|
||||
*
|
||||
* PF0 - OSC_IN (input floating).
|
||||
* PF1 - OSC_OUT (input floating).
|
||||
* PF2 - I2C0_SDA (input pullup).
|
||||
* PF3 - I2C0_SCL (input pullup).
|
||||
* PF4 - PIN4 (input pullup).
|
||||
* PF5 - PIN5 (input pullup).
|
||||
* PF6 - PIN6 (input pullup).
|
||||
* PF7 - PIN7 (input pullup).
|
||||
* PF8 - PIN8 (input pullup).
|
||||
* PF9 - PIN9 (input pullup).
|
||||
* PF10 - PIN10 (input pullup).
|
||||
* PF11 - PIN11 (input pullup).
|
||||
* PF12 - PIN12 (input pullup).
|
||||
* PF13 - PIN13 (input pullup).
|
||||
* PF14 - PIN14 (input pullup).
|
||||
* PF15 - PIN15 (input pullup).
|
||||
*/
|
||||
#define VAL_GPIOF_PMD (PIN_MODE_QUASI(GPIOF_OSC_IN) | \
|
||||
PIN_MODE_QUASI(GPIOF_OSC_OUT) | \
|
||||
PIN_MODE_INPUT(GPIOF_I2C0_SDA) | \
|
||||
PIN_MODE_INPUT(GPIOF_I2C0_SCL) | \
|
||||
PIN_MODE_INPUT(GPIOF_PIN4) | \
|
||||
PIN_MODE_INPUT(GPIOF_PIN5) | \
|
||||
PIN_MODE_INPUT(GPIOF_PIN6) | \
|
||||
PIN_MODE_INPUT(GPIOF_PIN7) | \
|
||||
PIN_MODE_INPUT(GPIOF_PIN8) | \
|
||||
PIN_MODE_INPUT(GPIOF_PIN9) | \
|
||||
PIN_MODE_INPUT(GPIOF_PIN10) | \
|
||||
PIN_MODE_INPUT(GPIOF_PIN11) | \
|
||||
PIN_MODE_INPUT(GPIOF_PIN12) | \
|
||||
PIN_MODE_INPUT(GPIOF_PIN13) | \
|
||||
PIN_MODE_INPUT(GPIOF_PIN14) | \
|
||||
PIN_MODE_INPUT(GPIOF_PIN15))
|
||||
#define VAL_GPIOF_OFFD (PIN_DIGITAL_DIS(GPIOF_OSC_IN) | \
|
||||
PIN_DIGITAL_DIS(GPIOF_OSC_OUT) | \
|
||||
PIN_DIGITAL_EN(GPIOF_I2C0_SDA) | \
|
||||
PIN_DIGITAL_EN(GPIOF_I2C0_SCL) | \
|
||||
PIN_DIGITAL_EN(GPIOF_PIN4) | \
|
||||
PIN_DIGITAL_EN(GPIOF_PIN5) | \
|
||||
PIN_DIGITAL_EN(GPIOF_PIN6) | \
|
||||
PIN_DIGITAL_EN(GPIOF_PIN7) | \
|
||||
PIN_DIGITAL_EN(GPIOF_PIN8) | \
|
||||
PIN_DIGITAL_EN(GPIOF_PIN9) | \
|
||||
PIN_DIGITAL_EN(GPIOF_PIN10) | \
|
||||
PIN_DIGITAL_EN(GPIOF_PIN11) | \
|
||||
PIN_DIGITAL_EN(GPIOF_PIN12) | \
|
||||
PIN_DIGITAL_EN(GPIOF_PIN13) | \
|
||||
PIN_DIGITAL_EN(GPIOF_PIN14) | \
|
||||
PIN_DIGITAL_EN(GPIOF_PIN15))
|
||||
#define VAL_GPIOF_DMASK (PIN_DMASK_DIS(GPIOF_OSC_IN) | \
|
||||
PIN_DMASK_DIS(GPIOF_OSC_OUT) | \
|
||||
PIN_DMASK_EN(GPIOF_I2C0_SDA) | \
|
||||
PIN_DMASK_EN(GPIOF_I2C0_SCL) | \
|
||||
PIN_DMASK_EN(GPIOF_PIN4) | \
|
||||
PIN_DMASK_EN(GPIOF_PIN5) | \
|
||||
PIN_DMASK_EN(GPIOF_PIN6) | \
|
||||
PIN_DMASK_EN(GPIOF_PIN7) | \
|
||||
PIN_DMASK_EN(GPIOF_PIN8) | \
|
||||
PIN_DMASK_EN(GPIOF_PIN9) | \
|
||||
PIN_DMASK_EN(GPIOF_PIN10) | \
|
||||
PIN_DMASK_EN(GPIOF_PIN11) | \
|
||||
PIN_DMASK_EN(GPIOF_PIN12) | \
|
||||
PIN_DMASK_EN(GPIOF_PIN13) | \
|
||||
PIN_DMASK_EN(GPIOF_PIN14) | \
|
||||
PIN_DMASK_EN(GPIOF_PIN15))
|
||||
#define VAL_GPIOF_DBEN (PIN_DBNCE_DIS(GPIOF_OSC_IN) | \
|
||||
PIN_DBNCE_DIS(GPIOF_OSC_OUT) | \
|
||||
PIN_DBNCE_EN(GPIOF_I2C0_SDA) | \
|
||||
PIN_DBNCE_EN(GPIOF_I2C0_SCL) | \
|
||||
PIN_DBNCE_EN(GPIOF_PIN4) | \
|
||||
PIN_DBNCE_EN(GPIOF_PIN5) | \
|
||||
PIN_DBNCE_EN(GPIOF_PIN6) | \
|
||||
PIN_DBNCE_EN(GPIOF_PIN7) | \
|
||||
PIN_DBNCE_EN(GPIOF_PIN8) | \
|
||||
PIN_DBNCE_EN(GPIOF_PIN9) | \
|
||||
PIN_DBNCE_EN(GPIOF_PIN10) | \
|
||||
PIN_DBNCE_EN(GPIOF_PIN11) | \
|
||||
PIN_DBNCE_EN(GPIOF_PIN12) | \
|
||||
PIN_DBNCE_EN(GPIOF_PIN13) | \
|
||||
PIN_DBNCE_EN(GPIOF_PIN14) | \
|
||||
PIN_DBNCE_EN(GPIOF_PIN15))
|
||||
#define VAL_GPIOF_IMD (PIN_IMD_LVL(GPIOF_OSC_IN) | \
|
||||
PIN_IMD_LVL(GPIOF_OSC_OUT) | \
|
||||
PIN_IMD_EDGE(GPIOF_I2C0_SDA) | \
|
||||
PIN_IMD_EDGE(GPIOF_I2C0_SCL) | \
|
||||
PIN_IMD_EDGE(GPIOF_PIN4) | \
|
||||
PIN_IMD_EDGE(GPIOF_PIN5) | \
|
||||
PIN_IMD_EDGE(GPIOF_PIN6) | \
|
||||
PIN_IMD_EDGE(GPIOF_PIN7) | \
|
||||
PIN_IMD_EDGE(GPIOF_PIN8) | \
|
||||
PIN_IMD_EDGE(GPIOF_PIN9) | \
|
||||
PIN_IMD_EDGE(GPIOF_PIN10) | \
|
||||
PIN_IMD_EDGE(GPIOF_PIN11) | \
|
||||
PIN_IMD_EDGE(GPIOF_PIN12) | \
|
||||
PIN_IMD_EDGE(GPIOF_PIN13) | \
|
||||
PIN_IMD_EDGE(GPIOF_PIN14) | \
|
||||
PIN_IMD_EDGE(GPIOF_PIN15))
|
||||
#define VAL_GPIOF_IEN (PIN_IEN_FELL_DIS(GPIOF_OSC_IN) | \
|
||||
PIN_IEN_FELL_DIS(GPIOF_OSC_OUT) | \
|
||||
PIN_IEN_FELL_DIS(GPIOF_I2C0_SDA) | \
|
||||
PIN_IEN_FELL_DIS(GPIOF_I2C0_SCL) | \
|
||||
PIN_IEN_FELL_DIS(GPIOF_PIN4) | \
|
||||
PIN_IEN_FELL_DIS(GPIOF_PIN5) | \
|
||||
PIN_IEN_FELL_DIS(GPIOF_PIN6) | \
|
||||
PIN_IEN_FELL_DIS(GPIOF_PIN7) | \
|
||||
PIN_IEN_FELL_DIS(GPIOF_PIN8) | \
|
||||
PIN_IEN_FELL_DIS(GPIOF_PIN9) | \
|
||||
PIN_IEN_FELL_DIS(GPIOF_PIN10) | \
|
||||
PIN_IEN_FELL_DIS(GPIOF_PIN11) | \
|
||||
PIN_IEN_FELL_DIS(GPIOF_PIN12) | \
|
||||
PIN_IEN_FELL_DIS(GPIOF_PIN13) | \
|
||||
PIN_IEN_FELL_DIS(GPIOF_PIN14) | \
|
||||
PIN_IEN_FELL_DIS(GPIOF_PIN15))
|
||||
#define VAL_GPIOF_ISRC (PIN_ISRC_DIS(GPIOF_OSC_IN) | \
|
||||
PIN_ISRC_DIS(GPIOF_OSC_OUT) | \
|
||||
PIN_ISRC_DIS(GPIOF_I2C0_SDA) | \
|
||||
PIN_ISRC_DIS(GPIOF_I2C0_SCL) | \
|
||||
PIN_ISRC_DIS(GPIOF_PIN4) | \
|
||||
PIN_ISRC_DIS(GPIOF_PIN5) | \
|
||||
PIN_ISRC_DIS(GPIOF_PIN6) | \
|
||||
PIN_ISRC_DIS(GPIOF_PIN7) | \
|
||||
PIN_ISRC_DIS(GPIOF_PIN8) | \
|
||||
PIN_ISRC_DIS(GPIOF_PIN9) | \
|
||||
PIN_ISRC_DIS(GPIOF_PIN10) | \
|
||||
PIN_ISRC_DIS(GPIOF_PIN11) | \
|
||||
PIN_ISRC_DIS(GPIOF_PIN12) | \
|
||||
PIN_ISRC_DIS(GPIOF_PIN13) | \
|
||||
PIN_ISRC_DIS(GPIOF_PIN14) | \
|
||||
PIN_ISRC_DIS(GPIOF_PIN15))
|
||||
#define VAL_GPIOF_DOUT (PIN_DATA_LOW(GPIOF_OSC_IN) | \
|
||||
PIN_DATA_LOW(GPIOF_OSC_OUT) | \
|
||||
PIN_DATA_LOW(GPIOF_I2C0_SDA) | \
|
||||
PIN_DATA_LOW(GPIOF_I2C0_SCL) | \
|
||||
PIN_DATA_LOW(GPIOF_PIN4) | \
|
||||
PIN_DATA_LOW(GPIOF_PIN5) | \
|
||||
PIN_DATA_LOW(GPIOF_PIN6) | \
|
||||
PIN_DATA_LOW(GPIOF_PIN7) | \
|
||||
PIN_DATA_LOW(GPIOF_PIN8) | \
|
||||
PIN_DATA_LOW(GPIOF_PIN9) | \
|
||||
PIN_DATA_LOW(GPIOF_PIN10) | \
|
||||
PIN_DATA_LOW(GPIOF_PIN11) | \
|
||||
PIN_DATA_LOW(GPIOF_PIN12) | \
|
||||
PIN_DATA_LOW(GPIOF_PIN13) | \
|
||||
PIN_DATA_LOW(GPIOF_PIN14) | \
|
||||
PIN_DATA_LOW(GPIOF_PIN15))
|
||||
|
||||
|
||||
#if !defined(_FROM_ASM_)
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
void boardInit(void);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* _FROM_ASM_ */
|
||||
|
||||
#endif /* BOARD_H */
|
||||
@@ -0,0 +1,5 @@
|
||||
# List of all the board related files.
|
||||
BOARDSRC = $(BOARD_PATH)/boards/NUC123SD4AN0/board.c
|
||||
|
||||
# Required include directories
|
||||
BOARDINC = $(BOARD_PATH)/boards/NUC123SD4AN0
|
||||
23
keyboards/ducky/one2sf/1967st/chconf.h
Normal file
23
keyboards/ducky/one2sf/1967st/chconf.h
Normal file
@@ -0,0 +1,23 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* 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
|
||||
|
||||
#define CH_CFG_ST_FREQUENCY 10000
|
||||
#define CH_CFG_ST_TIMEDELTA 0
|
||||
#define CH_CFG_USE_WAITEXIT TRUE
|
||||
|
||||
#include_next <chconf.h>
|
||||
56
keyboards/ducky/one2sf/1967st/config.h
Normal file
56
keyboards/ducky/one2sf/1967st/config.h
Normal file
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
Copyright 2019 /u/KeepItUnder
|
||||
|
||||
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 0x445B
|
||||
#define PRODUCT_ID 0x07AF
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Ducky
|
||||
#define PRODUCT One2sf
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 16
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
#define MATRIX_ROW_PINS { D11, B4, B5, B6, B7 }
|
||||
#define MATRIX_COL_PINS { B10, B9, C13, C12, C11, C10, C9, C8, A15, A14, A13, D0, D1, D2,B15,B8 }
|
||||
#define DIP_SWITCH_MATRIX_GRID { {0,14}, {1,14}, {2,14}, {3,14} }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
#define FORCE_NKRO
|
||||
|
||||
#define GPIO_INPUT_PIN_DELAY (NUC123_HCLK / 6 / 1000000L)
|
||||
82
keyboards/ducky/one2sf/1967st/info.json
Normal file
82
keyboards/ducky/one2sf/1967st/info.json
Normal file
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"keyboard_name": "Ducky One 2 SF",
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{ "x": 0, "y": 0, "w": 1, "label": "ESC" },
|
||||
{ "x": 1, "y": 0, "w": 1, "label": "1" },
|
||||
{ "x": 2, "y": 0, "w": 1, "label": "2" },
|
||||
{ "x": 3, "y": 0, "w": 1, "label": "3" },
|
||||
{ "x": 4, "y": 0, "w": 1, "label": "4" },
|
||||
{ "x": 5, "y": 0, "w": 1, "label": "5" },
|
||||
{ "x": 6, "y": 0, "w": 1, "label": "6" },
|
||||
{ "x": 7, "y": 0, "w": 1, "label": "7" },
|
||||
{ "x": 8, "y": 0, "w": 1, "label": "8" },
|
||||
{ "x": 9, "y": 0, "w": 1, "label": "9" },
|
||||
{ "x": 10, "y": 0, "w": 1, "label": "0" },
|
||||
{ "x": 11, "y": 0, "w": 1, "label": "DASH" },
|
||||
{ "x": 12, "y": 0, "w": 1, "label": "EQUALSIGN" },
|
||||
{ "x": 13, "y": 0, "w": 2, "label": "BACKSPACE" },
|
||||
{ "x": 15.25, "y": 0, "w": 2, "label": "DEL" },
|
||||
|
||||
{ "x": 0, "y": 1, "w": 1.5, "label": "TAB" },
|
||||
{ "x": 1.5, "y": 1, "w": 1, "label": "Q" },
|
||||
{ "x": 2.5, "y": 1, "w": 1, "label": "W" },
|
||||
{ "x": 3.5, "y": 1, "w": 1, "label": "E" },
|
||||
{ "x": 4.5, "y": 1, "w": 1, "label": "R" },
|
||||
{ "x": 5.5, "y": 1, "w": 1, "label": "T" },
|
||||
{ "x": 6.5, "y": 1, "w": 1, "label": "Y" },
|
||||
{ "x": 7.5, "y": 1, "w": 1, "label": "U" },
|
||||
{ "x": 8.5, "y": 1, "w": 1, "label": "I" },
|
||||
{ "x": 9.5, "y": 1, "w": 1, "label": "O" },
|
||||
{ "x": 10.5, "y": 1, "w": 1, "label": "P" },
|
||||
{ "x": 11.5, "y": 1, "w": 1, "label": "LBRACKET" },
|
||||
{ "x": 12.5, "y": 1, "w": 1, "label": "RBRACKET" },
|
||||
{ "x": 13.5, "y": 1, "w": 1.5, "label": "BACKSLASH" },
|
||||
{ "x": 15.25, "y": 1, "w": 1.5, "label": "PAGEUP" },
|
||||
|
||||
{ "x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK" },
|
||||
{ "x": 1.75, "y": 2, "w": 1, "label": "A" },
|
||||
{ "x": 2.75, "y": 2, "w": 1, "label": "S" },
|
||||
{ "x": 3.75, "y": 2, "w": 1, "label": "D" },
|
||||
{ "x": 4.75, "y": 2, "w": 1, "label": "F" },
|
||||
{ "x": 5.75, "y": 2, "w": 1, "label": "G" },
|
||||
{ "x": 6.75, "y": 2, "w": 1, "label": "H" },
|
||||
{ "x": 7.75, "y": 2, "w": 1, "label": "J" },
|
||||
{ "x": 8.75, "y": 2, "w": 1, "label": "K" },
|
||||
{ "x": 9.75, "y": 2, "w": 1, "label": "L" },
|
||||
{ "x": 10.75, "y": 2, "w": 1, "label": "SEMICOLON" },
|
||||
{ "x": 11.75, "y": 2, "w": 1, "label": "QUOTE" },
|
||||
{ "x": 12.75, "y": 2, "w": 1, "label": "ISOHASH" },
|
||||
{ "x": 13.75, "y": 2, "w": 1.25, "label": "ENTER" },
|
||||
{ "x": 15.25, "y": 2, "w": 1.25, "label": "PAGEDOWN" },
|
||||
|
||||
{ "x": 0, "y": 3, "w": 1.25, "label": "LSHIFT" },
|
||||
{ "x": 1.25, "y": 3, "w": 1, "label": "ISOBACKSLASH" },
|
||||
{ "x": 2.25, "y": 3, "w": 1, "label": "Z" },
|
||||
{ "x": 3.25, "y": 3, "w": 1, "label": "X" },
|
||||
{ "x": 4.25, "y": 3, "w": 1, "label": "C" },
|
||||
{ "x": 5.25, "y": 3, "w": 1, "label": "V" },
|
||||
{ "x": 6.25, "y": 3, "w": 1, "label": "B" },
|
||||
{ "x": 7.25, "y": 3, "w": 1, "label": "N" },
|
||||
{ "x": 8.25, "y": 3, "w": 1, "label": "M" },
|
||||
{ "x": 9.25, "y": 3, "w": 1, "label": "COMMA" },
|
||||
{ "x": 10.25, "y": 3, "w": 1, "label": "PERIOD" },
|
||||
{ "x": 11.25, "y": 3, "w": 1, "label": "SLASH" },
|
||||
{ "x": 12.25, "y": 3, "w": 2.75, "label": "RSHIFT" },
|
||||
{ "x": 14.25, "y": 3, "w": 2.75, "label": "UP" },
|
||||
|
||||
{ "x": 0, "y": 4, "w": 1.25, "label": "LCTRL" },
|
||||
{ "x": 1.25, "y": 4, "w": 1.25, "label": "LCMD" },
|
||||
{ "x": 2.5, "y": 4, "w": 1.25, "label": "LALT" },
|
||||
{ "x": 3.75, "y": 4, "w": 6.25, "label": "SPACE" },
|
||||
{ "x": 10, "y": 4, "w": 1, "label": "RALT" },
|
||||
{ "x": 11, "y": 4, "w": 1, "label": "FN" },
|
||||
{ "x": 12, "y": 4, "w": 1.25, "label": "RCTRL" },
|
||||
{ "x": 13.25, "y": 4, "w": 1, "label": "LEFT" },
|
||||
{ "x": 14.25, "y": 4, "w": 1, "label": "DOWN" }
|
||||
{ "x": 15.25, "y": 4, "w": 1, "label": "RIGHT" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
51
keyboards/ducky/one2sf/1967st/mcuconf.h
Normal file
51
keyboards/ducky/one2sf/1967st/mcuconf.h
Normal file
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
ChibiOS - Copyright (C) 2020 Alex Lewontin
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef _MCUCONF_H_
|
||||
#define _MCUCONF_H_
|
||||
|
||||
/*
|
||||
* Board setting
|
||||
* The following settings override the default settings present in
|
||||
* the various device driver implementation headers.
|
||||
* Note that the settings for each driver only have effect if the whole
|
||||
* driver is enabled in halconf.h.
|
||||
*
|
||||
* IRQ priorities:
|
||||
* 3...0 Lowest...Highest.
|
||||
*
|
||||
* DMA priorities:
|
||||
* 5...0 Lowest...Highest.
|
||||
*/
|
||||
|
||||
/*
|
||||
* HAL driver system settings.
|
||||
*/
|
||||
#define NUC123_HSE_ENABLED TRUE
|
||||
#define NUC123_PLL_ENABLED TRUE
|
||||
#define NUC123_PLLSRC NUC123_PLLSRC_HSE
|
||||
#define NUC123_HCLKSRC NUC123_HCLKSRC_PLL
|
||||
#define NUC123_HCLKDIV 2
|
||||
#define NUC123_PLL_NF 144
|
||||
#define NUC123_USB_USE_USB0 TRUE
|
||||
#define NUC123_USB_USE_USB1 TRUE
|
||||
|
||||
#define NUC123_SERIAL_USE_UART0 TRUE
|
||||
#define NUC123_SERIAL_CLKSRC NUC123_SERIAL_CLKSRC_HSI
|
||||
|
||||
#define NUC123_MCUCONF
|
||||
|
||||
#endif /* _MCUCONF_H_ */
|
||||
1
keyboards/ducky/one2sf/1967st/readme.md
Normal file
1
keyboards/ducky/one2sf/1967st/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# One2SF
|
||||
34
keyboards/ducky/one2sf/1967st/rules.mk
Normal file
34
keyboards/ducky/one2sf/1967st/rules.mk
Normal file
@@ -0,0 +1,34 @@
|
||||
MCU_FAMILY = NUMICRO
|
||||
MCU_SERIES = NUC123
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = custom
|
||||
|
||||
# linker script to use
|
||||
MCU_LDSCRIPT = NUC123xD4xx0
|
||||
|
||||
# startup code to use
|
||||
MCU_STARTUP = NUC123
|
||||
BOARD = NUC123SD4AN0
|
||||
|
||||
# NUC123 series is Cortex M0
|
||||
MCU = cortex-m0
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 6
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
DIP_SWITCH_ENABLE = yes
|
||||
|
||||
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
||||
25
keyboards/ducky/one2sf/keymaps/default/config.h
Normal file
25
keyboards/ducky/one2sf/keymaps/default/config.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright 2019 /u/KeepItUnder
|
||||
*
|
||||
* 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
|
||||
#define GRAVE_ESC_GUI_OVERRIDE
|
||||
#define MK_3_SPEED
|
||||
#define MK_C_OFFSET_UNMOD 400 /* Cursor offset per movement (unmodified) */
|
||||
#define MK_C_INTERVAL_UNMOD 5 /* Time between cursor movements (unmodified) */
|
||||
#define MK_W_OFFSET_UNMOD 100 /* Scroll steps per scroll action (unmodified) */
|
||||
#define MK_W_INTERVAL_UNMOD 10 /* Time between scroll steps (unmodified) */
|
||||
55
keyboards/ducky/one2sf/keymaps/default/keymap.c
Normal file
55
keyboards/ducky/one2sf/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,55 @@
|
||||
/* Copyright 2019 /u/KeepItUnder
|
||||
*
|
||||
* 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
|
||||
|
||||
// LAYERS
|
||||
enum Layer {
|
||||
_QWERTY = 0, // Standard QWERTY layer
|
||||
_FUNCTION, // Function key layer
|
||||
_COLOUR // RGB key layer
|
||||
};
|
||||
#define _QW _QWERTY
|
||||
#define _FN _FUNCTION
|
||||
#define _CLR _COLOUR
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_QWERTY] = LAYOUT_all(
|
||||
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT,MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[_FUNCTION] = LAYOUT_all(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT, KC_PGDN,
|
||||
_______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_MUTE, KC_VOLD, KC_VOLU, MO(2), _______, KC_PGUP,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
|
||||
),
|
||||
|
||||
[_COLOUR] = LAYOUT_all(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
};
|
||||
1
keyboards/ducky/one2sf/keymaps/default/readme.md
Normal file
1
keyboards/ducky/one2sf/keymaps/default/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default keymap for one2sf
|
||||
25
keyboards/ducky/one2sf/readme.md
Normal file
25
keyboards/ducky/one2sf/readme.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# One2SF
|
||||
|
||||
A 65% keyboard by Ducky
|
||||
|
||||
* Hardware Supported: Ducky One 2 SF RGB / NUC123SD4AN0 / MBI5043GP
|
||||
* Layout only support for ANSI (ISO & VIA still WIP)
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make ducky/one2sf: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).
|
||||
|
||||
RGB LEDs are currently disabled until the driver is merged.
|
||||
|
||||
This firmware was tested on the duckyon2sf 1967ST version. To enter the 1967ST bootloader to flash you can boot the keyboard while holding D+L.
|
||||
|
||||
There are then two ways to flash the keyboard:
|
||||
|
||||
pip install --user nuvoton-isp
|
||||
nuvoisp -f ducky_one2sf_ansi.bin
|
||||
|
||||
Alternatively you can use elfmimi's [nu-isp-cli](https://lib.rs/crates/nu-isp-cli) which is more complete than nuvoisp and allows flashing .hex files as well.
|
||||
|
||||
cargo install nu-isp-cli
|
||||
nu-isp-cli flash ducky_one2sf_ansi.bin
|
||||
1
keyboards/ducky/one2sf/rules.mk
Normal file
1
keyboards/ducky/one2sf/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
DEFAULT_FOLDER = ducky/one2sf/1967st
|
||||
@@ -159,10 +159,8 @@ void charybdis_set_pointer_dragscroll_enabled(bool enable) {
|
||||
maybe_update_pointing_device_cpi(&g_charybdis_config);
|
||||
}
|
||||
|
||||
void pointing_device_init_kb(void) { maybe_update_pointing_device_cpi(&g_charybdis_config); }
|
||||
|
||||
# ifndef CONSTRAIN_HID
|
||||
# define CONSTRAIN_HID(value) ((value) < -127 ? -127 : ((value) > 127 ? 127 : (value)))
|
||||
# define CONSTRAIN_HID(value) ((value) < XY_REPORT_MIN ? XY_REPORT_MIN : ((value) > XY_REPORT_MAX ? XY_REPORT_MAX : (value)))
|
||||
# endif // !CONSTRAIN_HID
|
||||
|
||||
/**
|
||||
@@ -339,6 +337,7 @@ void charybdis_config_sync_handler(uint8_t initiator2target_buffer_size, const v
|
||||
}
|
||||
|
||||
void keyboard_post_init_kb(void) {
|
||||
maybe_update_pointing_device_cpi(&g_charybdis_config);
|
||||
transaction_register_rpc(RPC_ID_KB_CONFIG_SYNC, charybdis_config_sync_handler);
|
||||
|
||||
keyboard_post_init_user();
|
||||
|
||||
37
keyboards/keebio/iris/keymaps/radlinskii/config.h
Normal file
37
keyboards/keebio/iris/keymaps/radlinskii/config.h
Normal file
@@ -0,0 +1,37 @@
|
||||
// Copyright 2022 Ignacy Radliński (@radlinskii)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
// #define USE_I2C
|
||||
#define EE_HANDS
|
||||
|
||||
#define TAPPING_TOGGLE 1 // tap just once for TT() to toggle the layer
|
||||
#define TAPPING_TERM 200
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
|
||||
#define RGBLIGHT_LAYERS
|
||||
|
||||
#define RGBLIGHT_DEFAULT_HUE 85
|
||||
#define RGBLIGHT_DEFAULT_SAT 255
|
||||
|
||||
#undef RGBLIGHT_DEFAULT_MODE
|
||||
#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_STATIC_LIGHT
|
||||
|
||||
#undef RGBLIGHT_ANIMATIONS
|
||||
#undef RGBLIGHT_EFFECT_BREATHING // fading in and out
|
||||
#undef RGBLIGHT_EFFECT_RAINBOW_MOOD // rainbow all keys at the same time
|
||||
#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL // rainbow top bottom
|
||||
#undef RGBLIGHT_EFFECT_SNAKE
|
||||
#undef RGBLIGHT_EFFECT_KNIGHT
|
||||
#undef RGBLIGHT_EFFECT_CHRISTMAS
|
||||
#undef RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
#undef RGBLIGHT_EFFECT_RGB_TEST // red -> green -> blue
|
||||
#undef RGBLIGHT_EFFECT_ALTERNATING // blinking
|
||||
#undef RGBLIGHT_EFFECT_TWINKLE // randomly fading in and out single keys
|
||||
|
||||
#define MOUSEKEY_DELAY 20
|
||||
#define MOUSEKEY_INTERVAL 20
|
||||
#define MOUSEKEY_MAX_SPEED 5
|
||||
#define MOUSEKEY_TIME_TO_MAX 40
|
||||
#define MOUSEKEY_WHEEL_MAX_SPEED 10
|
||||
193
keyboards/keebio/iris/keymaps/radlinskii/keymap.c
Normal file
193
keyboards/keebio/iris/keymaps/radlinskii/keymap.c
Normal file
@@ -0,0 +1,193 @@
|
||||
// Copyright 2022 Ignacy Radliński (@radlinskii)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#include "light_layers.h"
|
||||
|
||||
enum my_layers {
|
||||
_COLEMAK,
|
||||
_QWERTY,
|
||||
_NUM_SYM,
|
||||
_NAV,
|
||||
_MOUSE,
|
||||
_MEDIA_MISC,
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
COLEMAK = SAFE_RANGE,
|
||||
QWERTY,
|
||||
DEFAULT
|
||||
};
|
||||
|
||||
#define LALT_KA LALT_T(KC_A)
|
||||
#define LCTL_KS LCTL_T(KC_S)
|
||||
#define LGUI_KD LGUI_T(KC_D)
|
||||
#define LSFT_KF LSFT_T(KC_F)
|
||||
#define RSFT_KJ RSFT_T(KC_J)
|
||||
#define RGUI_KK RGUI_T(KC_K)
|
||||
#define RCTL_KL RCTL_T(KC_L)
|
||||
#define RA_SCLN RALT_T(KC_SCLN)
|
||||
|
||||
#define LALT_K1 LALT_T(KC_1)
|
||||
#define LCTL_K2 LCTL_T(KC_2)
|
||||
#define LGUI_K3 LGUI_T(KC_3)
|
||||
#define LSFT_K4 LSFT_T(KC_4)
|
||||
#define RSFT_K7 RSFT_T(KC_7)
|
||||
#define RGUI_K8 RGUI_T(KC_8)
|
||||
#define RCTL_K9 RCTL_T(KC_9)
|
||||
#define RALT_K0 RALT_T(KC_0)
|
||||
|
||||
#define LCTL_KR LCTL_T(KC_R)
|
||||
#define LGUI_KS LGUI_T(KC_S)
|
||||
#define LSFT_KT LSFT_T(KC_T)
|
||||
#define RSFT_KN RSFT_T(KC_N)
|
||||
#define RGUI_KE RGUI_T(KC_E)
|
||||
#define RCTL_KI RCTL_T(KC_I)
|
||||
#define RALT_KO RALT_T(KC_O)
|
||||
|
||||
#define LGUI_BS LGUI_T(KC_BSPC)
|
||||
#define RALT_TB RALT_T(KC_TAB)
|
||||
|
||||
#define TT_N_S TT(_NUM_SYM)
|
||||
#define TT_NAV TT(_NAV)
|
||||
#define TO_QWRT TO(_QWERTY)
|
||||
#define TO_N_S TO(_NUM_SYM)
|
||||
#define TO_NAV TO(_NAV)
|
||||
#define TO_MOUSE TO(_MOUSE)
|
||||
#define TO_M_M TO(_MEDIA_MISC)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_COLEMAK] = LAYOUT(
|
||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
XXXXXXX, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, XXXXXXX,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
KC_CAPS, LALT_KA, LCTL_KR, LGUI_KS, LSFT_KT, KC_G, KC_M, RSFT_KN, RGUI_KE, RCTL_KI, RALT_KO, KC_QUOT,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
XXXXXXX, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_DEL, KC_ESC, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX,
|
||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||
KC_BSPC, TT_N_S, KC_ENT, KC_SPC, TT_NAV, KC_TAB
|
||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||
),
|
||||
|
||||
|
||||
[_QWERTY] = LAYOUT(
|
||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
KC_LCTL, LALT_KA, LCTL_KS, LGUI_KD, LSFT_KF, KC_G, KC_H, RSFT_KJ, RGUI_KK, RCTL_KL, RA_SCLN, KC_QUOT,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DEL, KC_ESC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||
LGUI_BS, TT_N_S, KC_ENT, KC_SPC, TT_NAV, RALT_TB
|
||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||
),
|
||||
|
||||
|
||||
[_NUM_SYM] = 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,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_UNDS, KC_PLUS, _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, LALT_K1, LCTL_K2, LGUI_K3, LSFT_K4, KC_5, KC_6, RSFT_K7, RGUI_K8, RCTL_K9, RALT_K0, KC_PIPE,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, KC_GRV, KC_LPRN, KC_LCBR, KC_LBRC, _______, _______, KC_RBRC, KC_RCBR, KC_RPRN, KC_MINS, KC_EQL, _______,
|
||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||
_______, DEFAULT, _______, _______, TO_NAV, _______
|
||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||
),
|
||||
|
||||
[_NAV] = LAYOUT(
|
||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||
_______, DEFAULT, _______, _______, TO_MOUSE, _______
|
||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||
),
|
||||
|
||||
[_MOUSE] = LAYOUT(
|
||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, KC_WH_R, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_L, TO_M_M,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||
_______, DEFAULT, KC_BTN2, KC_BTN1, TO_NAV, _______
|
||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||
),
|
||||
|
||||
[_MEDIA_MISC] = LAYOUT(
|
||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||
RESET, _______, _______, _______, _______, QWERTY, COLEMAK, _______, _______, _______, _______, _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
KC_CAPS, KC_MPLY, KC_MNXT, KC_VOLU, KC_BRIU, _______, _______, _______, _______, _______, _______, _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, KC_MSTP, KC_MPRV, KC_VOLD, KC_BRID, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||
_______, DEFAULT, _______, _______, DEFAULT, _______
|
||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||
)
|
||||
};
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
rgblight_layers = MY_LIGHT_LAYERS;
|
||||
}
|
||||
|
||||
layer_state_t default_layer_state_set_user(layer_state_t state) {
|
||||
rgblight_set_layer_state(_COLEMAK, layer_state_cmp(state, _COLEMAK));
|
||||
rgblight_set_layer_state(_QWERTY, layer_state_cmp(state, _QWERTY));
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
rgblight_set_layer_state(_NUM_SYM, layer_state_cmp(state, _NUM_SYM));
|
||||
rgblight_set_layer_state(_NAV, layer_state_cmp(state, _NAV));
|
||||
rgblight_set_layer_state(_MOUSE, layer_state_cmp(state, _MOUSE));
|
||||
rgblight_set_layer_state(_MEDIA_MISC, layer_state_cmp(state, _MEDIA_MISC));
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case COLEMAK:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_COLEMAK);
|
||||
layer_move(_COLEMAK);
|
||||
}
|
||||
return false;
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_QWERTY);
|
||||
layer_move(_QWERTY);
|
||||
}
|
||||
return false;
|
||||
case DEFAULT:
|
||||
if (record->event.pressed) {
|
||||
if (layer_state_cmp(default_layer_state, _COLEMAK)) {
|
||||
layer_move(_COLEMAK);
|
||||
} else if (layer_state_cmp(default_layer_state, _QWERTY)) {
|
||||
layer_move(_QWERTY);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
179
keyboards/keebio/iris/keymaps/radlinskii/light_layers.h
Normal file
179
keyboards/keebio/iris/keymaps/radlinskii/light_layers.h
Normal file
@@ -0,0 +1,179 @@
|
||||
// Copyright 2022 Ignacy Radliński (@radlinskii)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
/*
|
||||
|
||||
LED index mapping:
|
||||
|
||||
(31) (32) (33) (67) (66) (65)
|
||||
┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||
│0 │1 │2 │3 │4 │5 │ │39 │38 │37 │36 │35 │34 │
|
||||
├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
│11 │10 │9 │8 │7 │6 │ │40 │41 │42 │43 │44 │45 │
|
||||
├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
│12 │13 │14 │15 │16 │17 │ │51 │50 │49 │48 │47 │46 │
|
||||
├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
│23 │22 │21 │20 │19 │18 │27 │ │61 │52 │53 │54 │55 │56 │57 │
|
||||
└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||
│24 │25 │26 │ │60 │59 │58 │
|
||||
└────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||
(30) (29) (28) (62) (63) (64)
|
||||
|
||||
*/
|
||||
|
||||
const rgblight_segment_t PROGMEM COLEMAK_LIGHT_LAYER[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
// left side
|
||||
{0, 6, 127, 255, 255},
|
||||
{6, 6, 115, 255, 255},
|
||||
{12, 6, 97, 255, 255},
|
||||
{18, 6, 90, 255, 255},
|
||||
{24, 1, 85, 255, 255},
|
||||
{25, 1, 169, 255, 255}, // TT(_NUM_SYM)
|
||||
{26, 2, 85, 255, 255},
|
||||
{28, 3, 85, 255, 255}, // underglow
|
||||
{31, 3, 127, 255, 255}, // underglow
|
||||
// right side
|
||||
{34, 6, 127, 255, 255},
|
||||
{40, 6, 115, 255, 255},
|
||||
{46, 6, 97, 255, 255},
|
||||
{52, 6, 90, 255, 255},
|
||||
{58, 1, 85, 255, 255},
|
||||
{59, 1, 201, 255, 255}, // TT(_NAV)
|
||||
{60, 2, 85, 255, 255},
|
||||
{62, 3, 85, 255, 255}, // underglow
|
||||
{65, 3, 127, 255, 255} // underglow
|
||||
);
|
||||
|
||||
const rgblight_segment_t PROGMEM QWERTY_LIGHT_LAYER[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
// left side
|
||||
{0, 6, 85, 0, 255},
|
||||
{6, 6, 85, 70, 255},
|
||||
{12, 6, 85, 150, 255},
|
||||
{18, 6, 85, 240, 255},
|
||||
{24, 1, 85, 255, 255},
|
||||
{25, 1, 169, 255, 255}, // TT(_NUM_SYM)
|
||||
{26, 2, 85, 255, 255},
|
||||
{28, 3, 85, 255, 255}, // underglow
|
||||
{31, 3, 85, 0, 255}, // underglow
|
||||
// right side
|
||||
{34, 6, 85, 0, 255},
|
||||
{40, 6, 85, 70, 255},
|
||||
{46, 6, 85, 150, 255},
|
||||
{52, 6, 85, 240, 255},
|
||||
{58, 1, 85, 255, 255},
|
||||
{59, 1, 201, 255, 255}, // TT(_NAV)
|
||||
{60, 2, 85, 255, 255},
|
||||
{62, 3, 85, 255, 255}, // underglow
|
||||
{65, 3, 85, 0, 255} // underglow
|
||||
);
|
||||
|
||||
const rgblight_segment_t PROGMEM NUM_SYM_LIGHT_LAYER[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
// left side
|
||||
{0, 6, 201, 255, 255},
|
||||
{6, 6, 191, 255, 255},
|
||||
{12, 6, 181, 255, 255},
|
||||
{18, 6, 171, 255, 255},
|
||||
{24, 1, 169, 255, 255},
|
||||
{25, 1, 85, 255, 255}, // TO(DEFAULT)
|
||||
{26, 2, 169, 255, 255},
|
||||
{28, 3, 169, 255, 255}, // underglow
|
||||
{31, 3, 201, 255, 255}, // underglow
|
||||
// right side
|
||||
{34, 6, 201, 255, 255},
|
||||
{40, 6, 191, 255, 255},
|
||||
{46, 6, 181, 255, 255},
|
||||
{52, 6, 171, 255, 255},
|
||||
{58, 1, 169, 255, 255},
|
||||
{59, 1, 201, 255, 255}, // TO(_NAV)
|
||||
{60, 2, 169, 255, 255},
|
||||
{62, 3, 169, 255, 255}, // underglow
|
||||
{65, 3, 201, 255, 255} // underglow
|
||||
);
|
||||
|
||||
const rgblight_segment_t PROGMEM NAV_LIGHT_LAYER[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
// left side
|
||||
{0, 6, 248, 255, 255},
|
||||
{6, 6, 240, 255, 255},
|
||||
{12, 6, 225, 255, 255},
|
||||
{18, 6, 210, 255, 255},
|
||||
{24, 1, 201, 255, 255},
|
||||
{25, 1, 85, 255, 255}, // TO(DEFAULT)
|
||||
{26, 2, 201, 255, 255},
|
||||
{28, 3, 201, 255, 255}, // underglow
|
||||
{31, 3, 248, 255, 255}, // underglow
|
||||
// right side
|
||||
{34, 6, 248, 255, 255},
|
||||
{40, 6, 240, 255, 255},
|
||||
{46, 6, 225, 255, 255},
|
||||
{52, 6, 210, 255, 255},
|
||||
{58, 1, 201, 255, 255},
|
||||
{59, 1, 43, 255, 255}, // TO(_MOUSE)
|
||||
{60, 2, 201, 255, 255},
|
||||
{62, 3, 201, 255, 255}, // underglow
|
||||
{65, 3, 248, 255, 255} // underglow
|
||||
);
|
||||
|
||||
const rgblight_segment_t PROGMEM MOUSE_LIGHT_LAYER[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
// left side
|
||||
{0, 6, 4, 255, 255},
|
||||
{6, 6, 10, 255, 255},
|
||||
{12, 6, 25, 255, 255},
|
||||
{18, 6, 40, 255, 255},
|
||||
{24, 1, 43, 255, 255},
|
||||
{25, 1, 85, 255, 255}, // TO(DEFAULT)
|
||||
{26, 2, 43, 255, 255},
|
||||
{28, 3, 43, 255, 255}, // underglow
|
||||
{31, 3, 4, 255, 255}, // underglow
|
||||
// right side
|
||||
{34, 6, 4, 255, 255},
|
||||
{40, 6, 10, 255, 255},
|
||||
{46, 1, 0, 255, 255}, // TO(_MEDIA_MISC)
|
||||
{47, 5, 25, 255, 255},
|
||||
{52, 6, 40, 255, 255},
|
||||
{58, 1, 43, 255, 255},
|
||||
{59, 1, 201, 255, 255}, // TO(_NAV)
|
||||
{60, 2, 43, 255, 255},
|
||||
{62, 3, 43, 255, 255}, // underglow
|
||||
{65, 3, 4, 255, 255} // underglow
|
||||
);
|
||||
|
||||
const rgblight_segment_t PROGMEM MEDIA_MISC_LIGHT_LAYER[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
// both sides
|
||||
{0, 1, 0, 255, 255}, // RESET
|
||||
{1, 4, 0, 0, 0},
|
||||
{5, 1, 85, 0, 255}, // set QWERTY as default
|
||||
{6, 2, 0, 0, 0},
|
||||
{8, 1, 160, 150, 150}, // MUTE
|
||||
{9, 3, 0, 0, 0},
|
||||
{12, 1, 201, 255, 255}, // CAPS
|
||||
{13, 1, 120, 255, 255}, // PLAY
|
||||
{14, 1, 0, 255, 255}, // NEXT
|
||||
{15, 1, 160, 255, 255}, // VOLUME_UP
|
||||
{16, 1, 43, 255, 255}, // BRIGHTNESS_UP
|
||||
{17, 2, 0, 0, 0},
|
||||
{19, 1, 43, 200, 200}, // BRIGHTNESS_DOWN
|
||||
{20, 1, 160, 220, 200}, // VOLUME_DOWN
|
||||
{21, 1, 0, 220, 200}, // PREV
|
||||
{22, 1, 120, 220, 200}, // STOP
|
||||
{23, 2, 0, 0, 0},
|
||||
{25, 1, 85, 255, 255}, // TO(DEFAULT)
|
||||
{26, 2, 0, 0, 0},
|
||||
{28, 6, 0, 255, 255}, // underglow
|
||||
{34, 5, 0, 0, 0},
|
||||
{39, 1, 127, 255, 255}, // set COLEMAK as default
|
||||
{40, 19, 0, 0, 0},
|
||||
{59, 1, 85, 255, 255}, // TO(DEFAULT)
|
||||
{60, 2, 0, 0, 0},
|
||||
{62, 6, 0, 255, 255} // underglow
|
||||
);
|
||||
|
||||
const rgblight_segment_t* const PROGMEM MY_LIGHT_LAYERS[] = RGBLIGHT_LAYERS_LIST(
|
||||
COLEMAK_LIGHT_LAYER,
|
||||
QWERTY_LIGHT_LAYER,
|
||||
NUM_SYM_LIGHT_LAYER,
|
||||
NAV_LIGHT_LAYER,
|
||||
MOUSE_LIGHT_LAYER,
|
||||
MEDIA_MISC_LIGHT_LAYER
|
||||
);
|
||||
137
keyboards/keebio/iris/keymaps/radlinskii/readme.md
Normal file
137
keyboards/keebio/iris/keymaps/radlinskii/readme.md
Normal file
@@ -0,0 +1,137 @@
|
||||
# Iris rev. 6 keymap by radlinskii
|
||||
|
||||

|
||||
|
||||
## Features:
|
||||
|
||||
- [RGB Lightning layers](https://docs.qmk.fm/#/feature_rgblight?id=lighting-layers)
|
||||
- [MOUSE KEYS](https://docs.qmk.fm/#/keycodes?id=mouse-keys)
|
||||
- [MOD-TAPS](https://docs.qmk.fm/#/mod_tap)
|
||||
|
||||
## Layers:
|
||||
|
||||
### colemak - default
|
||||
|
||||
> [Colemak DH](https://colemakmods.github.io/mod-dh/) keyboard layout.
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
keymap
|
||||
</summary>
|
||||
|
||||
<img width="800" alt="colemak layer keymap" src="https://user-images.githubusercontent.com/26116041/173403537-f2222651-c8ea-4c8b-b828-97520a222344.png">
|
||||
|
||||
</details>
|
||||
<details>
|
||||
<summary>
|
||||
lightning
|
||||
</summary>
|
||||
|
||||
|
||||
<img width="800" alt="colemak layer lightning" src="https://user-images.githubusercontent.com/26116041/173681398-cdcff1a5-ae79-4409-950a-1b671c350f07.jpeg">
|
||||
|
||||
</details>
|
||||
|
||||
### qwerty - alternative default
|
||||
|
||||
> Can be set as persistent default layer.
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
keymap
|
||||
</summary>
|
||||
|
||||
<img width="800" alt="qwerty layer keymap" src="https://user-images.githubusercontent.com/26116041/173403371-1551976a-2f95-4dbd-ba07-96936651871d.png">
|
||||
|
||||
</details>
|
||||
<details>
|
||||
<summary>
|
||||
lightning
|
||||
</summary>
|
||||
|
||||
<img width="800" alt="qwerty layer lightning" src="https://user-images.githubusercontent.com/26116041/173681525-aee3c927-995a-4f83-b688-ed8bfd3f8bb6.jpeg">
|
||||
|
||||
</details>
|
||||
|
||||
### numeric + symbols
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
keymap
|
||||
</summary>
|
||||
|
||||
<img width="800" alt="numeric and symbols layer keymap" src="https://user-images.githubusercontent.com/26116041/173403164-b0520501-761b-4567-bf04-57f7b6f7dd4d.png">
|
||||
|
||||
</details>
|
||||
<details>
|
||||
<summary>
|
||||
lightning
|
||||
</summary>
|
||||
|
||||
<img width="800" alt="numeric and symbols layer lightning" src="https://user-images.githubusercontent.com/26116041/173681689-0b864e35-0e02-4204-a469-6e872e704903.jpeg">
|
||||
|
||||
</details>
|
||||
|
||||
### navigation
|
||||
|
||||
> Layer with arrow navigation.
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
keymap
|
||||
</summary>
|
||||
|
||||
<img width="800" alt="navigation layer keymap" src="https://user-images.githubusercontent.com/26116041/173408142-1e1c297e-57db-42f8-bc18-a04dd4e202c9.png">
|
||||
|
||||
</details>
|
||||
<details>
|
||||
<summary>
|
||||
lightning
|
||||
</summary>
|
||||
|
||||
<img width="800" alt="navigation layer lightning" src="https://user-images.githubusercontent.com/26116041/173681859-fa6f071a-98e9-48f8-a9a0-76d7510b302a.jpeg">
|
||||
|
||||
</details>
|
||||
|
||||
### mouse
|
||||
|
||||
> Layer with mouse navigation on the same keys as arrow navigation.
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
keymap
|
||||
</summary>
|
||||
|
||||
<img width="800" alt="mouse layer keymap" src="https://user-images.githubusercontent.com/26116041/173402955-050ffd77-7b60-45dc-8e89-54cd43793132.png">
|
||||
|
||||
</details>
|
||||
<details>
|
||||
<summary>
|
||||
lightning
|
||||
</summary>
|
||||
|
||||
<img width="800" alt="mouse layer lightning" src="https://user-images.githubusercontent.com/26116041/173682436-07c32e5e-f415-463d-8c93-d2cbd4e406a1.jpeg">
|
||||
|
||||
</details>
|
||||
|
||||
### media and miscellaneous
|
||||
|
||||
> Used for media keys, switching default layer and keyboard reset.
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
keymap
|
||||
</summary>
|
||||
|
||||
<img width="800" alt="media and miscellaneous layer keymap" src="https://user-images.githubusercontent.com/26116041/173402837-75ce8ab1-7fbe-454b-b165-b22d171f9ad1.png">
|
||||
|
||||
</details>
|
||||
<details>
|
||||
<summary>
|
||||
lightning
|
||||
</summary>
|
||||
|
||||
<img width="800" alt="media and miscellaneous layer lightning" src="https://user-images.githubusercontent.com/26116041/173682188-3eab9c09-d466-4729-89ac-48e09f55564c.jpeg">
|
||||
|
||||
</details>
|
||||
|
||||
3
keyboards/keebio/iris/keymaps/radlinskii/rules.mk
Normal file
3
keyboards/keebio/iris/keymaps/radlinskii/rules.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
RGBLIGHT_ENABLE = yes # by default this is no, but for the rgb light layers to work it needs to be `yes`
|
||||
RGB_MATRIX_ENABLE = no # by default this is yes, but for the rgb light layers to work it needs to be `no`
|
||||
MOUSEKEY_ENABLE = yes
|
||||
149
keyboards/kprepublic/bm80v2/bm80v2.c
Normal file
149
keyboards/kprepublic/bm80v2/bm80v2.c
Normal file
@@ -0,0 +1,149 @@
|
||||
/* Copyright 2022 bdtc123 *
|
||||
* 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 "bm80v2.h"
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
|
||||
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
|
||||
{0, CS6_SW1, CS5_SW1, CS4_SW1},
|
||||
{0, CS6_SW3, CS5_SW3, CS4_SW3},
|
||||
{0, CS6_SW4, CS5_SW4, CS4_SW4},
|
||||
{0, CS6_SW5, CS5_SW5, CS4_SW5},
|
||||
{0, CS6_SW6, CS5_SW6, CS4_SW6},
|
||||
{0, CS6_SW7, CS5_SW7, CS4_SW7},
|
||||
{0, CS6_SW8, CS5_SW8, CS4_SW8},
|
||||
{0, CS6_SW9, CS5_SW9, CS4_SW9},
|
||||
{0, CS21_SW1, CS20_SW1, CS19_SW1},
|
||||
{0, CS21_SW2, CS20_SW2, CS19_SW2},
|
||||
{0, CS21_SW3, CS20_SW3, CS19_SW3},
|
||||
{0, CS21_SW4, CS20_SW4, CS19_SW4},
|
||||
{0, CS21_SW5, CS20_SW5, CS19_SW5},
|
||||
{0, CS21_SW6, CS20_SW6, CS19_SW6},
|
||||
{0, CS21_SW7, CS20_SW7, CS19_SW7},
|
||||
{0, CS21_SW8, CS20_SW8, CS19_SW8},
|
||||
|
||||
|
||||
{0, CS9_SW1, CS8_SW1, CS7_SW1},
|
||||
{0, CS9_SW2, CS8_SW2, CS7_SW2},
|
||||
{0, CS9_SW3, CS8_SW3, CS7_SW3},
|
||||
{0, CS9_SW4, CS8_SW4, CS7_SW4},
|
||||
{0, CS9_SW5, CS8_SW5, CS7_SW5},
|
||||
{0, CS9_SW6, CS8_SW6, CS7_SW6},
|
||||
{0, CS9_SW7, CS8_SW7, CS7_SW7},
|
||||
{0, CS9_SW8, CS8_SW8, CS7_SW8},
|
||||
{0, CS9_SW9, CS8_SW9, CS7_SW9},
|
||||
{0,CS24_SW1, CS23_SW1, CS22_SW1},
|
||||
{0,CS24_SW2, CS23_SW2, CS22_SW2},
|
||||
{0,CS24_SW3, CS23_SW3, CS22_SW3},
|
||||
{0,CS24_SW4, CS23_SW4, CS22_SW4},
|
||||
{0,CS24_SW5, CS23_SW5, CS22_SW5},
|
||||
{0,CS24_SW6, CS23_SW6, CS22_SW6},
|
||||
{0,CS24_SW7, CS23_SW7, CS22_SW7},
|
||||
{0,CS24_SW8, CS23_SW8, CS22_SW8},
|
||||
|
||||
{0, CS12_SW1, CS11_SW1, CS10_SW1},
|
||||
{0, CS12_SW2, CS11_SW2, CS10_SW2},
|
||||
{0, CS12_SW3, CS11_SW3, CS10_SW3},
|
||||
{0, CS12_SW4, CS11_SW4, CS10_SW4},
|
||||
{0, CS12_SW5, CS11_SW5, CS10_SW5},
|
||||
{0, CS12_SW6, CS11_SW6, CS10_SW6},
|
||||
{0, CS12_SW7, CS11_SW7, CS10_SW7},
|
||||
{0, CS12_SW8, CS11_SW8, CS10_SW8},
|
||||
{0, CS12_SW9, CS11_SW9, CS10_SW9},
|
||||
{0, CS27_SW1, CS26_SW1, CS25_SW1},
|
||||
{0, CS27_SW2, CS26_SW2, CS25_SW2},
|
||||
{0, CS27_SW3, CS26_SW3, CS25_SW3},
|
||||
{0, CS27_SW4, CS26_SW4, CS25_SW4},
|
||||
{0, CS27_SW5, CS26_SW5, CS25_SW5},
|
||||
{0, CS27_SW6, CS26_SW6, CS25_SW6},
|
||||
{0, CS27_SW7, CS26_SW7, CS25_SW7},
|
||||
{0, CS27_SW8, CS26_SW8, CS25_SW8},
|
||||
|
||||
{0, CS15_SW1, CS14_SW1, CS13_SW1},
|
||||
{0, CS15_SW2, CS14_SW2, CS13_SW2},
|
||||
{0, CS15_SW3, CS14_SW3, CS13_SW3},
|
||||
{0, CS15_SW4, CS14_SW4, CS13_SW4},
|
||||
{0, CS15_SW5, CS14_SW5, CS13_SW5},
|
||||
{0, CS15_SW6, CS14_SW6, CS13_SW6},
|
||||
{0, CS15_SW7, CS14_SW7, CS13_SW7},
|
||||
{0, CS15_SW8, CS14_SW8, CS13_SW8},
|
||||
{0, CS15_SW9, CS14_SW9, CS13_SW9},
|
||||
{0, CS30_SW1, CS29_SW1, CS28_SW1},
|
||||
{0, CS30_SW2, CS29_SW2, CS28_SW2},
|
||||
{0, CS30_SW3, CS29_SW3, CS28_SW3},
|
||||
{0, CS30_SW4, CS29_SW4, CS28_SW4},
|
||||
|
||||
{0, CS18_SW1, CS17_SW1, CS16_SW1},
|
||||
{0, CS18_SW3, CS17_SW3, CS16_SW3},
|
||||
{0, CS18_SW4, CS17_SW4, CS16_SW4},
|
||||
{0, CS18_SW5, CS17_SW5, CS16_SW5},
|
||||
{0, CS18_SW6, CS17_SW6, CS16_SW6},
|
||||
{0, CS18_SW7, CS17_SW7, CS16_SW7},
|
||||
{0, CS18_SW8, CS17_SW8, CS16_SW8},
|
||||
{0, CS18_SW9, CS17_SW9, CS16_SW9},
|
||||
{0, CS33_SW1, CS32_SW1, CS31_SW1},
|
||||
{0, CS33_SW2, CS32_SW2, CS31_SW2},
|
||||
{0, CS33_SW3, CS32_SW3, CS31_SW3},
|
||||
{0, CS33_SW4, CS32_SW4, CS31_SW4},
|
||||
{0, CS33_SW7, CS32_SW7, CS31_SW7},
|
||||
|
||||
{0, CS3_SW1, CS2_SW1, CS1_SW1},
|
||||
{0, CS3_SW2, CS2_SW2, CS1_SW2},
|
||||
{0, CS3_SW3, CS2_SW3, CS1_SW3},
|
||||
{0, CS3_SW6, CS2_SW6, CS1_SW6},
|
||||
{0, CS36_SW2, CS35_SW2, CS34_SW2},
|
||||
{0, CS36_SW3, CS35_SW3, CS34_SW3},
|
||||
{0, CS36_SW4, CS35_SW4, CS34_SW4},
|
||||
{0, CS36_SW5, CS35_SW5, CS34_SW5},
|
||||
{0, CS36_SW6, CS35_SW6, CS34_SW6},
|
||||
{0, CS36_SW7, CS35_SW7, CS34_SW7},
|
||||
{0, CS36_SW8, CS35_SW8, CS34_SW8}
|
||||
|
||||
};
|
||||
led_config_t g_led_config = { {
|
||||
{ 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
|
||||
{ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 },
|
||||
{ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 },
|
||||
{ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 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, NO_LED },
|
||||
{ 76, 77, 78, NO_LED,NO_LED, 79, NO_LED, NO_LED, NO_LED, NO_LED, 80, 81, 82, 83, 84, 85, 86 }
|
||||
},
|
||||
{
|
||||
{ 7, 5 }, { 31, 5 }, { 43, 5 }, { 55, 5 }, { 67, 5 }, { 85, 5 }, { 97, 5 }, { 109, 5 }, { 121, 5 }, { 139, 5 }, { 151, 5 }, { 163, 5 }, { 175, 5 }, { 193, 5 }, { 205, 5 }, { 217, 5 },
|
||||
{ 7, 20 }, { 19, 20 }, { 31, 20 }, { 43, 20 }, { 55, 20 }, { 67, 20 }, { 79, 20 }, { 91, 20 }, { 103, 20 }, { 115, 20 }, { 127, 20 }, { 139, 20 }, { 151, 20 }, { 169, 20 }, { 193, 20 }, { 205, 20 }, { 217, 20 },
|
||||
{ 10, 30 }, { 25, 30 }, { 37, 30 }, { 49, 30 }, { 61, 30 }, { 73, 30 }, { 85, 30 }, { 97, 30 }, { 109, 30 }, { 121, 30 }, { 133, 30 }, { 145, 30 }, { 157, 30 }, { 172, 30 }, { 193, 30 }, { 205, 30 }, { 217, 30 },
|
||||
{ 11, 39 }, { 28, 39 }, { 40, 39 }, { 52, 39 }, { 64, 39 }, { 76, 39 }, { 88, 39 }, { 100, 39 }, { 112, 39 }, { 124, 39 }, { 136, 39 }, { 148, 39 }, { 168, 39 },
|
||||
{ 17, 49 }, { 34, 49 }, { 46, 49 }, { 58, 49 }, { 70, 49 }, { 82, 49 }, { 94, 49 }, { 106, 49 }, { 118, 49 }, { 130, 49 }, { 142, 49 }, { 165, 49 }, { 205, 49 },
|
||||
{ 8, 59 }, { 23, 59 }, { 38, 59 }, { 83, 59 }, { 129, 59 }, { 144, 59 }, { 159, 59 }, { 174, 59 }, { 193, 59 }, { 205, 59 }, { 217, 59 }
|
||||
},
|
||||
{ 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1,
|
||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1
|
||||
} };
|
||||
|
||||
|
||||
__attribute__ ((weak))
|
||||
void rgb_matrix_indicators_user(void)
|
||||
{
|
||||
if (host_keyboard_led_state().caps_lock)
|
||||
{
|
||||
rgb_matrix_set_color(50, 0xFF, 0xFF, 0xFF);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
34
keyboards/kprepublic/bm80v2/bm80v2.h
Normal file
34
keyboards/kprepublic/bm80v2/bm80v2.h
Normal file
@@ -0,0 +1,34 @@
|
||||
/* Copyright 2022 bdtc123 *
|
||||
* 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_tkl_ansi( \
|
||||
K0_0, K0_2, K0_3, K0_4, K0_5, K0_6,K0_7, K0_8, K0_9, K0_A, K0_B, K0_C, K0_D, K0_E, K0_F, K0_10, \
|
||||
K1_0, K1_1, K1_2, K1_3, K1_4, K1_5, K1_6, K1_7, K1_8, K1_9, K1_A, K1_B, K1_C, K1_D, K1_E, K1_F, K1_10, \
|
||||
K2_0, K2_1, K2_2, K2_3, K2_4, K2_5, K2_6, K2_7, K2_8, K2_9, K2_A, K2_B, K2_C, K2_D, K2_E, K2_F, K2_10, \
|
||||
K3_0, K3_1, K3_2, K3_3, K3_4, K3_5, K3_6, K3_7, K3_8, K3_9, K3_A, K3_B, K3_C, \
|
||||
K4_0, K4_2, K4_3, K4_4, K4_5, K4_6, K4_7, K4_8, K4_9, K4_A, K4_B, K4_C, K4_F, \
|
||||
K5_0, K5_1, K5_2, K5_5, K5_A, K5_B, K5_C, K5_D, K5_E, K5_F, K5_10 \
|
||||
) { \
|
||||
{ K0_0, KC_NO, K0_2, K0_3, K0_4, K0_5, K0_6, K0_7, K0_8, K0_9, K0_A, K0_B, K0_C, K0_D, K0_E, K0_F, K0_10 }, \
|
||||
{ K1_0, K1_1, K1_2, K1_3, K1_4, K1_5, K1_6, K1_7, K1_8, K1_9, K1_A, K1_B, K1_C, K1_D, K1_E, K1_F, K1_10 }, \
|
||||
{ K2_0, K2_1, K2_2, K2_3, K2_4, K2_5, K2_6, K2_7, K2_8, K2_9, K2_A, K2_B, K2_C, K2_D, K2_E, K2_F, K2_10 }, \
|
||||
{ K3_0, K3_1, K3_2, K3_3, K3_4, K3_5, K3_6, K3_7, K3_8, K3_9, K3_A, K3_B, K3_C, KC_NO, KC_NO, KC_NO, KC_NO }, \
|
||||
{ K4_0, KC_NO, K4_2, K4_3, K4_4, K4_5, K4_6, K4_7, K4_8, K4_9, K4_A, K4_B, K4_C, KC_NO, KC_NO, K4_F, KC_NO }, \
|
||||
{ K5_0, K5_1, K5_2, KC_NO, KC_NO, K5_5, KC_NO, KC_NO, KC_NO, KC_NO, K5_A, K5_B, K5_C, K5_D, K5_E, K5_F, K5_10 } \
|
||||
}
|
||||
|
||||
83
keyboards/kprepublic/bm80v2/config.h
Normal file
83
keyboards/kprepublic/bm80v2/config.h
Normal file
@@ -0,0 +1,83 @@
|
||||
/* Copyright 2022 bdtc123 *
|
||||
* 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 0x4B50
|
||||
#define PRODUCT_ID 0x1141
|
||||
#define DEVICE_VER 0x0002
|
||||
#define MANUFACTURER KP republic
|
||||
#define PRODUCT bm80v2
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 6
|
||||
#define MATRIX_COLS 17
|
||||
#define MATRIX_ROW_PINS { C7, C6, B6, F5, F7, F6 }
|
||||
#define MATRIX_COL_PINS { E6, F0, F1, F4, D7, D6, B7, B1, B0, B2, B3, D3, D5, D4, D2, B4, B5 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION ROW2COL
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
|
||||
#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL
|
||||
#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_GRADIENT_LEFT_RIGHT
|
||||
#define ENABLE_RGB_MATRIX_BREATHING
|
||||
#define ENABLE_RGB_MATRIX_BAND_VAL
|
||||
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
||||
#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_HUE_WAVE
|
||||
#define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
||||
// 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_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
|
||||
#define DRIVER_ADDR_1 0b0110000
|
||||
#define DRIVER_COUNT 1
|
||||
#define DRIVER_1_LED_TOTAL 87
|
||||
#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
|
||||
|
||||
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180
|
||||
103
keyboards/kprepublic/bm80v2/info.json
Normal file
103
keyboards/kprepublic/bm80v2/info.json
Normal file
@@ -0,0 +1,103 @@
|
||||
{
|
||||
"keyboard_name": "bm80v2",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"layouts": {
|
||||
"LAYOUT_tkl_ansi": {
|
||||
"layout": [
|
||||
{ "x":0, "y":0},
|
||||
{ "x":2, "y":0},
|
||||
{ "x":3, "y":0},
|
||||
{ "x":4, "y":0},
|
||||
{ "x":5, "y":0},
|
||||
{ "x":6.5, "y":0},
|
||||
{ "x":7.5, "y":0},
|
||||
{ "x":8.5, "y":0},
|
||||
{ "x":9.5, "y":0},
|
||||
{ "x":11, "y":0},
|
||||
{ "x":12, "y":0},
|
||||
{ "x":13, "y":0},
|
||||
{ "x":14, "y":0},
|
||||
{ "x":15.25, "y":0},
|
||||
{ "x":16.25, "y":0},
|
||||
{ "x":17.25, "y":0},
|
||||
|
||||
{ "x":0, "y":1.5},
|
||||
{ "x":1, "y":1.5},
|
||||
{ "x":2, "y":1.5},
|
||||
{ "x":3, "y":1.5},
|
||||
{ "x":4, "y":1.5},
|
||||
{ "x":5, "y":1.5},
|
||||
{ "x":6, "y":1.5},
|
||||
{ "x":7, "y":1.5},
|
||||
{ "x":8, "y":1.5},
|
||||
{ "x":9, "y":1.5},
|
||||
{ "x":10, "y":1.5},
|
||||
{ "x":11, "y":1.5},
|
||||
{ "x":12, "y":1.5},
|
||||
{ "x":13, "y":1.5, "w":2},
|
||||
{ "x":15.25, "y":1.5},
|
||||
{ "x":16.25, "y":1.5},
|
||||
{ "x":17.25, "y":1.5},
|
||||
|
||||
{ "x":0, "y":2.5, "w":1.5},
|
||||
{ "x":1.5, "y":2.5},
|
||||
{ "x":2.5, "y":2.5},
|
||||
{ "x":3.5, "y":2.5},
|
||||
{ "x":4.5, "y":2.5},
|
||||
{ "x":5.5, "y":2.5},
|
||||
{ "x":6.5, "y":2.5},
|
||||
{ "x":7.5, "y":2.5},
|
||||
{ "x":8.5, "y":2.5},
|
||||
{ "x":9.5, "y":2.5},
|
||||
{ "x":10.5, "y":2.5},
|
||||
{ "x":11.5, "y":2.5},
|
||||
{ "x":12.5, "y":2.5},
|
||||
{ "x":13.75,"y":2.5},
|
||||
{ "x":15.25, "y":2.5},
|
||||
{ "x":16.25, "y":2.5},
|
||||
{ "x":17.25, "y":2.5},
|
||||
|
||||
{ "x":0, "y":3.5, "w":1.75},
|
||||
{ "x":1.75, "y":3.5},
|
||||
{ "x":2.75, "y":3.5},
|
||||
{ "x":3.75, "y":3.5},
|
||||
{ "x":4.75, "y":3.5},
|
||||
{ "x":5.75, "y":3.5},
|
||||
{ "x":6.75, "y":3.5},
|
||||
{ "x":7.75, "y":3.5},
|
||||
{ "x":8.75, "y":3.5},
|
||||
{ "x":9.75, "y":3.5},
|
||||
{ "x":10.75, "y":3.5},
|
||||
{ "x":11.75, "y":3.5},
|
||||
{ "x":12.75, "y":3.5, "w":2.25},
|
||||
|
||||
{ "x":0, "y":4.5, "w":2.25},
|
||||
{ "x":2.25, "y":4.5},
|
||||
{ "x":3.25, "y":4.5},
|
||||
{ "x":4.25, "y":4.5},
|
||||
{ "x":5.25, "y":4.5},
|
||||
{ "x":6.25, "y":4.5},
|
||||
{ "x":7.25, "y":4.5},
|
||||
{ "x":8.25, "y":4.5},
|
||||
{ "x":9.25, "y":4.5},
|
||||
{ "x":10.25, "y":4.5},
|
||||
{ "x":11.25, "y":4.5},
|
||||
{ "x":12.25, "y":4.5, "w":2.75},
|
||||
{ "x":16.25, "y":4.5},
|
||||
|
||||
{ "x":0, "y":5.5, "w":1.25},
|
||||
{ "x":1.25, "y":5.5, "w":1.25},
|
||||
{ "x":2.5, "y":5.5, "w":1.25},
|
||||
{ "x":3.75, "y":5.5, "w":6.25},
|
||||
{ "x":10, "y":5.5, "w":1.25},
|
||||
{ "x":11.25, "y":5.5, "w":1.25},
|
||||
{ "x":12.5, "y":5.5, "w":1.25},
|
||||
{ "x":13.75, "y":5.5, "w":1.25},
|
||||
{ "x":15.25, "y":5.5},
|
||||
{ "x":16.25, "y":5.5},
|
||||
{ "x":17.25, "y":5.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
43
keyboards/kprepublic/bm80v2/keymaps/default/keymap.c
Normal file
43
keyboards/kprepublic/bm80v2/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,43 @@
|
||||
// Copyright 2021 Yizhen Liu (@edwardslau)
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_tkl_ansi(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_tkl_ansi(
|
||||
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[2] = LAYOUT_tkl_ansi(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[3] = LAYOUT_tkl_ansi(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
};
|
||||
43
keyboards/kprepublic/bm80v2/keymaps/via/keymap.c
Normal file
43
keyboards/kprepublic/bm80v2/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,43 @@
|
||||
// Copyright 2021 Yizhen Liu (@edwardslau)
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_tkl_ansi(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_tkl_ansi(
|
||||
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[2] = LAYOUT_tkl_ansi(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[3] = LAYOUT_tkl_ansi(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
};
|
||||
2
keyboards/kprepublic/bm80v2/keymaps/via/rules.mk
Normal file
2
keyboards/kprepublic/bm80v2/keymaps/via/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
||||
20
keyboards/kprepublic/bm80v2/readme.md
Normal file
20
keyboards/kprepublic/bm80v2/readme.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# %bm80v2%
|
||||
|
||||
A 80% hotswap inswitch RGB keyboard.
|
||||
|
||||
* Keyboard Maintainer: [%bdtc123%](https://github.com/bdtc123)
|
||||
* Hardware Supported: BM80V2
|
||||
* Hardware Availability: [KP Republic](https://kprepublic.com/products/bm80rgb-bm80-rgb-80-hot-swappable-custom-mechanical-keyboard-pcb-programmed-qmk-via-firmware-full-rgb-switch-underglow-type-c?_pos=7&_sid=767c48383&_ss=r)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make kprepublic bm80v2:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make kprepublic bm80v2:default:flash
|
||||
|
||||
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).
|
||||
|
||||
## Bootloader
|
||||
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
|
||||
22
keyboards/kprepublic/bm80v2/rules.mk
Normal file
22
keyboards/kprepublic/bm80v2/rules.mk
Normal file
@@ -0,0 +1,22 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Light
|
||||
MOUSEKEY_ENABLE = no # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
RGB_MATRIX_ENABLE = yes # Use RGB matrix
|
||||
RGB_MATRIX_DRIVER = IS31FL3741
|
||||
LTO_ENABLE = yes
|
||||
LAYOUTS = tkl_ansi
|
||||
File diff suppressed because it is too large
Load Diff
16
keyboards/nightly_boards/alter_lite/alter_lite.c
Normal file
16
keyboards/nightly_boards/alter_lite/alter_lite.c
Normal file
@@ -0,0 +1,16 @@
|
||||
/* Copyright 2020 DeskDaily
|
||||
* 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 "alter_lite.h"
|
||||
41
keyboards/nightly_boards/alter_lite/alter_lite.h
Normal file
41
keyboards/nightly_boards/alter_lite/alter_lite.h
Normal file
@@ -0,0 +1,41 @@
|
||||
/* Copyright 2020 DeskDaily
|
||||
*
|
||||
* 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"
|
||||
|
||||
/* This is a shortcut to help you visually see your layout.
|
||||
*
|
||||
* The first section contains all of the arguments representing the physical
|
||||
* layout of the board and position of the keys.
|
||||
*
|
||||
* The second converts the arguments into a two-dimensional array which
|
||||
* represents the switch matrix.
|
||||
*/
|
||||
#define LAYOUT( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \
|
||||
K20, K21, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \
|
||||
K31, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, \
|
||||
K41, K44, K45, K46, K48, K4B, K4E \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, KC_NO, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
|
||||
{ K20, K21, KC_NO, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO, K2F }, \
|
||||
{ KC_NO, K31, KC_NO, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \
|
||||
{ KC_NO, K41, KC_NO, KC_NO, K44, K45, K46, KC_NO, K48, KC_NO, KC_NO, K4B, KC_NO, KC_NO, K4E, KC_NO }, \
|
||||
}
|
||||
62
keyboards/nightly_boards/alter_lite/config.h
Normal file
62
keyboards/nightly_boards/alter_lite/config.h
Normal file
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
Copyright 2020 DeskDaily
|
||||
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 0xD812
|
||||
#define PRODUCT_ID 0x0013
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER DeskDaily
|
||||
#define PRODUCT Alter Lite
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 16
|
||||
|
||||
#define LED_NUM_LOCK_PIN D6
|
||||
#define LED_CAPS_LOCK_PIN D7
|
||||
#define LED_SCROLL_LOCK_PIN D4
|
||||
#define LED_PIN_ON_STATE 0
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
#define MATRIX_ROW_PINS { F0, F1, D3, D5, B5 }
|
||||
#define MATRIX_COL_PINS { B0, B1, B2, B3, B7, D0, D1, D2, E6, B6, C6, C7, F7, F6, F5, F4 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||
//#define MATRIX_HAS_GHOST
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
76
keyboards/nightly_boards/alter_lite/info.json
Normal file
76
keyboards/nightly_boards/alter_lite/info.json
Normal file
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"keyboard_name": "Alter",
|
||||
"url": "",
|
||||
"maintainer": "DeskDaily",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"x":0.5, "y":0.15},
|
||||
{"x":1.75, "y":0.25},
|
||||
{"x":2.75, "y":0.25},
|
||||
{"x":3.75, "y":0.25},
|
||||
{"x":4.75, "y":0.25},
|
||||
{"x":5.75, "y":0.25},
|
||||
{"x":6.75, "y":0.25},
|
||||
{"x":7.75, "y":0.25},
|
||||
{"x":11.25, "y":0.25},
|
||||
{"x":12.25, "y":0.25},
|
||||
{"x":13.25, "y":0.25},
|
||||
{"x":14.25, "y":0.25},
|
||||
{"x":15.25, "y":0.25},
|
||||
{"x":16.25, "y":0.25},
|
||||
{"x":17.25, "y":0.25},
|
||||
{"x":18.25, "y":0.25},
|
||||
{"x":0.25, "y":1.15},
|
||||
{"x":1.5, "y":1.25, "w":1.5},
|
||||
{"x":3, "y":1.25},
|
||||
{"x":4.25, "y":1.25},
|
||||
{"x":5.25, "y":1.25},
|
||||
{"x":6.25, "y":1.25},
|
||||
{"x":7.25, "y":1.25},
|
||||
{"x":10.75, "y":1.25},
|
||||
{"x":11.75, "y":1.25},
|
||||
{"x":12.75, "y":1.25},
|
||||
{"x":13.75, "y":1.25},
|
||||
{"x":15, "y":1.25},
|
||||
{"x":16, "y":1.25},
|
||||
{"x":17, "y":1.25},
|
||||
{"x":18, "y":1.25, "w":1.5},
|
||||
{"x":0, "y":2.15},
|
||||
{"x":1.25, "y":2.25, "w":1.75},
|
||||
{"x":3, "y":2.25},
|
||||
{"x":4.5, "y":2.25},
|
||||
{"x":5.5, "y":2.25},
|
||||
{"x":6.5, "y":2.25},
|
||||
{"x":7.5, "y":2.25},
|
||||
{"x":11, "y":2.25},
|
||||
{"x":12, "y":2.25},
|
||||
{"x":13, "y":2.25},
|
||||
{"x":14, "y":2.25},
|
||||
{"x":15.5, "y":2.25},
|
||||
{"x":16.5, "y":2.25},
|
||||
{"x":17.5, "y":2.25, "w":2.25},
|
||||
{"x":1, "y":3.25, "w":2.25},
|
||||
{"x":3.25, "y":3.25},
|
||||
{"x":5, "y":3.25},
|
||||
{"x":6, "y":3.25},
|
||||
{"x":7, "y":3.25},
|
||||
{"x":8, "y":3.25},
|
||||
{"x":10.5, "y":3.25},
|
||||
{"x":11.5, "y":3.25},
|
||||
{"x":12.5, "y":3.25},
|
||||
{"x":13.5, "y":3.25},
|
||||
{"x":15.25, "y":3.25},
|
||||
{"x":16.25, "y":3.25},
|
||||
{"x":17.25, "y":3.25, "w":1.75},
|
||||
{"x":19, "y":3.25},
|
||||
{"x":1, "y":4.25, "w":1.5},
|
||||
{"x":4.75, "y":4.25, "w":1.5},
|
||||
{"x":6.25, "y":4.25, "w":2},
|
||||
{"x":8.25, "y":4.25, "w":1.25},
|
||||
{"x":10.5, "y":4.25, "w":2.75},
|
||||
{"x":13.25, "y":4.25, "w":1.5},
|
||||
{"x":18.25, "y":4.25, "w":1.5}]
|
||||
}
|
||||
}
|
||||
}
|
||||
33
keyboards/nightly_boards/alter_lite/keymaps/default/keymap.c
Normal file
33
keyboards/nightly_boards/alter_lite/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,33 @@
|
||||
/* Copyright 2020 DeskDaily
|
||||
*
|
||||
* 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
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
|
||||
KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_PGDN, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
MO(1), KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL
|
||||
),
|
||||
[1] = LAYOUT(
|
||||
RESET, _______, KC_F1 , KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
|
||||
KC_BRIU, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______ , _______, _______,
|
||||
KC_BRID, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______,_______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, _______, _______,
|
||||
_______, KC_RGUI, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
||||
47
keyboards/nightly_boards/alter_lite/keymaps/via/keymap.c
Normal file
47
keyboards/nightly_boards/alter_lite/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,47 @@
|
||||
/* Copyright 2020 DeskDaily
|
||||
*
|
||||
* 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
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
|
||||
KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_PGDN, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
MO(1), KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL
|
||||
),
|
||||
[1] = LAYOUT(
|
||||
RESET, KC_TRNS, KC_F1 , KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
|
||||
KC_BRIU, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS,
|
||||
KC_BRID, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_RGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[2] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[3] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
};
|
||||
2
keyboards/nightly_boards/alter_lite/keymaps/via/rules.mk
Normal file
2
keyboards/nightly_boards/alter_lite/keymaps/via/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
||||
20
keyboards/nightly_boards/alter_lite/readme.md
Normal file
20
keyboards/nightly_boards/alter_lite/readme.md
Normal file
@@ -0,0 +1,20 @@
|
||||
#DeskDaily Alter
|
||||
|
||||

|
||||
|
||||
An Alice layout keyboard. This Lite version have no underglow
|
||||
|
||||
* Keyboard Maintainer: [DeskDaily](https://github.com/DeskDaily)
|
||||
* Hardware Supported: atmega32u4
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make nightly_boards/alter_lite:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make nightly_boards/alter_lite:default:flash
|
||||
|
||||
You can enter bootloader mode by pressing the physical reset button at the front of the pcb (near the right spacebar) or by holding the upper left key while plugging the usb cable.
|
||||
|
||||
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).
|
||||
17
keyboards/nightly_boards/alter_lite/rules.mk
Normal file
17
keyboards/nightly_boards/alter_lite/rules.mk
Normal file
@@ -0,0 +1,17 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
17
keyboards/nightly_boards/conde60/conde60.c
Normal file
17
keyboards/nightly_boards/conde60/conde60.c
Normal file
@@ -0,0 +1,17 @@
|
||||
/* Copyright 2022 DeskDaily
|
||||
*
|
||||
* 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 "conde60.h"
|
||||
42
keyboards/nightly_boards/conde60/conde60.h
Normal file
42
keyboards/nightly_boards/conde60/conde60.h
Normal file
@@ -0,0 +1,42 @@
|
||||
/* Copyright 2022 DeskDaily
|
||||
*
|
||||
* 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"
|
||||
|
||||
/* This is a shortcut to help you visually see your layout.
|
||||
*
|
||||
* The first section contains all of the arguments representing the physical
|
||||
* layout of the board and position of the keys.
|
||||
*
|
||||
* The second converts the arguments into a two-dimensional array which
|
||||
* represents the switch matrix.
|
||||
*/
|
||||
|
||||
#define LAYOUT( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||
K40, K41, K42, K44, K46, K47, K49, K4B, K4C, K4D \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
|
||||
{ K40, K41, K42, KC_NO, K44, KC_NO, K46, K47, KC_NO, K49, KC_NO, K4B, K4C, K4D }, \
|
||||
}
|
||||
68
keyboards/nightly_boards/conde60/config.h
Normal file
68
keyboards/nightly_boards/conde60/config.h
Normal file
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
Copyright 2022 DeskDaily
|
||||
|
||||
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 0xD812
|
||||
#define PRODUCT_ID 0x0015
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER DeskDaily
|
||||
#define PRODUCT Conde60
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 14
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
#define MATRIX_ROW_PINS { B1, B2, F0, F1, F4 }
|
||||
#define MATRIX_COL_PINS { B0, B3, B7, B6, C6, C7, F7, F6, F5, D4, D6, D7, B4, B5 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
#define RGB_DI_PIN D5
|
||||
#ifdef RGB_DI_PIN
|
||||
#define RGBLED_NUM 12
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
|
||||
#endif
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||
//#define MATRIX_HAS_GHOST
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
|
||||
80
keyboards/nightly_boards/conde60/info.json
Normal file
80
keyboards/nightly_boards/conde60/info.json
Normal file
@@ -0,0 +1,80 @@
|
||||
{
|
||||
"keyboard_name": "Conde60",
|
||||
"url": "",
|
||||
"maintainer": "DeskDaily",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"x":1, "y":0},
|
||||
{"x":2, "y":0},
|
||||
{"x":3, "y":0},
|
||||
{"x":4, "y":0},
|
||||
{"x":5, "y":0},
|
||||
{"x":6, "y":0},
|
||||
{"x":7, "y":0},
|
||||
{"x":8, "y":0},
|
||||
{"x":9, "y":0},
|
||||
{"x":10, "y":0},
|
||||
{"x":11, "y":0},
|
||||
{"x":12, "y":0},
|
||||
{"x":13, "y":0},
|
||||
{"x":14, "y":0},
|
||||
|
||||
{"x":0, "y":1, "w":1.5},
|
||||
{"x":1.5, "y":1},
|
||||
{"x":2.5, "y":1},
|
||||
{"x":3.5, "y":1},
|
||||
{"x":4.5, "y":1},
|
||||
{"x":5.5, "y":1},
|
||||
{"x":6.5, "y":1},
|
||||
{"x":7.5, "y":1},
|
||||
{"x":8.5, "y":1},
|
||||
{"x":9.5, "y":1},
|
||||
{"x":10.5, "y":1},
|
||||
{"x":11.5, "y":1},
|
||||
{"x":12.5, "y":1},
|
||||
{"x":13.5, "y":1, "w":1.5},
|
||||
|
||||
{"x":0, "y":2, "w":1.75},
|
||||
{"x":1.75, "y":2},
|
||||
{"x":2.75, "y":2},
|
||||
{"x":3.75, "y":2},
|
||||
{"x":4.75, "y":2},
|
||||
{"x":5.75, "y":2},
|
||||
{"x":6.75, "y":2},
|
||||
{"x":7.75, "y":2},
|
||||
{"x":8.75, "y":2},
|
||||
{"x":9.75, "y":2},
|
||||
{"x":10.75, "y":2},
|
||||
{"x":11.75, "y":2},
|
||||
{"x":12.75, "y":2, "w":2.25},
|
||||
|
||||
{"x":0, "y":3, "w":1.25},
|
||||
{"x":1.25, "y":3},
|
||||
{"x":2.25, "y":3},
|
||||
{"x":3.25, "y":3},
|
||||
{"x":4.25, "y":3},
|
||||
{"x":5.25, "y":3},
|
||||
{"x":6.25, "y":3},
|
||||
{"x":7.25, "y":3},
|
||||
{"x":8.25, "y":3},
|
||||
{"x":9.25, "y":3},
|
||||
{"x":10.25, "y":3},
|
||||
{"x":11.25, "y":3},
|
||||
{"x":12.25, "y":3, "w":1.75},
|
||||
{"x":14, "y":3},
|
||||
|
||||
{"x":0, "y":4, "w":1.5},
|
||||
{"x":1.5, "y":4},
|
||||
{"x":2.5, "y":4, "w":1.5},
|
||||
{"x":4, "y":4, "w":2.25},
|
||||
{"x":6.25, "y":4},
|
||||
{"x":7.25, "y":4},
|
||||
{"x":8.25, "y":4, "w":2.75},
|
||||
{"x":11, "y":4, "w":1.5},
|
||||
{"x":12.5, "y":4},
|
||||
{"x":13.5, "y":4, "w":1.5}]
|
||||
}
|
||||
}
|
||||
}
|
||||
53
keyboards/nightly_boards/conde60/keymaps/default/keymap.c
Normal file
53
keyboards/nightly_boards/conde60/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,53 @@
|
||||
/* Copyright 2020 DeskDaily
|
||||
*
|
||||
* 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
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
[1] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[2] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[3] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
|
||||
};
|
||||
53
keyboards/nightly_boards/conde60/keymaps/via/keymap.c
Normal file
53
keyboards/nightly_boards/conde60/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,53 @@
|
||||
/* Copyright 2020 DeskDaily
|
||||
*
|
||||
* 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
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
[1] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[2] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[3] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
|
||||
};
|
||||
2
keyboards/nightly_boards/conde60/keymaps/via/rules.mk
Normal file
2
keyboards/nightly_boards/conde60/keymaps/via/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
||||
20
keyboards/nightly_boards/conde60/readme.md
Normal file
20
keyboards/nightly_boards/conde60/readme.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# DeskDaily Conde60
|
||||
|
||||

|
||||
|
||||
A single layout 60% pcb with a Tsangan bottom row and split spacabars
|
||||
|
||||
* Keyboard Maintainer: [DeskDaily](https://github.com/DeskDaily)
|
||||
* Hardware Supported: Atmega32u4
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make nightly_boards/conde60:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make nightly_boards/conde60:default:flash
|
||||
|
||||
You can enter bootloader mode by pressing the physical reset button at the back of the pcb or by holding the escape key while plugging the usb cable.
|
||||
|
||||
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).
|
||||
18
keyboards/nightly_boards/conde60/rules.mk
Normal file
18
keyboards/nightly_boards/conde60/rules.mk
Normal file
@@ -0,0 +1,18 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||
LTO_ENABLE = yes
|
||||
60
keyboards/nightly_boards/paraluman/config.h
Normal file
60
keyboards/nightly_boards/paraluman/config.h
Normal file
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
Copyright 2020 DeskDaily
|
||||
|
||||
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 0xD812
|
||||
#define PRODUCT_ID 0x0012
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER DeskDaily
|
||||
#define PRODUCT Paraluman
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 14
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
#define MATRIX_ROW_PINS { D0, F7, B1, B0, E6 }
|
||||
#define MATRIX_COL_PINS { B2, F6, F5, F4, F1, F0, D4, D6, D7, B4, B5, B6, C6, C7 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||
//#define MATRIX_HAS_GHOST
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
148
keyboards/nightly_boards/paraluman/info.json
Normal file
148
keyboards/nightly_boards/paraluman/info.json
Normal file
@@ -0,0 +1,148 @@
|
||||
{
|
||||
"keyboard_name": "Paraluman",
|
||||
"url": "",
|
||||
"maintainer": "DeskDaily",
|
||||
"layouts": {
|
||||
"LAYOUT_60_ansi_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"x":1, "y":0},
|
||||
{"x":2, "y":0},
|
||||
{"x":3, "y":0},
|
||||
{"x":4, "y":0},
|
||||
{"x":5, "y":0},
|
||||
{"x":6, "y":0},
|
||||
{"x":7, "y":0},
|
||||
{"x":8, "y":0},
|
||||
{"x":9, "y":0},
|
||||
{"x":10, "y":0},
|
||||
{"x":11, "y":0},
|
||||
{"x":12, "y":0},
|
||||
{"x":13, "y":0},
|
||||
{"x":14, "y":0},
|
||||
|
||||
{"x":0, "y":1, "w":1.5},
|
||||
{"x":1.5, "y":1},
|
||||
{"x":2.5, "y":1},
|
||||
{"x":3.5, "y":1},
|
||||
{"x":4.5, "y":1},
|
||||
{"x":5.5, "y":1},
|
||||
{"x":6.5, "y":1},
|
||||
{"x":7.5, "y":1},
|
||||
{"x":8.5, "y":1},
|
||||
{"x":9.5, "y":1},
|
||||
{"x":10.5, "y":1},
|
||||
{"x":11.5, "y":1},
|
||||
{"x":12.5, "y":1},
|
||||
{"x":13.5, "y":1, "w":1.5},
|
||||
|
||||
{"x":0, "y":2, "w":1.75},
|
||||
{"x":1.75, "y":2},
|
||||
{"x":2.75, "y":2},
|
||||
{"x":3.75, "y":2},
|
||||
{"x":4.75, "y":2},
|
||||
{"x":5.75, "y":2},
|
||||
{"x":6.75, "y":2},
|
||||
{"x":7.75, "y":2},
|
||||
{"x":8.75, "y":2},
|
||||
{"x":9.75, "y":2},
|
||||
{"x":10.75, "y":2},
|
||||
{"x":11.75, "y":2},
|
||||
{"x":12.75, "y":2, "w":2.25},
|
||||
|
||||
{"x":0, "y":3, "w":2.25},
|
||||
{"x":2.25, "y":3},
|
||||
{"x":3.25, "y":3},
|
||||
{"x":4.25, "y":3},
|
||||
{"x":5.25, "y":3},
|
||||
{"x":6.25, "y":3},
|
||||
{"x":7.25, "y":3},
|
||||
{"x":8.25, "y":3},
|
||||
{"x":9.25, "y":3},
|
||||
{"x":10.25, "y":3},
|
||||
{"x":11.25, "y":3},
|
||||
{"x":12.25, "y":3, "w":1.75},
|
||||
{"x":14, "y":3},
|
||||
|
||||
{"x":0, "y":4, "w":1.25},
|
||||
{"x":1.25, "y":4, "w":1.25},
|
||||
{"x":2.5, "y":4, "w":1.25},
|
||||
{"x":3.75, "y":4, "w":6.25},
|
||||
{"x":10, "y":4, "w":1.25},
|
||||
{"x":11.25, "y":4, "w":1.25},
|
||||
{"x":12.5, "y":4, "w":1.25},
|
||||
{"x":13.75, "y":4, "w":1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_split_bs_rshift_tsangan": {
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"x":1, "y":0},
|
||||
{"x":2, "y":0},
|
||||
{"x":3, "y":0},
|
||||
{"x":4, "y":0},
|
||||
{"x":5, "y":0},
|
||||
{"x":6, "y":0},
|
||||
{"x":7, "y":0},
|
||||
{"x":8, "y":0},
|
||||
{"x":9, "y":0},
|
||||
{"x":10, "y":0},
|
||||
{"x":11, "y":0},
|
||||
{"x":12, "y":0},
|
||||
{"x":13, "y":0},
|
||||
{"x":14, "y":0},
|
||||
|
||||
{"x":0, "y":1, "w":1.5},
|
||||
{"x":1.5, "y":1},
|
||||
{"x":2.5, "y":1},
|
||||
{"x":3.5, "y":1},
|
||||
{"x":4.5, "y":1},
|
||||
{"x":5.5, "y":1},
|
||||
{"x":6.5, "y":1},
|
||||
{"x":7.5, "y":1},
|
||||
{"x":8.5, "y":1},
|
||||
{"x":9.5, "y":1},
|
||||
{"x":10.5, "y":1},
|
||||
{"x":11.5, "y":1},
|
||||
{"x":12.5, "y":1},
|
||||
{"x":13.5, "y":1, "w":1.5},
|
||||
|
||||
{"x":0, "y":2, "w":1.75},
|
||||
{"x":1.75, "y":2},
|
||||
{"x":2.75, "y":2},
|
||||
{"x":3.75, "y":2},
|
||||
{"x":4.75, "y":2},
|
||||
{"x":5.75, "y":2},
|
||||
{"x":6.75, "y":2},
|
||||
{"x":7.75, "y":2},
|
||||
{"x":8.75, "y":2},
|
||||
{"x":9.75, "y":2},
|
||||
{"x":10.75, "y":2},
|
||||
{"x":11.75, "y":2},
|
||||
{"x":12.75, "y":2, "w":2.25},
|
||||
|
||||
{"x":0, "y":3, "w":2.25},
|
||||
{"x":2.25, "y":3},
|
||||
{"x":3.25, "y":3},
|
||||
{"x":4.25, "y":3},
|
||||
{"x":5.25, "y":3},
|
||||
{"x":6.25, "y":3},
|
||||
{"x":7.25, "y":3},
|
||||
{"x":8.25, "y":3},
|
||||
{"x":9.25, "y":3},
|
||||
{"x":10.25, "y":3},
|
||||
{"x":11.25, "y":3},
|
||||
{"x":12.25, "y":3, "w":1.75},
|
||||
{"x":14, "y":3},
|
||||
|
||||
{"x":0, "y":4, "w":1.5},
|
||||
{"x":1.5, "y":4},
|
||||
{"x":2.5, "y":4, "w":1.5},
|
||||
{"x":4, "y":4, "w":7},
|
||||
{"x":11, "y":4, "w":1.5},
|
||||
{"x":12.5, "y":4},
|
||||
{"x":13.5, "y":4, "w":1.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
34
keyboards/nightly_boards/paraluman/keymaps/default/keymap.c
Normal file
34
keyboards/nightly_boards/paraluman/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,34 @@
|
||||
/* Copyright 2020 DeskDaily
|
||||
*
|
||||
* 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
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Base */
|
||||
[0] = LAYOUT_60_ansi_split_bs_rshift(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT,
|
||||
KC_LCTL, MO(1), KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RGUI, KC_RCTL
|
||||
),
|
||||
[1] = LAYOUT_60_ansi_split_bs_rshift(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_PGDN, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
34
keyboards/nightly_boards/paraluman/keymaps/tsangan/keymap.c
Normal file
34
keyboards/nightly_boards/paraluman/keymaps/tsangan/keymap.c
Normal file
@@ -0,0 +1,34 @@
|
||||
/* Copyright 2020 DeskDaily
|
||||
*
|
||||
* 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
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Base */
|
||||
[0] = LAYOUT_60_ansi_split_bs_rshift_tsangan(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT,
|
||||
KC_LCTL, MO(1), KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
[1] = LAYOUT_60_ansi_split_bs_rshift_tsangan(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_PGDN, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
48
keyboards/nightly_boards/paraluman/keymaps/via/keymap.c
Normal file
48
keyboards/nightly_boards/paraluman/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,48 @@
|
||||
/* Copyright 2020 DeskDaily
|
||||
*
|
||||
* 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
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Base */
|
||||
[0] = LAYOUT_60_ansi_split_bs_rshift(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_LSFT,
|
||||
KC_LCTL, MO(1), KC_LALT, KC_SPC, KC_LALT, KC_APP, KC_RGUI, KC_LCTL
|
||||
),
|
||||
[1] = LAYOUT_60_ansi_split_bs_rshift(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, KC_F12, KC_DEL, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_PGDN, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[2] = LAYOUT_60_ansi_split_bs_rshift(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, KC_F12, KC_DEL, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_PGDN, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[3] = LAYOUT_60_ansi_split_bs_rshift(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, KC_F12, KC_DEL, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_PGDN, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
2
keyboards/nightly_boards/paraluman/keymaps/via/rules.mk
Normal file
2
keyboards/nightly_boards/paraluman/keymaps/via/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
||||
17
keyboards/nightly_boards/paraluman/paraluman.c
Normal file
17
keyboards/nightly_boards/paraluman/paraluman.c
Normal file
@@ -0,0 +1,17 @@
|
||||
/* Copyright 2020 DeskDaily
|
||||
*
|
||||
* 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 "paraluman.h"
|
||||
57
keyboards/nightly_boards/paraluman/paraluman.h
Normal file
57
keyboards/nightly_boards/paraluman/paraluman.h
Normal file
@@ -0,0 +1,57 @@
|
||||
/* Copyright 2020 DeskDaily
|
||||
*
|
||||
* 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"
|
||||
|
||||
/* This is a shortcut to help you visually see your layout.
|
||||
*
|
||||
* The first section contains all of the arguments representing the physical
|
||||
* layout of the board and position of the keys.
|
||||
*
|
||||
* The second converts the arguments into a two-dimensional array which
|
||||
* represents the switch matrix.
|
||||
*/
|
||||
#define LAYOUT_60_ansi_split_bs_rshift( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
|
||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||
K40, K42, K43, K47, K4A, K4B, K4C, K4D \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
|
||||
{ K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
|
||||
{ K40, KC_NO, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, K4C, K4D }, \
|
||||
}
|
||||
|
||||
#define LAYOUT_60_ansi_split_bs_rshift_tsangan( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
|
||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||
K40, K42, K43, K47, K4B, K4C, K4D \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
|
||||
{ K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
|
||||
{ K40, KC_NO, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D }, \
|
||||
{ KC_NO, KC_NO } \
|
||||
}
|
||||
|
||||
20
keyboards/nightly_boards/paraluman/readme.md
Normal file
20
keyboards/nightly_boards/paraluman/readme.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# DeskDaily Paraluman
|
||||
|
||||

|
||||
|
||||
A 60% pcb for the Paraluman keyboard case
|
||||
|
||||
* Keyboard Maintainer: [DeskDaily](https://github.com/DeskDaily)
|
||||
* Hardware Supported: Atmega32u4
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make nightly_boards/paraluman:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make nightly_boards/paraluman:default:flash
|
||||
|
||||
You can enter bootloader mode by pressing the physical reset button at the back of the pcb or by holding the escape key while plugging the usb cable.
|
||||
|
||||
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).
|
||||
18
keyboards/nightly_boards/paraluman/rules.mk
Normal file
18
keyboards/nightly_boards/paraluman/rules.mk
Normal file
@@ -0,0 +1,18 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
LTO_ENABLE = yes
|
||||
31
keyboards/tominabox1/bigboy/bigboy.c
Executable file
31
keyboards/tominabox1/bigboy/bigboy.c
Executable file
@@ -0,0 +1,31 @@
|
||||
/* Copyright 2022 tominabox1
|
||||
*
|
||||
* 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 "bigboy.h"
|
||||
|
||||
#ifdef ENCODER_ENABLE
|
||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||
if (!encoder_update_user(index, clockwise)) { return false; }
|
||||
if (index == 0) {
|
||||
if (clockwise) {
|
||||
tap_code_delay(KC_VOLU, 10);
|
||||
} else {
|
||||
tap_code_delay(KC_VOLD, 10);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endif /* ENCODER_ENABLE */
|
||||
34
keyboards/tominabox1/bigboy/bigboy.h
Executable file
34
keyboards/tominabox1/bigboy/bigboy.h
Executable file
@@ -0,0 +1,34 @@
|
||||
/* Copyright 2022 tominabox1
|
||||
*
|
||||
* 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( \
|
||||
K00, K01, K02, \
|
||||
K10, K11, K12 \
|
||||
) { \
|
||||
{ K00, K01, K02, }, \
|
||||
{ K10, K11, K12 }, \
|
||||
}
|
||||
|
||||
#define LAYOUT_2us( \
|
||||
K00, K01, K02 \
|
||||
) { \
|
||||
{ K00, K01, K02 }, \
|
||||
}
|
||||
60
keyboards/tominabox1/bigboy/config.h
Executable file
60
keyboards/tominabox1/bigboy/config.h
Executable file
@@ -0,0 +1,60 @@
|
||||
/* Copyright 2022 tominabox1
|
||||
*
|
||||
* 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 0x7431
|
||||
#define PRODUCT_ID 0x6262
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER tominabox1
|
||||
#define PRODUCT BigBoy
|
||||
|
||||
/* key matrix size */
|
||||
#define DIRECT_PINS { \
|
||||
{ D0, B1, B0 }, \
|
||||
{ B7, B2, B3 } \
|
||||
}
|
||||
|
||||
#define UNUSED_PINS
|
||||
|
||||
#define ENCODERS_PAD_A { C6 }
|
||||
#define ENCODERS_PAD_B { B6 }
|
||||
#define ENCODER_RESOLUTION 2
|
||||
|
||||
#define RGB_DI_PIN B5
|
||||
|
||||
#ifdef RGB_DI_PIN
|
||||
|
||||
#define RGBLED_NUM 5
|
||||
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||
#define RGBLIGHT_EFFECT_SNAKE
|
||||
#define RGBLIGHT_EFFECT_KNIGHT
|
||||
#define RGBLIGHT_EFFECT_CHRISTMAS
|
||||
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
#define RGBLIGHT_EFFECT_RGB_TEST
|
||||
#define RGBLIGHT_EFFECT_ALTERNATING
|
||||
#define RGBLIGHT_EFFECT_TWINKLE
|
||||
|
||||
#endif /* RGB_DI_PIN */
|
||||
13
keyboards/tominabox1/bigboy/info.json
Normal file
13
keyboards/tominabox1/bigboy/info.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"keyboard_name": "BigBoy",
|
||||
"url": "",
|
||||
"maintainer": "tominabox1",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"1,0", "x":0, "y":1}, {"label":"1,1", "x":1, "y":1}, {"label":"1,2", "x":2, "y":1}]
|
||||
},
|
||||
"LAYOUT_2us": {
|
||||
"layout": [{"label":"0,0", "x":0, "y":0, "h":2}, {"label":"0,1", "x":1, "y":0, "h":2}, {"label":"0,2", "x":2, "y":0, "h":2}]
|
||||
}
|
||||
}
|
||||
}
|
||||
34
keyboards/tominabox1/bigboy/keymaps/default/keymap.c
Executable file
34
keyboards/tominabox1/bigboy/keymaps/default/keymap.c
Executable file
@@ -0,0 +1,34 @@
|
||||
/* Copyright 2022 tominabox1
|
||||
*
|
||||
* 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
|
||||
|
||||
#define LT1_SPC LT(1, KC_SPC)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
KC_1, KC_2, KC_3,
|
||||
KC_4, KC_5, MO(1)
|
||||
),
|
||||
[1] = LAYOUT(
|
||||
QK_BOOT, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
[2] = LAYOUT(
|
||||
KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
};
|
||||
31
keyboards/tominabox1/bigboy/keymaps/default_2u/keymap.c
Executable file
31
keyboards/tominabox1/bigboy/keymaps/default_2u/keymap.c
Executable file
@@ -0,0 +1,31 @@
|
||||
/* Copyright 2022 tominabox1
|
||||
*
|
||||
* 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
|
||||
|
||||
#define LT1_SPC LT(1, KC_SPC)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_2us(
|
||||
KC_1, KC_2, MO(1)
|
||||
),
|
||||
[1] = LAYOUT_2us(
|
||||
QK_BOOT, KC_NO, KC_NO
|
||||
),
|
||||
[2] = LAYOUT_2us(
|
||||
KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
};
|
||||
20
keyboards/tominabox1/bigboy/readme.md
Executable file
20
keyboards/tominabox1/bigboy/readme.md
Executable file
@@ -0,0 +1,20 @@
|
||||
# BigBoy
|
||||
|
||||
A macropad designed by dingusxmcgee_ and tominabox1.
|
||||
|
||||

|
||||
|
||||
* Keyboard Maintainer: [tominabox1](https://github.com/tominabox1)
|
||||
* Hardware Supported: BigBoy
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make bigboy:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make bigboy:default:flash
|
||||
|
||||
**Reset Key:** To enter the bootloader, either push the RESET button on the PCB, hold the top left key when plugging in, or the a programmed button on the keymap.
|
||||
|
||||
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).
|
||||
19
keyboards/tominabox1/bigboy/rules.mk
Executable file
19
keyboards/tominabox1/bigboy/rules.mk
Executable file
@@ -0,0 +1,19 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
ENCODER_ENABLE = yes
|
||||
@@ -52,7 +52,11 @@ static void __attribute__((noinline, unused)) handleKeycodeRGBMode(const uint8_t
|
||||
*/
|
||||
bool process_rgb(const uint16_t keycode, const keyrecord_t *record) {
|
||||
// need to trigger on key-up for edge-case issue
|
||||
#ifndef RGB_TRIGGER_ON_KEYDOWN
|
||||
if (!record->event.pressed) {
|
||||
#else
|
||||
if (record->event.pressed) {
|
||||
#endif
|
||||
#if (defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)) || (defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES))
|
||||
uint8_t shifted = get_mods() & MOD_MASK_SHIFT;
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user