Added wireless support; Added Lemokey L3; Added Keychron V1 Max
This commit is contained in:
parent
9539f135d8
commit
4ae5990fcc
2
.gitmodules
vendored
2
.gitmodules
vendored
@ -1,6 +1,6 @@
|
|||||||
[submodule "lib/chibios"]
|
[submodule "lib/chibios"]
|
||||||
path = lib/chibios
|
path = lib/chibios
|
||||||
url = https://github.com/qmk/ChibiOS
|
url = https://github.com/Keychron/ChibiOS.git
|
||||||
branch = master
|
branch = master
|
||||||
[submodule "lib/chibios-contrib"]
|
[submodule "lib/chibios-contrib"]
|
||||||
path = lib/chibios-contrib
|
path = lib/chibios-contrib
|
||||||
|
@ -339,7 +339,7 @@ LED_MATRIX_DRIVER := snled27351
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
LED_MATRIX_ENABLE ?= no
|
LED_MATRIX_ENABLE ?= no
|
||||||
VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 custom
|
VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 snled27351_spi custom
|
||||||
|
|
||||||
ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
|
ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
|
||||||
ifeq ($(filter $(LED_MATRIX_DRIVER),$(VALID_LED_MATRIX_TYPES)),)
|
ifeq ($(filter $(LED_MATRIX_DRIVER),$(VALID_LED_MATRIX_TYPES)),)
|
||||||
@ -428,6 +428,12 @@ ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
|
|||||||
SRC += snled27351-simple.c
|
SRC += snled27351-simple.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(strip $(LED_MATRIX_DRIVER)), snled27351_spi)
|
||||||
|
SPI_DRIVER_REQUIRED = yes
|
||||||
|
COMMON_VPATH += $(DRIVER_PATH)/led
|
||||||
|
SRC += snled27351-simple-spi.c
|
||||||
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Deprecated driver names - do not use
|
# Deprecated driver names - do not use
|
||||||
@ -440,7 +446,7 @@ endif
|
|||||||
|
|
||||||
RGB_MATRIX_ENABLE ?= no
|
RGB_MATRIX_ENABLE ?= no
|
||||||
|
|
||||||
VALID_RGB_MATRIX_TYPES := aw20216s is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 ws2812 custom
|
VALID_RGB_MATRIX_TYPES := aw20216s is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 snled27351_spi ws2812 custom
|
||||||
ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
|
ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
|
||||||
ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),)
|
ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),)
|
||||||
$(call CATASTROPHIC_ERROR,Invalid RGB_MATRIX_DRIVER,RGB_MATRIX_DRIVER="$(RGB_MATRIX_DRIVER)" is not a valid matrix type)
|
$(call CATASTROPHIC_ERROR,Invalid RGB_MATRIX_DRIVER,RGB_MATRIX_DRIVER="$(RGB_MATRIX_DRIVER)" is not a valid matrix type)
|
||||||
@ -535,6 +541,12 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
|
|||||||
SRC += snled27351.c
|
SRC += snled27351.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(strip $(RGB_MATRIX_DRIVER)), snled27351_spi)
|
||||||
|
SPI_DRIVER_REQUIRED = yes
|
||||||
|
COMMON_VPATH += $(DRIVER_PATH)/led
|
||||||
|
SRC += snled27351-spi.c
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(strip $(RGB_MATRIX_DRIVER)), ws2812)
|
ifeq ($(strip $(RGB_MATRIX_DRIVER)), ws2812)
|
||||||
WS2812_DRIVER_REQUIRED := yes
|
WS2812_DRIVER_REQUIRED := yes
|
||||||
endif
|
endif
|
||||||
|
235
drivers/led/snled27351-simple-spi.c
Normal file
235
drivers/led/snled27351-simple-spi.c
Normal file
@ -0,0 +1,235 @@
|
|||||||
|
/* Copyright 2021 @ Keychron (https://www.keychron.com)
|
||||||
|
*
|
||||||
|
* 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 "snled27351-simple-spi.h"
|
||||||
|
#include "spi_master.h"
|
||||||
|
|
||||||
|
#define SNLED27351_PWM_REGISTER_COUNT 192
|
||||||
|
#define SNLED27351_LED_CONTROL_REGISTER_COUNT 24
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef SNLED27351_PHASE_CHANNEL
|
||||||
|
# define SNLED27351_PHASE_CHANNEL MSKPHASE_12CHANNEL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SNLED27351_CURRENT_TUNE
|
||||||
|
# define SNLED27351_CURRENT_TUNE \
|
||||||
|
{ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define SNLED27351_WRITE (0 << 7)
|
||||||
|
#define SNLED27351_READ (1 << 7)
|
||||||
|
#define SNLED27351_PATTERN (2 << 4)
|
||||||
|
|
||||||
|
#ifdef DRIVER_CS_PINS
|
||||||
|
pin_t cs_pins[] = DRIVER_CS_PINS;
|
||||||
|
#else
|
||||||
|
error "no DRIVER_CS_PINS defined"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// These buffers match the snled27351 PWM registers.
|
||||||
|
// The control buffers match the PG0 LED On/Off registers.
|
||||||
|
// Storing them like this is optimal for I2C transfers to the registers.
|
||||||
|
// We could optimize this and take out the unused registers from these
|
||||||
|
// buffers and the transfers in snled27351_write_pwm_buffer() but it's
|
||||||
|
// probably not worth the extra complexity.
|
||||||
|
uint8_t g_pwm_buffer[SNLED27351_DRIVER_COUNT][SNLED27351_PWM_REGISTER_COUNT];
|
||||||
|
bool g_pwm_buffer_update_required[SNLED27351_DRIVER_COUNT] = {false};
|
||||||
|
|
||||||
|
uint8_t g_led_control_registers[SNLED27351_DRIVER_COUNT][SNLED27351_LED_CONTROL_REGISTER_COUNT] = {0};
|
||||||
|
bool g_led_control_registers_update_required[SNLED27351_DRIVER_COUNT] = {false};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
bool snled27351_write(uint8_t index, uint8_t page, uint8_t reg, uint8_t *data, uint8_t len) {
|
||||||
|
static uint8_t spi_transfer_buffer[2] = {0};
|
||||||
|
|
||||||
|
if (index > ARRAY_SIZE(((pin_t[])DRIVER_CS_PINS)) - 1) return false;
|
||||||
|
|
||||||
|
if (!spi_start(cs_pins[index], false, 0, SNLED23751_SPI_DIVISOR)) {
|
||||||
|
spi_stop();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
spi_transfer_buffer[0] = SNLED27351_WRITE | SNLED27351_PATTERN | (page & 0x0F);
|
||||||
|
spi_transfer_buffer[1] = reg;
|
||||||
|
|
||||||
|
if (spi_transmit(spi_transfer_buffer, 2) != SPI_STATUS_SUCCESS) {
|
||||||
|
spi_stop();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (spi_transmit(data, len) != SPI_STATUS_SUCCESS) {
|
||||||
|
spi_stop();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
spi_stop();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool snled27351_write_register(uint8_t index, uint8_t page, uint8_t reg, uint8_t data) {
|
||||||
|
return snled27351_write(index, page, reg, &data, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool snled27351_write_pwm_buffer(uint8_t index, uint8_t *pwm_buffer) {
|
||||||
|
if (g_pwm_buffer_update_required[index]) {
|
||||||
|
snled27351_write(index, LED_PWM_PAGE, 0, g_pwm_buffer[index], SNLED27351_PWM_REGISTER_COUNT);
|
||||||
|
}
|
||||||
|
g_pwm_buffer_update_required[index] = false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_init_drivers(void) {
|
||||||
|
#if defined(LED_DRIVER_SHUTDOWN_PIN)
|
||||||
|
setPinOutput(LED_DRIVER_SHUTDOWN_PIN);
|
||||||
|
writePinHigh(LED_DRIVER_SHUTDOWN_PIN);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
spi_init();
|
||||||
|
|
||||||
|
for (uint8_t i = 0; i < SNLED27351_DRIVER_COUNT; i++)
|
||||||
|
snled27351_init(i);
|
||||||
|
|
||||||
|
for (int index = 0; index < SNLED27351_LED_COUNT; index++) {
|
||||||
|
snled27351_set_led_control_register(index, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint8_t i = 0; i < SNLED27351_DRIVER_COUNT; i++)
|
||||||
|
snled27351_update_led_control_registers(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_init(uint8_t index) {
|
||||||
|
setPinOutput(cs_pins[index]);
|
||||||
|
writePinHigh(cs_pins[index]);
|
||||||
|
// Setting LED driver to shutdown mode
|
||||||
|
snled27351_write_register(index, FUNCTION_PAGE, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE);
|
||||||
|
// Setting internal channel pulldown/pullup
|
||||||
|
snled27351_write_register(index, FUNCTION_PAGE, PDU_REG, MSKSET_CA_CB_CHANNEL);
|
||||||
|
// Select number of scan phase
|
||||||
|
snled27351_write_register(index, FUNCTION_PAGE, SCAN_PHASE_REG, SNLED27351_PHASE_CHANNEL);
|
||||||
|
// Setting PWM Delay Phase
|
||||||
|
snled27351_write_register(index, FUNCTION_PAGE, SLEW_RATE_CONTROL_MODE1_REG, MSKPWM_DELAY_PHASE_ENABLE);
|
||||||
|
// Setting Driving/Sinking Channel Slew Rate
|
||||||
|
snled27351_write_register(index, FUNCTION_PAGE, SLEW_RATE_CONTROL_MODE2_REG, MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_ENABLE);
|
||||||
|
// Setting Iref
|
||||||
|
snled27351_write_register(index, FUNCTION_PAGE, SOFTWARE_SLEEP_REG, MSKSLEEP_DISABLE);
|
||||||
|
|
||||||
|
// Set LED CONTROL PAGE (Page 0)
|
||||||
|
uint8_t on_off_reg[LED_CONTROL_ON_OFF_LENGTH] = {0};
|
||||||
|
snled27351_write(index, LED_CONTROL_PAGE, 0, on_off_reg, LED_CONTROL_ON_OFF_LENGTH);
|
||||||
|
|
||||||
|
// Set PWM PAGE (Page 1)
|
||||||
|
uint8_t pwm_reg[LED_PWM_LENGTH];
|
||||||
|
memset(pwm_reg, 0, LED_PWM_LENGTH);
|
||||||
|
snled27351_write(index, LED_PWM_PAGE, 0, pwm_reg, LED_PWM_LENGTH);
|
||||||
|
|
||||||
|
// Set CURRENT PAGE (Page 4)
|
||||||
|
uint8_t current_tune_reg[LED_CURRENT_TUNE_LENGTH] = SNLED27351_CURRENT_TUNE;
|
||||||
|
snled27351_write(index, CURRENT_TUNE_PAGE, 0, current_tune_reg, LED_CURRENT_TUNE_LENGTH);
|
||||||
|
|
||||||
|
// // Enable LEDs ON/OFF
|
||||||
|
// memset(on_off_reg, 0xFF, LED_CONTROL_ON_OFF_LENGTH);
|
||||||
|
// snled27351_write(index, LED_CONTROL_PAGE, 0, on_off_reg, LED_CONTROL_ON_OFF_LENGTH);
|
||||||
|
|
||||||
|
// Setting LED driver to normal mode
|
||||||
|
snled27351_write_register(index, FUNCTION_PAGE, CONFIGURATION_REG, MSKSW_NORMAL_MODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_set_value(int index, uint8_t value) {
|
||||||
|
snled27351_led_t led;
|
||||||
|
if (index >= 0 && index < SNLED27351_LED_COUNT) {
|
||||||
|
memcpy_P(&led, (&g_snled27351_leds[index]), sizeof(led));
|
||||||
|
|
||||||
|
g_pwm_buffer[led.driver][led.v] = value;
|
||||||
|
g_pwm_buffer_update_required[led.driver] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_set_value_all(uint8_t value) {
|
||||||
|
for (int i = 0; i < SNLED27351_LED_COUNT; i++) {
|
||||||
|
snled27351_set_value(i, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_set_led_control_register(uint8_t index, bool value) {
|
||||||
|
snled27351_led_t led;
|
||||||
|
memcpy_P(&led, (&g_snled27351_leds[index]), sizeof(led));
|
||||||
|
|
||||||
|
uint8_t control_register = led.v / 8;
|
||||||
|
uint8_t bit_value = led.v % 8;
|
||||||
|
|
||||||
|
if (value) {
|
||||||
|
g_led_control_registers[led.driver][control_register] |= (1 << bit_value);
|
||||||
|
} else {
|
||||||
|
g_led_control_registers[led.driver][control_register] &= ~(1 << bit_value);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_led_control_registers_update_required[led.driver] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_update_pwm_buffers(uint8_t index) {
|
||||||
|
if (g_pwm_buffer_update_required[index]) {
|
||||||
|
if (!snled27351_write_pwm_buffer(index, g_pwm_buffer[index])) {
|
||||||
|
g_led_control_registers_update_required[index] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
g_pwm_buffer_update_required[index] = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_update_led_control_registers(uint8_t index) {
|
||||||
|
if (g_led_control_registers_update_required[index]) {
|
||||||
|
snled27351_write(index, LED_CONTROL_PAGE, 0, g_led_control_registers[index], 24);
|
||||||
|
}
|
||||||
|
g_led_control_registers_update_required[index] = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_flush(void) {
|
||||||
|
for (uint8_t i = 0; i < SNLED27351_DRIVER_COUNT; i++)
|
||||||
|
snled27351_update_pwm_buffers(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_shutdown(void) {
|
||||||
|
# if defined(LED_DRIVER_SHUTDOWN_PIN)
|
||||||
|
writePinLow(LED_DRIVER_SHUTDOWN_PIN);
|
||||||
|
# else
|
||||||
|
for (uint8_t i = 0; i < SNLED27351_DRIVER_COUNT; i++)
|
||||||
|
snled27351_sw_shutdown(i);
|
||||||
|
# endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_exit_shutdown(void) {
|
||||||
|
# if defined(LED_DRIVER_SHUTDOWN_PIN)
|
||||||
|
writePinHigh(LED_DRIVER_SHUTDOWN_PIN);
|
||||||
|
# else
|
||||||
|
for (uint8_t i = 0; i < SNLED27351_DRIVER_COUNT; i++)
|
||||||
|
snled27351_sw_return_normal(i);
|
||||||
|
# endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_sw_return_normal(uint8_t index) {
|
||||||
|
// Select to function page
|
||||||
|
// Setting LED driver to normal mode
|
||||||
|
snled27351_write_register(index, FUNCTION_PAGE, CONFIGURATION_REG, MSKSW_NORMAL_MODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_sw_shutdown(uint8_t index) {
|
||||||
|
// Select to function page
|
||||||
|
// Setting LED driver to shutdown mode
|
||||||
|
snled27351_write_register(index, FUNCTION_PAGE, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE);
|
||||||
|
// Write SW Sleep Register
|
||||||
|
snled27351_write_register(index, FUNCTION_PAGE, SOFTWARE_SLEEP_REG, MSKSLEEP_ENABLE);
|
||||||
|
}
|
346
drivers/led/snled27351-simple-spi.h
Normal file
346
drivers/led/snled27351-simple-spi.h
Normal file
@ -0,0 +1,346 @@
|
|||||||
|
/* Copyright 2021 @ Keychron (https://www.keychron.com)
|
||||||
|
*
|
||||||
|
* 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 <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include "progmem.h"
|
||||||
|
#include "util.h"
|
||||||
|
|
||||||
|
#if defined(LED_MATRIX_SNLED27351_SPI)
|
||||||
|
# define SNLED27351_LED_COUNT LED_MATRIX_LED_COUNT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define SNLED27351_DRIVER_COUNT (sizeof(cs_pins) / sizeof(pin_t))
|
||||||
|
typedef struct snled27351_led_t {
|
||||||
|
uint8_t driver : 2;
|
||||||
|
uint8_t v;
|
||||||
|
} PACKED snled27351_led_t;
|
||||||
|
|
||||||
|
extern const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT];
|
||||||
|
|
||||||
|
void snled27351_init_drivers(void);
|
||||||
|
void snled27351_init(uint8_t index);
|
||||||
|
bool snled27351_write_register(uint8_t index, uint8_t page, uint8_t reg, uint8_t data);
|
||||||
|
bool snled27351_write_pwm_buffer(uint8_t index, uint8_t *pwm_buffer);
|
||||||
|
|
||||||
|
void snled27351_set_value(int index, uint8_t value);
|
||||||
|
void snled27351_set_value_all(uint8_t value);
|
||||||
|
|
||||||
|
void snled27351_set_led_control_register(uint8_t index, bool value);
|
||||||
|
|
||||||
|
// This should not be called from an interrupt
|
||||||
|
// (eg. from a timer interrupt).
|
||||||
|
// Call this while idle (in between matrix scans).
|
||||||
|
// If the buffer is dirty, it will update the driver with the buffer.
|
||||||
|
void snled27351_update_pwm_buffers(uint8_t index);
|
||||||
|
void snled27351_update_led_control_registers(uint8_t index);
|
||||||
|
void snled27351_flush(void);
|
||||||
|
void snled27351_shutdown(void);
|
||||||
|
void snled27351_exit_shutdown(void);
|
||||||
|
void snled27351_sw_return_normal(uint8_t index);
|
||||||
|
void snled27351_sw_shutdown(uint8_t index);
|
||||||
|
|
||||||
|
// Registers Page Define
|
||||||
|
#define CONFIGURE_CMD_PAGE 0xFD
|
||||||
|
#define LED_CONTROL_PAGE 0x00
|
||||||
|
#define LED_PWM_PAGE 0x01
|
||||||
|
#define FUNCTION_PAGE 0x03
|
||||||
|
#define CURRENT_TUNE_PAGE 0x04
|
||||||
|
|
||||||
|
// Function Register: address 0x00
|
||||||
|
#define CONFIGURATION_REG 0x00
|
||||||
|
#define MSKSW_SHUT_DOWN_MODE (0x0 << 0)
|
||||||
|
#define MSKSW_NORMAL_MODE (0x1 << 0)
|
||||||
|
|
||||||
|
#define DRIVER_ID_REG 0x11
|
||||||
|
#define SNLED27351_ID 0x8A
|
||||||
|
|
||||||
|
#define PDU_REG 0x13
|
||||||
|
#define MSKSET_CA_CB_CHANNEL 0xAA
|
||||||
|
#define MSKCLR_CA_CB_CHANNEL 0x00
|
||||||
|
|
||||||
|
#define SCAN_PHASE_REG 0x14
|
||||||
|
#define MSKPHASE_12CHANNEL 0x00
|
||||||
|
#define MSKPHASE_11CHANNEL 0x01
|
||||||
|
#define MSKPHASE_10CHANNEL 0x02
|
||||||
|
#define MSKPHASE_9CHANNEL 0x03
|
||||||
|
#define MSKPHASE_8CHANNEL 0x04
|
||||||
|
#define MSKPHASE_7CHANNEL 0x05
|
||||||
|
#define MSKPHASE_6CHANNEL 0x06
|
||||||
|
#define MSKPHASE_5CHANNEL 0x07
|
||||||
|
#define MSKPHASE_4CHANNEL 0x08
|
||||||
|
#define MSKPHASE_3CHANNEL 0x09
|
||||||
|
#define MSKPHASE_2CHANNEL 0x0A
|
||||||
|
#define MSKPHASE_1CHANNEL 0x0B
|
||||||
|
|
||||||
|
#define SLEW_RATE_CONTROL_MODE1_REG 0x15
|
||||||
|
#define MSKPWM_DELAY_PHASE_ENABLE 0x04
|
||||||
|
#define MSKPWM_DELAY_PHASE_DISABLE 0x00
|
||||||
|
|
||||||
|
#define SLEW_RATE_CONTROL_MODE2_REG 0x16
|
||||||
|
#define MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_ENABLE 0xC0
|
||||||
|
#define MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_DISABLE 0x00
|
||||||
|
|
||||||
|
#define OPEN_SHORT_ENABLE_REG 0x17
|
||||||
|
#define MSKOPEN_DETECTION_ENABLE (0x01 << 7)
|
||||||
|
#define MSKOPEN_DETECTION_DISABLE (0x00)
|
||||||
|
|
||||||
|
#define MSKSHORT_DETECTION_ENABLE (0x01 << 6)
|
||||||
|
#define MSKSHORT_DETECTION_DISABLE (0x00)
|
||||||
|
|
||||||
|
#define OPEN_SHORT_DUTY_REG 0x18
|
||||||
|
#define OPEN_SHORT_FLAG_REG 0x19
|
||||||
|
|
||||||
|
#define MSKOPEN_DETECTION_INTERRUPT_ENABLE (0x01 << 7)
|
||||||
|
#define MSKOPEN_DETECTION_INTERRUPT_DISABLE (0x00)
|
||||||
|
|
||||||
|
#define MSKSHORT_DETECTION_INTERRUPT_ENABLE (0x01 << 6)
|
||||||
|
#define MSKSHORT_DETECTION_INTERRUPT_DISABLE (0x00)
|
||||||
|
|
||||||
|
#define SOFTWARE_SLEEP_REG 0x1A
|
||||||
|
#define MSKSLEEP_ENABLE 0x02
|
||||||
|
#define MSKSLEEP_DISABLE 0x00
|
||||||
|
|
||||||
|
// LED Control Registers
|
||||||
|
#define LED_CONTROL_ON_OFF_FIRST_ADDR 0x0
|
||||||
|
#define LED_CONTROL_ON_OFF_LAST_ADDR 0x17
|
||||||
|
#define LED_CONTROL_ON_OFF_LENGTH ((LED_CONTROL_ON_OFF_LAST_ADDR - LED_CONTROL_ON_OFF_FIRST_ADDR) + 1)
|
||||||
|
|
||||||
|
#define LED_CONTROL_OPEN_FIRST_ADDR 0x18
|
||||||
|
#define LED_CONTROL_OPEN_LAST_ADDR 0x2F
|
||||||
|
#define LED_CONTROL_OPEN_LENGTH ((LED_CONTROL_OPEN_LAST_ADDR - LED_CONTROL_OPEN_FIRST_ADDR) + 1)
|
||||||
|
|
||||||
|
#define LED_CONTROL_SHORT_FIRST_ADDR 0x30
|
||||||
|
#define LED_CONTROL_SHORT_LAST_ADDR 0x47
|
||||||
|
#define LED_CONTROL_SHORT_LENGTH ((LED_CONTROL_SHORT_LAST_ADDR - LED_CONTROL_SHORT_FIRST_ADDR) + 1)
|
||||||
|
|
||||||
|
#define LED_CONTROL_PAGE_LENGTH 0x48
|
||||||
|
|
||||||
|
// LED Control Registers
|
||||||
|
#define LED_PWM_FIRST_ADDR 0x00
|
||||||
|
#define LED_PWM_LAST_ADDR 0xBF
|
||||||
|
#define LED_PWM_LENGTH 0xC0
|
||||||
|
|
||||||
|
// Current Tune Registers
|
||||||
|
#define LED_CURRENT_TUNE_FIRST_ADDR 0x00
|
||||||
|
#define LED_CURRENT_TUNE_LAST_ADDR 0x0B
|
||||||
|
#define LED_CURRENT_TUNE_LENGTH 0x0C
|
||||||
|
|
||||||
|
#define A_1 0x00
|
||||||
|
#define A_2 0x01
|
||||||
|
#define A_3 0x02
|
||||||
|
#define A_4 0x03
|
||||||
|
#define A_5 0x04
|
||||||
|
#define A_6 0x05
|
||||||
|
#define A_7 0x06
|
||||||
|
#define A_8 0x07
|
||||||
|
#define A_9 0x08
|
||||||
|
#define A_10 0x09
|
||||||
|
#define A_11 0x0A
|
||||||
|
#define A_12 0x0B
|
||||||
|
#define A_13 0x0C
|
||||||
|
#define A_14 0x0D
|
||||||
|
#define A_15 0x0E
|
||||||
|
#define A_16 0x0F
|
||||||
|
|
||||||
|
#define B_1 0x10
|
||||||
|
#define B_2 0x11
|
||||||
|
#define B_3 0x12
|
||||||
|
#define B_4 0x13
|
||||||
|
#define B_5 0x14
|
||||||
|
#define B_6 0x15
|
||||||
|
#define B_7 0x16
|
||||||
|
#define B_8 0x17
|
||||||
|
#define B_9 0x18
|
||||||
|
#define B_10 0x19
|
||||||
|
#define B_11 0x1A
|
||||||
|
#define B_12 0x1B
|
||||||
|
#define B_13 0x1C
|
||||||
|
#define B_14 0x1D
|
||||||
|
#define B_15 0x1E
|
||||||
|
#define B_16 0x1F
|
||||||
|
|
||||||
|
#define C_1 0x20
|
||||||
|
#define C_2 0x21
|
||||||
|
#define C_3 0x22
|
||||||
|
#define C_4 0x23
|
||||||
|
#define C_5 0x24
|
||||||
|
#define C_6 0x25
|
||||||
|
#define C_7 0x26
|
||||||
|
#define C_8 0x27
|
||||||
|
#define C_9 0x28
|
||||||
|
#define C_10 0x29
|
||||||
|
#define C_11 0x2A
|
||||||
|
#define C_12 0x2B
|
||||||
|
#define C_13 0x2C
|
||||||
|
#define C_14 0x2D
|
||||||
|
#define C_15 0x2E
|
||||||
|
#define C_16 0x2F
|
||||||
|
|
||||||
|
#define D_1 0x30
|
||||||
|
#define D_2 0x31
|
||||||
|
#define D_3 0x32
|
||||||
|
#define D_4 0x33
|
||||||
|
#define D_5 0x34
|
||||||
|
#define D_6 0x35
|
||||||
|
#define D_7 0x36
|
||||||
|
#define D_8 0x37
|
||||||
|
#define D_9 0x38
|
||||||
|
#define D_10 0x39
|
||||||
|
#define D_11 0x3A
|
||||||
|
#define D_12 0x3B
|
||||||
|
#define D_13 0x3C
|
||||||
|
#define D_14 0x3D
|
||||||
|
#define D_15 0x3E
|
||||||
|
#define D_16 0x3F
|
||||||
|
|
||||||
|
#define E_1 0x40
|
||||||
|
#define E_2 0x41
|
||||||
|
#define E_3 0x42
|
||||||
|
#define E_4 0x43
|
||||||
|
#define E_5 0x44
|
||||||
|
#define E_6 0x45
|
||||||
|
#define E_7 0x46
|
||||||
|
#define E_8 0x47
|
||||||
|
#define E_9 0x48
|
||||||
|
#define E_10 0x49
|
||||||
|
#define E_11 0x4A
|
||||||
|
#define E_12 0x4B
|
||||||
|
#define E_13 0x4C
|
||||||
|
#define E_14 0x4D
|
||||||
|
#define E_15 0x4E
|
||||||
|
#define E_16 0x4F
|
||||||
|
|
||||||
|
#define F_1 0x50
|
||||||
|
#define F_2 0x51
|
||||||
|
#define F_3 0x52
|
||||||
|
#define F_4 0x53
|
||||||
|
#define F_5 0x54
|
||||||
|
#define F_6 0x55
|
||||||
|
#define F_7 0x56
|
||||||
|
#define F_8 0x57
|
||||||
|
#define F_9 0x58
|
||||||
|
#define F_10 0x59
|
||||||
|
#define F_11 0x5A
|
||||||
|
#define F_12 0x5B
|
||||||
|
#define F_13 0x5C
|
||||||
|
#define F_14 0x5D
|
||||||
|
#define F_15 0x5E
|
||||||
|
#define F_16 0x5F
|
||||||
|
|
||||||
|
#define G_1 0x60
|
||||||
|
#define G_2 0x61
|
||||||
|
#define G_3 0x62
|
||||||
|
#define G_4 0x63
|
||||||
|
#define G_5 0x64
|
||||||
|
#define G_6 0x65
|
||||||
|
#define G_7 0x66
|
||||||
|
#define G_8 0x67
|
||||||
|
#define G_9 0x68
|
||||||
|
#define G_10 0x69
|
||||||
|
#define G_11 0x6A
|
||||||
|
#define G_12 0x6B
|
||||||
|
#define G_13 0x6C
|
||||||
|
#define G_14 0x6D
|
||||||
|
#define G_15 0x6E
|
||||||
|
#define G_16 0x6F
|
||||||
|
|
||||||
|
#define H_1 0x70
|
||||||
|
#define H_2 0x71
|
||||||
|
#define H_3 0x72
|
||||||
|
#define H_4 0x73
|
||||||
|
#define H_5 0x74
|
||||||
|
#define H_6 0x75
|
||||||
|
#define H_7 0x76
|
||||||
|
#define H_8 0x77
|
||||||
|
#define H_9 0x78
|
||||||
|
#define H_10 0x79
|
||||||
|
#define H_11 0x7A
|
||||||
|
#define H_12 0x7B
|
||||||
|
#define H_13 0x7C
|
||||||
|
#define H_14 0x7D
|
||||||
|
#define H_15 0x7E
|
||||||
|
#define H_16 0x7F
|
||||||
|
|
||||||
|
#define I_1 0x80
|
||||||
|
#define I_2 0x81
|
||||||
|
#define I_3 0x82
|
||||||
|
#define I_4 0x83
|
||||||
|
#define I_5 0x84
|
||||||
|
#define I_6 0x85
|
||||||
|
#define I_7 0x86
|
||||||
|
#define I_8 0x87
|
||||||
|
#define I_9 0x88
|
||||||
|
#define I_10 0x89
|
||||||
|
#define I_11 0x8A
|
||||||
|
#define I_12 0x8B
|
||||||
|
#define I_13 0x8C
|
||||||
|
#define I_14 0x8D
|
||||||
|
#define I_15 0x8E
|
||||||
|
#define I_16 0x8F
|
||||||
|
|
||||||
|
#define J_1 0x90
|
||||||
|
#define J_2 0x91
|
||||||
|
#define J_3 0x92
|
||||||
|
#define J_4 0x93
|
||||||
|
#define J_5 0x94
|
||||||
|
#define J_6 0x95
|
||||||
|
#define J_7 0x96
|
||||||
|
#define J_8 0x97
|
||||||
|
#define J_9 0x98
|
||||||
|
#define J_10 0x99
|
||||||
|
#define J_11 0x9A
|
||||||
|
#define J_12 0x9B
|
||||||
|
#define J_13 0x9C
|
||||||
|
#define J_14 0x9D
|
||||||
|
#define J_15 0x9E
|
||||||
|
#define J_16 0x9F
|
||||||
|
|
||||||
|
#define K_1 0xA0
|
||||||
|
#define K_2 0xA1
|
||||||
|
#define K_3 0xA2
|
||||||
|
#define K_4 0xA3
|
||||||
|
#define K_5 0xA4
|
||||||
|
#define K_6 0xA5
|
||||||
|
#define K_7 0xA6
|
||||||
|
#define K_8 0xA7
|
||||||
|
#define K_9 0xA8
|
||||||
|
#define K_10 0xA9
|
||||||
|
#define K_11 0xAA
|
||||||
|
#define K_12 0xAB
|
||||||
|
#define K_13 0xAC
|
||||||
|
#define K_14 0xAD
|
||||||
|
#define K_15 0xAE
|
||||||
|
#define K_16 0xAF
|
||||||
|
|
||||||
|
#define L_1 0xB0
|
||||||
|
#define L_2 0xB1
|
||||||
|
#define L_3 0xB2
|
||||||
|
#define L_4 0xB3
|
||||||
|
#define L_5 0xB4
|
||||||
|
#define L_6 0xB5
|
||||||
|
#define L_7 0xB6
|
||||||
|
#define L_8 0xB7
|
||||||
|
#define L_9 0xB8
|
||||||
|
#define L_10 0xB9
|
||||||
|
#define L_11 0xBA
|
||||||
|
#define L_12 0xBB
|
||||||
|
#define L_13 0xBC
|
||||||
|
#define L_14 0xBD
|
||||||
|
#define L_15 0xBE
|
||||||
|
#define L_16 0xBF
|
251
drivers/led/snled27351-spi.c
Normal file
251
drivers/led/snled27351-spi.c
Normal file
@ -0,0 +1,251 @@
|
|||||||
|
/* Copyright 2021 @ Keychron (https://www.keychron.com)
|
||||||
|
*
|
||||||
|
* 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 "snled27351-spi.h"
|
||||||
|
#include "spi_master.h"
|
||||||
|
|
||||||
|
#define SNLED27351_PWM_REGISTER_COUNT 192
|
||||||
|
#define SNLED27351_LED_CONTROL_REGISTER_COUNT 24
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef SNLED27351_PHASE_CHANNEL
|
||||||
|
# define SNLED27351_PHASE_CHANNEL MSKPHASE_12CHANNEL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SNLED27351_CURRENT_TUNE
|
||||||
|
# define SNLED27351_CURRENT_TUNE \
|
||||||
|
{ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define SNLED27351_WRITE (0 << 7)
|
||||||
|
#define SNLED27351_READ (1 << 7)
|
||||||
|
#define SNLED27351_PATTERN (2 << 4)
|
||||||
|
|
||||||
|
#ifdef DRIVER_CS_PINS
|
||||||
|
pin_t cs_pins[] = DRIVER_CS_PINS;
|
||||||
|
#else
|
||||||
|
error "no DRIVER_CS_PINS defined"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// These buffers match the snled27351 PWM registers.
|
||||||
|
// The control buffers match the PG0 LED On/Off registers.
|
||||||
|
// Storing them like this is optimal for I2C transfers to the registers.
|
||||||
|
// We could optimize this and take out the unused registers from these
|
||||||
|
// buffers and the transfers in snled27351_write_pwm_buffer() but it's
|
||||||
|
// probably not worth the extra complexity.
|
||||||
|
uint8_t g_pwm_buffer[SNLED27351_DRIVER_COUNT][SNLED27351_PWM_REGISTER_COUNT];
|
||||||
|
bool g_pwm_buffer_update_required[SNLED27351_DRIVER_COUNT] = {false};
|
||||||
|
|
||||||
|
uint8_t g_led_control_registers[SNLED27351_DRIVER_COUNT][SNLED27351_LED_CONTROL_REGISTER_COUNT] = {0};
|
||||||
|
bool g_led_control_registers_update_required[SNLED27351_DRIVER_COUNT] = {false};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
bool snled27351_write(uint8_t index, uint8_t page, uint8_t reg, uint8_t *data, uint8_t len) {
|
||||||
|
static uint8_t spi_transfer_buffer[2] = {0};
|
||||||
|
|
||||||
|
if (index > ARRAY_SIZE(((pin_t[])DRIVER_CS_PINS)) - 1) return false;
|
||||||
|
|
||||||
|
if (!spi_start(cs_pins[index], false, 0, SNLED23751_SPI_DIVISOR)) {
|
||||||
|
spi_stop();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
spi_transfer_buffer[0] = SNLED27351_WRITE | SNLED27351_PATTERN | (page & 0x0F);
|
||||||
|
spi_transfer_buffer[1] = reg;
|
||||||
|
|
||||||
|
if (spi_transmit(spi_transfer_buffer, 2) != SPI_STATUS_SUCCESS) {
|
||||||
|
spi_stop();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (spi_transmit(data, len) != SPI_STATUS_SUCCESS) {
|
||||||
|
spi_stop();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
spi_stop();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool snled27351_write_register(uint8_t index, uint8_t page, uint8_t reg, uint8_t data) {
|
||||||
|
return snled27351_write(index, page, reg, &data, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool snled27351_write_pwm_buffer(uint8_t index, uint8_t *pwm_buffer) {
|
||||||
|
if (g_pwm_buffer_update_required[index]) {
|
||||||
|
snled27351_write(index, LED_PWM_PAGE, 0, g_pwm_buffer[index], SNLED27351_PWM_REGISTER_COUNT);
|
||||||
|
}
|
||||||
|
g_pwm_buffer_update_required[index] = false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_init_drivers(void) {
|
||||||
|
#if defined(LED_DRIVER_SHUTDOWN_PIN)
|
||||||
|
setPinOutput(LED_DRIVER_SHUTDOWN_PIN);
|
||||||
|
writePinHigh(LED_DRIVER_SHUTDOWN_PIN);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
spi_init();
|
||||||
|
|
||||||
|
for (uint8_t i = 0; i < SNLED27351_DRIVER_COUNT; i++)
|
||||||
|
snled27351_init(i);
|
||||||
|
|
||||||
|
for (int index = 0; index < SNLED27351_LED_COUNT; index++) {
|
||||||
|
snled27351_set_led_control_register(index, true, true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint8_t i = 0; i < SNLED27351_DRIVER_COUNT; i++)
|
||||||
|
snled27351_update_led_control_registers(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_init(uint8_t index) {
|
||||||
|
setPinOutput(cs_pins[index]);
|
||||||
|
writePinHigh(cs_pins[index]);
|
||||||
|
// Setting LED driver to shutdown mode
|
||||||
|
snled27351_write_register(index, FUNCTION_PAGE, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE);
|
||||||
|
// Setting internal channel pulldown/pullup
|
||||||
|
snled27351_write_register(index, FUNCTION_PAGE, PDU_REG, MSKSET_CA_CB_CHANNEL);
|
||||||
|
// Select number of scan phase
|
||||||
|
snled27351_write_register(index, FUNCTION_PAGE, SCAN_PHASE_REG, SNLED27351_PHASE_CHANNEL);
|
||||||
|
// Setting PWM Delay Phase
|
||||||
|
snled27351_write_register(index, FUNCTION_PAGE, SLEW_RATE_CONTROL_MODE1_REG, MSKPWM_DELAY_PHASE_ENABLE);
|
||||||
|
// Setting Driving/Sinking Channel Slew Rate
|
||||||
|
snled27351_write_register(index, FUNCTION_PAGE, SLEW_RATE_CONTROL_MODE2_REG, MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_ENABLE);
|
||||||
|
// Setting Iref
|
||||||
|
snled27351_write_register(index, FUNCTION_PAGE, SOFTWARE_SLEEP_REG, MSKSLEEP_DISABLE);
|
||||||
|
|
||||||
|
// Set LED CONTROL PAGE (Page 0)
|
||||||
|
uint8_t on_off_reg[LED_CONTROL_ON_OFF_LENGTH] = {0};
|
||||||
|
snled27351_write(index, LED_CONTROL_PAGE, 0, on_off_reg, LED_CONTROL_ON_OFF_LENGTH);
|
||||||
|
|
||||||
|
// Set PWM PAGE (Page 1)
|
||||||
|
uint8_t pwm_reg[LED_PWM_LENGTH];
|
||||||
|
memset(pwm_reg, 0, LED_PWM_LENGTH);
|
||||||
|
snled27351_write(index, LED_PWM_PAGE, 0, pwm_reg, LED_PWM_LENGTH);
|
||||||
|
|
||||||
|
// Set CURRENT PAGE (Page 4)
|
||||||
|
uint8_t current_tune_reg[LED_CURRENT_TUNE_LENGTH] = SNLED27351_CURRENT_TUNE;
|
||||||
|
snled27351_write(index, CURRENT_TUNE_PAGE, 0, current_tune_reg, LED_CURRENT_TUNE_LENGTH);
|
||||||
|
|
||||||
|
// // Enable LEDs ON/OFF
|
||||||
|
// memset(on_off_reg, 0xFF, LED_CONTROL_ON_OFF_LENGTH);
|
||||||
|
// snled27351_write(index, LED_CONTROL_PAGE, 0, on_off_reg, LED_CONTROL_ON_OFF_LENGTH);
|
||||||
|
|
||||||
|
// Setting LED driver to normal mode
|
||||||
|
snled27351_write_register(index, FUNCTION_PAGE, CONFIGURATION_REG, MSKSW_NORMAL_MODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
||||||
|
snled27351_led_t led;
|
||||||
|
if (index >= 0 && index < SNLED27351_LED_COUNT) {
|
||||||
|
memcpy_P(&led, (&g_snled27351_leds[index]), sizeof(led));
|
||||||
|
|
||||||
|
g_pwm_buffer[led.driver][led.r] = red;
|
||||||
|
g_pwm_buffer[led.driver][led.g] = green;
|
||||||
|
g_pwm_buffer[led.driver][led.b] = blue;
|
||||||
|
g_pwm_buffer_update_required[led.driver] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
|
||||||
|
for (int i = 0; i < SNLED27351_LED_COUNT; i++) {
|
||||||
|
snled27351_set_color(i, red, green, blue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_set_led_control_register(uint8_t index, bool red, bool green, bool blue) {
|
||||||
|
snled27351_led_t led;
|
||||||
|
memcpy_P(&led, (&g_snled27351_leds[index]), sizeof(led));
|
||||||
|
|
||||||
|
uint8_t control_register_r = led.r / 8;
|
||||||
|
uint8_t control_register_g = led.g / 8;
|
||||||
|
uint8_t control_register_b = led.b / 8;
|
||||||
|
uint8_t bit_r = led.r % 8;
|
||||||
|
uint8_t bit_g = led.g % 8;
|
||||||
|
uint8_t bit_b = led.b % 8;
|
||||||
|
|
||||||
|
if (red) {
|
||||||
|
g_led_control_registers[led.driver][control_register_r] |= (1 << bit_r);
|
||||||
|
} else {
|
||||||
|
g_led_control_registers[led.driver][control_register_r] &= ~(1 << bit_r);
|
||||||
|
}
|
||||||
|
if (green) {
|
||||||
|
g_led_control_registers[led.driver][control_register_g] |= (1 << bit_g);
|
||||||
|
} else {
|
||||||
|
g_led_control_registers[led.driver][control_register_g] &= ~(1 << bit_g);
|
||||||
|
}
|
||||||
|
if (blue) {
|
||||||
|
g_led_control_registers[led.driver][control_register_b] |= (1 << bit_b);
|
||||||
|
} else {
|
||||||
|
g_led_control_registers[led.driver][control_register_b] &= ~(1 << bit_b);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_led_control_registers_update_required[led.driver] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_update_pwm_buffers(uint8_t index) {
|
||||||
|
if (g_pwm_buffer_update_required[index]) {
|
||||||
|
if (!snled27351_write_pwm_buffer(index, g_pwm_buffer[index])) {
|
||||||
|
g_led_control_registers_update_required[index] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
g_pwm_buffer_update_required[index] = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_update_led_control_registers(uint8_t index) {
|
||||||
|
if (g_led_control_registers_update_required[index]) {
|
||||||
|
snled27351_write(index, LED_CONTROL_PAGE, 0, g_led_control_registers[index], 24);
|
||||||
|
}
|
||||||
|
g_led_control_registers_update_required[index] = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_flush(void) {
|
||||||
|
for (uint8_t i = 0; i < SNLED27351_DRIVER_COUNT; i++)
|
||||||
|
snled27351_update_pwm_buffers(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_shutdown(void) {
|
||||||
|
# if defined(LED_DRIVER_SHUTDOWN_PIN)
|
||||||
|
writePinLow(LED_DRIVER_SHUTDOWN_PIN);
|
||||||
|
# else
|
||||||
|
for (uint8_t i = 0; i < SNLED27351_DRIVER_COUNT; i++)
|
||||||
|
snled27351_sw_shutdown(i);
|
||||||
|
# endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_exit_shutdown(void) {
|
||||||
|
# if defined(LED_DRIVER_SHUTDOWN_PIN)
|
||||||
|
writePinHigh(LED_DRIVER_SHUTDOWN_PIN);
|
||||||
|
# else
|
||||||
|
for (uint8_t i = 0; i < SNLED27351_DRIVER_COUNT; i++)
|
||||||
|
snled27351_sw_return_normal(i);
|
||||||
|
# endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_sw_return_normal(uint8_t index) {
|
||||||
|
// Select to function page
|
||||||
|
// Setting LED driver to normal mode
|
||||||
|
snled27351_write_register(index, FUNCTION_PAGE, CONFIGURATION_REG, MSKSW_NORMAL_MODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void snled27351_sw_shutdown(uint8_t index) {
|
||||||
|
// Select to function page
|
||||||
|
// Setting LED driver to shutdown mode
|
||||||
|
snled27351_write_register(index, FUNCTION_PAGE, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE);
|
||||||
|
// Write SW Sleep Register
|
||||||
|
snled27351_write_register(index, FUNCTION_PAGE, SOFTWARE_SLEEP_REG, MSKSLEEP_ENABLE);
|
||||||
|
}
|
348
drivers/led/snled27351-spi.h
Normal file
348
drivers/led/snled27351-spi.h
Normal file
@ -0,0 +1,348 @@
|
|||||||
|
/* Copyright 2021 @ Keychron (https://www.keychron.com)
|
||||||
|
*
|
||||||
|
* 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 <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include "progmem.h"
|
||||||
|
#include "util.h"
|
||||||
|
|
||||||
|
#if defined(RGB_MATRIX_SNLED27351_SPI)
|
||||||
|
# define SNLED27351_LED_COUNT RGB_MATRIX_LED_COUNT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
# define SNLED27351_DRIVER_COUNT (sizeof(cs_pins)/sizeof(pin_t))
|
||||||
|
typedef struct snled27351_led_t {
|
||||||
|
uint8_t driver : 2;
|
||||||
|
uint8_t r;
|
||||||
|
uint8_t g;
|
||||||
|
uint8_t b;
|
||||||
|
} PACKED snled27351_led_t;
|
||||||
|
|
||||||
|
extern const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT];
|
||||||
|
|
||||||
|
void snled27351_init_drivers(void);
|
||||||
|
void snled27351_init(uint8_t index);
|
||||||
|
bool snled27351_write_register(uint8_t index, uint8_t page, uint8_t reg, uint8_t data);
|
||||||
|
bool snled27351_write_pwm_buffer(uint8_t index, uint8_t *pwm_buffer);
|
||||||
|
|
||||||
|
void snled27351_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
|
||||||
|
void snled27351_set_color_all(uint8_t red, uint8_t green, uint8_t blue);
|
||||||
|
|
||||||
|
void snled27351_set_led_control_register(uint8_t index, bool red, bool green, bool blue);
|
||||||
|
|
||||||
|
// This should not be called from an interrupt
|
||||||
|
// (eg. from a timer interrupt).
|
||||||
|
// Call this while idle (in between matrix scans).
|
||||||
|
// If the buffer is dirty, it will update the driver with the buffer.
|
||||||
|
void snled27351_update_pwm_buffers(uint8_t index);
|
||||||
|
void snled27351_update_led_control_registers(uint8_t index);
|
||||||
|
void snled27351_flush(void);
|
||||||
|
void snled27351_shutdown(void);
|
||||||
|
void snled27351_exit_shutdown(void);
|
||||||
|
void snled27351_sw_return_normal(uint8_t index);
|
||||||
|
void snled27351_sw_shutdown(uint8_t index);
|
||||||
|
|
||||||
|
// Registers Page Define
|
||||||
|
#define CONFIGURE_CMD_PAGE 0xFD
|
||||||
|
#define LED_CONTROL_PAGE 0x00
|
||||||
|
#define LED_PWM_PAGE 0x01
|
||||||
|
#define FUNCTION_PAGE 0x03
|
||||||
|
#define CURRENT_TUNE_PAGE 0x04
|
||||||
|
|
||||||
|
// Function Register: address 0x00
|
||||||
|
#define CONFIGURATION_REG 0x00
|
||||||
|
#define MSKSW_SHUT_DOWN_MODE (0x0 << 0)
|
||||||
|
#define MSKSW_NORMAL_MODE (0x1 << 0)
|
||||||
|
|
||||||
|
#define DRIVER_ID_REG 0x11
|
||||||
|
#define SNLED27351_ID 0x8A
|
||||||
|
|
||||||
|
#define PDU_REG 0x13
|
||||||
|
#define MSKSET_CA_CB_CHANNEL 0xAA
|
||||||
|
#define MSKCLR_CA_CB_CHANNEL 0x00
|
||||||
|
|
||||||
|
#define SCAN_PHASE_REG 0x14
|
||||||
|
#define MSKPHASE_12CHANNEL 0x00
|
||||||
|
#define MSKPHASE_11CHANNEL 0x01
|
||||||
|
#define MSKPHASE_10CHANNEL 0x02
|
||||||
|
#define MSKPHASE_9CHANNEL 0x03
|
||||||
|
#define MSKPHASE_8CHANNEL 0x04
|
||||||
|
#define MSKPHASE_7CHANNEL 0x05
|
||||||
|
#define MSKPHASE_6CHANNEL 0x06
|
||||||
|
#define MSKPHASE_5CHANNEL 0x07
|
||||||
|
#define MSKPHASE_4CHANNEL 0x08
|
||||||
|
#define MSKPHASE_3CHANNEL 0x09
|
||||||
|
#define MSKPHASE_2CHANNEL 0x0A
|
||||||
|
#define MSKPHASE_1CHANNEL 0x0B
|
||||||
|
|
||||||
|
#define SLEW_RATE_CONTROL_MODE1_REG 0x15
|
||||||
|
#define MSKPWM_DELAY_PHASE_ENABLE 0x04
|
||||||
|
#define MSKPWM_DELAY_PHASE_DISABLE 0x00
|
||||||
|
|
||||||
|
#define SLEW_RATE_CONTROL_MODE2_REG 0x16
|
||||||
|
#define MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_ENABLE 0xC0
|
||||||
|
#define MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_DISABLE 0x00
|
||||||
|
|
||||||
|
#define OPEN_SHORT_ENABLE_REG 0x17
|
||||||
|
#define MSKOPEN_DETECTION_ENABLE (0x01 << 7)
|
||||||
|
#define MSKOPEN_DETECTION_DISABLE (0x00)
|
||||||
|
|
||||||
|
#define MSKSHORT_DETECTION_ENABLE (0x01 << 6)
|
||||||
|
#define MSKSHORT_DETECTION_DISABLE (0x00)
|
||||||
|
|
||||||
|
#define OPEN_SHORT_DUTY_REG 0x18
|
||||||
|
#define OPEN_SHORT_FLAG_REG 0x19
|
||||||
|
|
||||||
|
#define MSKOPEN_DETECTION_INTERRUPT_ENABLE (0x01 << 7)
|
||||||
|
#define MSKOPEN_DETECTION_INTERRUPT_DISABLE (0x00)
|
||||||
|
|
||||||
|
#define MSKSHORT_DETECTION_INTERRUPT_ENABLE (0x01 << 6)
|
||||||
|
#define MSKSHORT_DETECTION_INTERRUPT_DISABLE (0x00)
|
||||||
|
|
||||||
|
#define SOFTWARE_SLEEP_REG 0x1A
|
||||||
|
#define MSKSLEEP_ENABLE 0x02
|
||||||
|
#define MSKSLEEP_DISABLE 0x00
|
||||||
|
|
||||||
|
// LED Control Registers
|
||||||
|
#define LED_CONTROL_ON_OFF_FIRST_ADDR 0x0
|
||||||
|
#define LED_CONTROL_ON_OFF_LAST_ADDR 0x17
|
||||||
|
#define LED_CONTROL_ON_OFF_LENGTH ((LED_CONTROL_ON_OFF_LAST_ADDR - LED_CONTROL_ON_OFF_FIRST_ADDR) + 1)
|
||||||
|
|
||||||
|
#define LED_CONTROL_OPEN_FIRST_ADDR 0x18
|
||||||
|
#define LED_CONTROL_OPEN_LAST_ADDR 0x2F
|
||||||
|
#define LED_CONTROL_OPEN_LENGTH ((LED_CONTROL_OPEN_LAST_ADDR - LED_CONTROL_OPEN_FIRST_ADDR) + 1)
|
||||||
|
|
||||||
|
#define LED_CONTROL_SHORT_FIRST_ADDR 0x30
|
||||||
|
#define LED_CONTROL_SHORT_LAST_ADDR 0x47
|
||||||
|
#define LED_CONTROL_SHORT_LENGTH ((LED_CONTROL_SHORT_LAST_ADDR - LED_CONTROL_SHORT_FIRST_ADDR) + 1)
|
||||||
|
|
||||||
|
#define LED_CONTROL_PAGE_LENGTH 0x48
|
||||||
|
|
||||||
|
// LED Control Registers
|
||||||
|
#define LED_PWM_FIRST_ADDR 0x00
|
||||||
|
#define LED_PWM_LAST_ADDR 0xBF
|
||||||
|
#define LED_PWM_LENGTH 0xC0
|
||||||
|
|
||||||
|
// Current Tune Registers
|
||||||
|
#define LED_CURRENT_TUNE_FIRST_ADDR 0x00
|
||||||
|
#define LED_CURRENT_TUNE_LAST_ADDR 0x0B
|
||||||
|
#define LED_CURRENT_TUNE_LENGTH 0x0C
|
||||||
|
|
||||||
|
#define A_1 0x00
|
||||||
|
#define A_2 0x01
|
||||||
|
#define A_3 0x02
|
||||||
|
#define A_4 0x03
|
||||||
|
#define A_5 0x04
|
||||||
|
#define A_6 0x05
|
||||||
|
#define A_7 0x06
|
||||||
|
#define A_8 0x07
|
||||||
|
#define A_9 0x08
|
||||||
|
#define A_10 0x09
|
||||||
|
#define A_11 0x0A
|
||||||
|
#define A_12 0x0B
|
||||||
|
#define A_13 0x0C
|
||||||
|
#define A_14 0x0D
|
||||||
|
#define A_15 0x0E
|
||||||
|
#define A_16 0x0F
|
||||||
|
|
||||||
|
#define B_1 0x10
|
||||||
|
#define B_2 0x11
|
||||||
|
#define B_3 0x12
|
||||||
|
#define B_4 0x13
|
||||||
|
#define B_5 0x14
|
||||||
|
#define B_6 0x15
|
||||||
|
#define B_7 0x16
|
||||||
|
#define B_8 0x17
|
||||||
|
#define B_9 0x18
|
||||||
|
#define B_10 0x19
|
||||||
|
#define B_11 0x1A
|
||||||
|
#define B_12 0x1B
|
||||||
|
#define B_13 0x1C
|
||||||
|
#define B_14 0x1D
|
||||||
|
#define B_15 0x1E
|
||||||
|
#define B_16 0x1F
|
||||||
|
|
||||||
|
#define C_1 0x20
|
||||||
|
#define C_2 0x21
|
||||||
|
#define C_3 0x22
|
||||||
|
#define C_4 0x23
|
||||||
|
#define C_5 0x24
|
||||||
|
#define C_6 0x25
|
||||||
|
#define C_7 0x26
|
||||||
|
#define C_8 0x27
|
||||||
|
#define C_9 0x28
|
||||||
|
#define C_10 0x29
|
||||||
|
#define C_11 0x2A
|
||||||
|
#define C_12 0x2B
|
||||||
|
#define C_13 0x2C
|
||||||
|
#define C_14 0x2D
|
||||||
|
#define C_15 0x2E
|
||||||
|
#define C_16 0x2F
|
||||||
|
|
||||||
|
#define D_1 0x30
|
||||||
|
#define D_2 0x31
|
||||||
|
#define D_3 0x32
|
||||||
|
#define D_4 0x33
|
||||||
|
#define D_5 0x34
|
||||||
|
#define D_6 0x35
|
||||||
|
#define D_7 0x36
|
||||||
|
#define D_8 0x37
|
||||||
|
#define D_9 0x38
|
||||||
|
#define D_10 0x39
|
||||||
|
#define D_11 0x3A
|
||||||
|
#define D_12 0x3B
|
||||||
|
#define D_13 0x3C
|
||||||
|
#define D_14 0x3D
|
||||||
|
#define D_15 0x3E
|
||||||
|
#define D_16 0x3F
|
||||||
|
|
||||||
|
#define E_1 0x40
|
||||||
|
#define E_2 0x41
|
||||||
|
#define E_3 0x42
|
||||||
|
#define E_4 0x43
|
||||||
|
#define E_5 0x44
|
||||||
|
#define E_6 0x45
|
||||||
|
#define E_7 0x46
|
||||||
|
#define E_8 0x47
|
||||||
|
#define E_9 0x48
|
||||||
|
#define E_10 0x49
|
||||||
|
#define E_11 0x4A
|
||||||
|
#define E_12 0x4B
|
||||||
|
#define E_13 0x4C
|
||||||
|
#define E_14 0x4D
|
||||||
|
#define E_15 0x4E
|
||||||
|
#define E_16 0x4F
|
||||||
|
|
||||||
|
#define F_1 0x50
|
||||||
|
#define F_2 0x51
|
||||||
|
#define F_3 0x52
|
||||||
|
#define F_4 0x53
|
||||||
|
#define F_5 0x54
|
||||||
|
#define F_6 0x55
|
||||||
|
#define F_7 0x56
|
||||||
|
#define F_8 0x57
|
||||||
|
#define F_9 0x58
|
||||||
|
#define F_10 0x59
|
||||||
|
#define F_11 0x5A
|
||||||
|
#define F_12 0x5B
|
||||||
|
#define F_13 0x5C
|
||||||
|
#define F_14 0x5D
|
||||||
|
#define F_15 0x5E
|
||||||
|
#define F_16 0x5F
|
||||||
|
|
||||||
|
#define G_1 0x60
|
||||||
|
#define G_2 0x61
|
||||||
|
#define G_3 0x62
|
||||||
|
#define G_4 0x63
|
||||||
|
#define G_5 0x64
|
||||||
|
#define G_6 0x65
|
||||||
|
#define G_7 0x66
|
||||||
|
#define G_8 0x67
|
||||||
|
#define G_9 0x68
|
||||||
|
#define G_10 0x69
|
||||||
|
#define G_11 0x6A
|
||||||
|
#define G_12 0x6B
|
||||||
|
#define G_13 0x6C
|
||||||
|
#define G_14 0x6D
|
||||||
|
#define G_15 0x6E
|
||||||
|
#define G_16 0x6F
|
||||||
|
|
||||||
|
#define H_1 0x70
|
||||||
|
#define H_2 0x71
|
||||||
|
#define H_3 0x72
|
||||||
|
#define H_4 0x73
|
||||||
|
#define H_5 0x74
|
||||||
|
#define H_6 0x75
|
||||||
|
#define H_7 0x76
|
||||||
|
#define H_8 0x77
|
||||||
|
#define H_9 0x78
|
||||||
|
#define H_10 0x79
|
||||||
|
#define H_11 0x7A
|
||||||
|
#define H_12 0x7B
|
||||||
|
#define H_13 0x7C
|
||||||
|
#define H_14 0x7D
|
||||||
|
#define H_15 0x7E
|
||||||
|
#define H_16 0x7F
|
||||||
|
|
||||||
|
#define I_1 0x80
|
||||||
|
#define I_2 0x81
|
||||||
|
#define I_3 0x82
|
||||||
|
#define I_4 0x83
|
||||||
|
#define I_5 0x84
|
||||||
|
#define I_6 0x85
|
||||||
|
#define I_7 0x86
|
||||||
|
#define I_8 0x87
|
||||||
|
#define I_9 0x88
|
||||||
|
#define I_10 0x89
|
||||||
|
#define I_11 0x8A
|
||||||
|
#define I_12 0x8B
|
||||||
|
#define I_13 0x8C
|
||||||
|
#define I_14 0x8D
|
||||||
|
#define I_15 0x8E
|
||||||
|
#define I_16 0x8F
|
||||||
|
|
||||||
|
#define J_1 0x90
|
||||||
|
#define J_2 0x91
|
||||||
|
#define J_3 0x92
|
||||||
|
#define J_4 0x93
|
||||||
|
#define J_5 0x94
|
||||||
|
#define J_6 0x95
|
||||||
|
#define J_7 0x96
|
||||||
|
#define J_8 0x97
|
||||||
|
#define J_9 0x98
|
||||||
|
#define J_10 0x99
|
||||||
|
#define J_11 0x9A
|
||||||
|
#define J_12 0x9B
|
||||||
|
#define J_13 0x9C
|
||||||
|
#define J_14 0x9D
|
||||||
|
#define J_15 0x9E
|
||||||
|
#define J_16 0x9F
|
||||||
|
|
||||||
|
#define K_1 0xA0
|
||||||
|
#define K_2 0xA1
|
||||||
|
#define K_3 0xA2
|
||||||
|
#define K_4 0xA3
|
||||||
|
#define K_5 0xA4
|
||||||
|
#define K_6 0xA5
|
||||||
|
#define K_7 0xA6
|
||||||
|
#define K_8 0xA7
|
||||||
|
#define K_9 0xA8
|
||||||
|
#define K_10 0xA9
|
||||||
|
#define K_11 0xAA
|
||||||
|
#define K_12 0xAB
|
||||||
|
#define K_13 0xAC
|
||||||
|
#define K_14 0xAD
|
||||||
|
#define K_15 0xAE
|
||||||
|
#define K_16 0xAF
|
||||||
|
|
||||||
|
#define L_1 0xB0
|
||||||
|
#define L_2 0xB1
|
||||||
|
#define L_3 0xB2
|
||||||
|
#define L_4 0xB3
|
||||||
|
#define L_5 0xB4
|
||||||
|
#define L_6 0xB5
|
||||||
|
#define L_7 0xB6
|
||||||
|
#define L_8 0xB7
|
||||||
|
#define L_9 0xB8
|
||||||
|
#define L_10 0xB9
|
||||||
|
#define L_11 0xBA
|
||||||
|
#define L_12 0xBB
|
||||||
|
#define L_13 0xBC
|
||||||
|
#define L_14 0xBD
|
||||||
|
#define L_15 0xBE
|
||||||
|
#define L_16 0xBF
|
@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"keyboard_name": "0-Sixty",
|
|
||||||
"usb": {
|
|
||||||
"pid": "0x0060"
|
|
||||||
},
|
|
||||||
"indicators": {
|
|
||||||
"caps_lock": "B6"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,38 +0,0 @@
|
|||||||
/* Copyright 2020 Vinam Arora <vinam@posteo.de>
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
|
|
||||||
/* 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
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Feature disable options
|
|
||||||
* These options are also useful to firmware size reduction.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* disable debug print */
|
|
||||||
// #define NO_DEBUG
|
|
||||||
|
|
||||||
/* disable print */
|
|
||||||
// #define NO_PRINT
|
|
||||||
|
|
||||||
/* disable action features */
|
|
||||||
//#define NO_ACTION_LAYER
|
|
||||||
//#define NO_ACTION_TAPPING
|
|
||||||
//#define NO_ACTION_ONESHOT
|
|
@ -1,362 +0,0 @@
|
|||||||
{
|
|
||||||
"manufacturer": "ven0mtr0n",
|
|
||||||
"url": "",
|
|
||||||
"maintainer": "vinamarora8",
|
|
||||||
"usb": {
|
|
||||||
"vid": "0x7654",
|
|
||||||
"device_version": "0.0.1"
|
|
||||||
},
|
|
||||||
"matrix_pins": {
|
|
||||||
"cols": ["D3", "D2", "D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5", "B3", "B2"],
|
|
||||||
"rows": ["B1", "F7", "F6", "F5", "F4"]
|
|
||||||
},
|
|
||||||
"diode_direction": "COL2ROW",
|
|
||||||
"features": {
|
|
||||||
"extrakey": true,
|
|
||||||
"console": true,
|
|
||||||
"command": true,
|
|
||||||
"nkro": true
|
|
||||||
},
|
|
||||||
"build": {
|
|
||||||
"lto": true
|
|
||||||
},
|
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "caterina",
|
|
||||||
"layouts": {
|
|
||||||
"LAYOUT_1x2uC": {
|
|
||||||
"layout": [
|
|
||||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
|
||||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
|
||||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
|
||||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
|
||||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
|
||||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
|
||||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
|
||||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
|
||||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
|
||||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
|
||||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
|
||||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
|
||||||
|
|
||||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
|
||||||
{"matrix": [1, 1], "x": 1, "y": 1},
|
|
||||||
{"matrix": [1, 2], "x": 2, "y": 1},
|
|
||||||
{"matrix": [1, 3], "x": 3, "y": 1},
|
|
||||||
{"matrix": [1, 4], "x": 4, "y": 1},
|
|
||||||
{"matrix": [1, 5], "x": 5, "y": 1},
|
|
||||||
{"matrix": [1, 6], "x": 6, "y": 1},
|
|
||||||
{"matrix": [1, 7], "x": 7, "y": 1},
|
|
||||||
{"matrix": [1, 8], "x": 8, "y": 1},
|
|
||||||
{"matrix": [1, 9], "x": 9, "y": 1},
|
|
||||||
{"matrix": [1, 10], "x": 10, "y": 1},
|
|
||||||
{"matrix": [1, 11], "x": 11, "y": 1},
|
|
||||||
|
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
|
||||||
{"matrix": [2, 1], "x": 1, "y": 2},
|
|
||||||
{"matrix": [2, 2], "x": 2, "y": 2},
|
|
||||||
{"matrix": [2, 3], "x": 3, "y": 2},
|
|
||||||
{"matrix": [2, 4], "x": 4, "y": 2},
|
|
||||||
{"matrix": [2, 5], "x": 5, "y": 2},
|
|
||||||
{"matrix": [2, 6], "x": 6, "y": 2},
|
|
||||||
{"matrix": [2, 7], "x": 7, "y": 2},
|
|
||||||
{"matrix": [2, 8], "x": 8, "y": 2},
|
|
||||||
{"matrix": [2, 9], "x": 9, "y": 2},
|
|
||||||
{"matrix": [2, 10], "x": 10, "y": 2},
|
|
||||||
{"matrix": [2, 11], "x": 11, "y": 2},
|
|
||||||
|
|
||||||
{"matrix": [3, 0], "x": 0, "y": 3},
|
|
||||||
{"matrix": [3, 1], "x": 1, "y": 3},
|
|
||||||
{"matrix": [3, 2], "x": 2, "y": 3},
|
|
||||||
{"matrix": [3, 3], "x": 3, "y": 3},
|
|
||||||
{"matrix": [3, 4], "x": 4, "y": 3},
|
|
||||||
{"matrix": [3, 5], "x": 5, "y": 3},
|
|
||||||
{"matrix": [3, 6], "x": 6, "y": 3},
|
|
||||||
{"matrix": [3, 7], "x": 7, "y": 3},
|
|
||||||
{"matrix": [3, 8], "x": 8, "y": 3},
|
|
||||||
{"matrix": [3, 9], "x": 9, "y": 3},
|
|
||||||
{"matrix": [3, 10], "x": 10, "y": 3},
|
|
||||||
{"matrix": [3, 11], "x": 11, "y": 3},
|
|
||||||
|
|
||||||
{"matrix": [4, 0], "x": 0, "y": 4},
|
|
||||||
{"matrix": [4, 1], "x": 1, "y": 4},
|
|
||||||
{"matrix": [4, 2], "x": 2, "y": 4},
|
|
||||||
{"matrix": [4, 3], "x": 3, "y": 4},
|
|
||||||
{"matrix": [4, 4], "x": 4, "y": 4},
|
|
||||||
{"matrix": [4, 6], "x": 5, "y": 4, "w": 2},
|
|
||||||
{"matrix": [4, 7], "x": 7, "y": 4},
|
|
||||||
{"matrix": [4, 8], "x": 8, "y": 4},
|
|
||||||
{"matrix": [4, 9], "x": 9, "y": 4},
|
|
||||||
{"matrix": [4, 10], "x": 10, "y": 4},
|
|
||||||
{"matrix": [4, 11], "x": 11, "y": 4}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"LAYOUT_2x2uC": {
|
|
||||||
"layout": [
|
|
||||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
|
||||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
|
||||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
|
||||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
|
||||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
|
||||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
|
||||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
|
||||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
|
||||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
|
||||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
|
||||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
|
||||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
|
||||||
|
|
||||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
|
||||||
{"matrix": [1, 1], "x": 1, "y": 1},
|
|
||||||
{"matrix": [1, 2], "x": 2, "y": 1},
|
|
||||||
{"matrix": [1, 3], "x": 3, "y": 1},
|
|
||||||
{"matrix": [1, 4], "x": 4, "y": 1},
|
|
||||||
{"matrix": [1, 5], "x": 5, "y": 1},
|
|
||||||
{"matrix": [1, 6], "x": 6, "y": 1},
|
|
||||||
{"matrix": [1, 7], "x": 7, "y": 1},
|
|
||||||
{"matrix": [1, 8], "x": 8, "y": 1},
|
|
||||||
{"matrix": [1, 9], "x": 9, "y": 1},
|
|
||||||
{"matrix": [1, 10], "x": 10, "y": 1},
|
|
||||||
{"matrix": [1, 11], "x": 11, "y": 1},
|
|
||||||
|
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
|
||||||
{"matrix": [2, 1], "x": 1, "y": 2},
|
|
||||||
{"matrix": [2, 2], "x": 2, "y": 2},
|
|
||||||
{"matrix": [2, 3], "x": 3, "y": 2},
|
|
||||||
{"matrix": [2, 4], "x": 4, "y": 2},
|
|
||||||
{"matrix": [2, 5], "x": 5, "y": 2},
|
|
||||||
{"matrix": [2, 6], "x": 6, "y": 2},
|
|
||||||
{"matrix": [2, 7], "x": 7, "y": 2},
|
|
||||||
{"matrix": [2, 8], "x": 8, "y": 2},
|
|
||||||
{"matrix": [2, 9], "x": 9, "y": 2},
|
|
||||||
{"matrix": [2, 10], "x": 10, "y": 2},
|
|
||||||
{"matrix": [2, 11], "x": 11, "y": 2},
|
|
||||||
|
|
||||||
{"matrix": [3, 0], "x": 0, "y": 3},
|
|
||||||
{"matrix": [3, 1], "x": 1, "y": 3},
|
|
||||||
{"matrix": [3, 2], "x": 2, "y": 3},
|
|
||||||
{"matrix": [3, 3], "x": 3, "y": 3},
|
|
||||||
{"matrix": [3, 4], "x": 4, "y": 3},
|
|
||||||
{"matrix": [3, 5], "x": 5, "y": 3},
|
|
||||||
{"matrix": [3, 6], "x": 6, "y": 3},
|
|
||||||
{"matrix": [3, 7], "x": 7, "y": 3},
|
|
||||||
{"matrix": [3, 8], "x": 8, "y": 3},
|
|
||||||
{"matrix": [3, 9], "x": 9, "y": 3},
|
|
||||||
{"matrix": [3, 10], "x": 10, "y": 3},
|
|
||||||
{"matrix": [3, 11], "x": 11, "y": 3},
|
|
||||||
|
|
||||||
{"matrix": [4, 0], "x": 0, "y": 4},
|
|
||||||
{"matrix": [4, 1], "x": 1, "y": 4},
|
|
||||||
{"matrix": [4, 2], "x": 2, "y": 4},
|
|
||||||
{"matrix": [4, 3], "x": 3, "y": 4},
|
|
||||||
{"matrix": [4, 5], "x": 4, "y": 4, "w": 2},
|
|
||||||
{"matrix": [4, 6], "x": 6, "y": 4, "w": 2},
|
|
||||||
{"matrix": [4, 8], "x": 8, "y": 4},
|
|
||||||
{"matrix": [4, 9], "x": 9, "y": 4},
|
|
||||||
{"matrix": [4, 10], "x": 10, "y": 4},
|
|
||||||
{"matrix": [4, 11], "x": 11, "y": 4}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"LAYOUT_ortho_5x12": {
|
|
||||||
"layout": [
|
|
||||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
|
||||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
|
||||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
|
||||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
|
||||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
|
||||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
|
||||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
|
||||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
|
||||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
|
||||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
|
||||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
|
||||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
|
||||||
|
|
||||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
|
||||||
{"matrix": [1, 1], "x": 1, "y": 1},
|
|
||||||
{"matrix": [1, 2], "x": 2, "y": 1},
|
|
||||||
{"matrix": [1, 3], "x": 3, "y": 1},
|
|
||||||
{"matrix": [1, 4], "x": 4, "y": 1},
|
|
||||||
{"matrix": [1, 5], "x": 5, "y": 1},
|
|
||||||
{"matrix": [1, 6], "x": 6, "y": 1},
|
|
||||||
{"matrix": [1, 7], "x": 7, "y": 1},
|
|
||||||
{"matrix": [1, 8], "x": 8, "y": 1},
|
|
||||||
{"matrix": [1, 9], "x": 9, "y": 1},
|
|
||||||
{"matrix": [1, 10], "x": 10, "y": 1},
|
|
||||||
{"matrix": [1, 11], "x": 11, "y": 1},
|
|
||||||
|
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
|
||||||
{"matrix": [2, 1], "x": 1, "y": 2},
|
|
||||||
{"matrix": [2, 2], "x": 2, "y": 2},
|
|
||||||
{"matrix": [2, 3], "x": 3, "y": 2},
|
|
||||||
{"matrix": [2, 4], "x": 4, "y": 2},
|
|
||||||
{"matrix": [2, 5], "x": 5, "y": 2},
|
|
||||||
{"matrix": [2, 6], "x": 6, "y": 2},
|
|
||||||
{"matrix": [2, 7], "x": 7, "y": 2},
|
|
||||||
{"matrix": [2, 8], "x": 8, "y": 2},
|
|
||||||
{"matrix": [2, 9], "x": 9, "y": 2},
|
|
||||||
{"matrix": [2, 10], "x": 10, "y": 2},
|
|
||||||
{"matrix": [2, 11], "x": 11, "y": 2},
|
|
||||||
|
|
||||||
{"matrix": [3, 0], "x": 0, "y": 3},
|
|
||||||
{"matrix": [3, 1], "x": 1, "y": 3},
|
|
||||||
{"matrix": [3, 2], "x": 2, "y": 3},
|
|
||||||
{"matrix": [3, 3], "x": 3, "y": 3},
|
|
||||||
{"matrix": [3, 4], "x": 4, "y": 3},
|
|
||||||
{"matrix": [3, 5], "x": 5, "y": 3},
|
|
||||||
{"matrix": [3, 6], "x": 6, "y": 3},
|
|
||||||
{"matrix": [3, 7], "x": 7, "y": 3},
|
|
||||||
{"matrix": [3, 8], "x": 8, "y": 3},
|
|
||||||
{"matrix": [3, 9], "x": 9, "y": 3},
|
|
||||||
{"matrix": [3, 10], "x": 10, "y": 3},
|
|
||||||
{"matrix": [3, 11], "x": 11, "y": 3},
|
|
||||||
|
|
||||||
{"matrix": [4, 0], "x": 0, "y": 4},
|
|
||||||
{"matrix": [4, 1], "x": 1, "y": 4},
|
|
||||||
{"matrix": [4, 2], "x": 2, "y": 4},
|
|
||||||
{"matrix": [4, 3], "x": 3, "y": 4},
|
|
||||||
{"matrix": [4, 4], "x": 4, "y": 4},
|
|
||||||
{"matrix": [4, 5], "x": 5, "y": 4},
|
|
||||||
{"matrix": [4, 6], "x": 6, "y": 4},
|
|
||||||
{"matrix": [4, 7], "x": 7, "y": 4},
|
|
||||||
{"matrix": [4, 8], "x": 8, "y": 4},
|
|
||||||
{"matrix": [4, 9], "x": 9, "y": 4},
|
|
||||||
{"matrix": [4, 10], "x": 10, "y": 4},
|
|
||||||
{"matrix": [4, 11], "x": 11, "y": 4}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"LAYOUT_1x2uR": {
|
|
||||||
"layout": [
|
|
||||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
|
||||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
|
||||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
|
||||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
|
||||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
|
||||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
|
||||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
|
||||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
|
||||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
|
||||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
|
||||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
|
||||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
|
||||||
|
|
||||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
|
||||||
{"matrix": [1, 1], "x": 1, "y": 1},
|
|
||||||
{"matrix": [1, 2], "x": 2, "y": 1},
|
|
||||||
{"matrix": [1, 3], "x": 3, "y": 1},
|
|
||||||
{"matrix": [1, 4], "x": 4, "y": 1},
|
|
||||||
{"matrix": [1, 5], "x": 5, "y": 1},
|
|
||||||
{"matrix": [1, 6], "x": 6, "y": 1},
|
|
||||||
{"matrix": [1, 7], "x": 7, "y": 1},
|
|
||||||
{"matrix": [1, 8], "x": 8, "y": 1},
|
|
||||||
{"matrix": [1, 9], "x": 9, "y": 1},
|
|
||||||
{"matrix": [1, 10], "x": 10, "y": 1},
|
|
||||||
{"matrix": [1, 11], "x": 11, "y": 1},
|
|
||||||
|
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
|
||||||
{"matrix": [2, 1], "x": 1, "y": 2},
|
|
||||||
{"matrix": [2, 2], "x": 2, "y": 2},
|
|
||||||
{"matrix": [2, 3], "x": 3, "y": 2},
|
|
||||||
{"matrix": [2, 4], "x": 4, "y": 2},
|
|
||||||
{"matrix": [2, 5], "x": 5, "y": 2},
|
|
||||||
{"matrix": [2, 6], "x": 6, "y": 2},
|
|
||||||
{"matrix": [2, 7], "x": 7, "y": 2},
|
|
||||||
{"matrix": [2, 8], "x": 8, "y": 2},
|
|
||||||
{"matrix": [2, 9], "x": 9, "y": 2},
|
|
||||||
{"matrix": [2, 10], "x": 10, "y": 2},
|
|
||||||
{"matrix": [2, 11], "x": 11, "y": 2},
|
|
||||||
|
|
||||||
{"matrix": [3, 0], "x": 0, "y": 3},
|
|
||||||
{"matrix": [3, 1], "x": 1, "y": 3},
|
|
||||||
{"matrix": [3, 2], "x": 2, "y": 3},
|
|
||||||
{"matrix": [3, 3], "x": 3, "y": 3},
|
|
||||||
{"matrix": [3, 4], "x": 4, "y": 3},
|
|
||||||
{"matrix": [3, 5], "x": 5, "y": 3},
|
|
||||||
{"matrix": [3, 6], "x": 6, "y": 3},
|
|
||||||
{"matrix": [3, 7], "x": 7, "y": 3},
|
|
||||||
{"matrix": [3, 8], "x": 8, "y": 3},
|
|
||||||
{"matrix": [3, 9], "x": 9, "y": 3},
|
|
||||||
{"matrix": [3, 10], "x": 10, "y": 3},
|
|
||||||
{"matrix": [3, 11], "x": 11, "y": 3},
|
|
||||||
|
|
||||||
{"matrix": [4, 0], "x": 0, "y": 4},
|
|
||||||
{"matrix": [4, 1], "x": 1, "y": 4},
|
|
||||||
{"matrix": [4, 2], "x": 2, "y": 4},
|
|
||||||
{"matrix": [4, 3], "x": 3, "y": 4},
|
|
||||||
{"matrix": [4, 4], "x": 4, "y": 4},
|
|
||||||
{"matrix": [4, 5], "x": 5, "y": 4},
|
|
||||||
{"matrix": [4, 6], "x": 6, "y": 4, "w": 2},
|
|
||||||
{"matrix": [4, 8], "x": 8, "y": 4},
|
|
||||||
{"matrix": [4, 9], "x": 9, "y": 4},
|
|
||||||
{"matrix": [4, 10], "x": 10, "y": 4},
|
|
||||||
{"matrix": [4, 11], "x": 11, "y": 4}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"LAYOUT_1x2uL": {
|
|
||||||
"layout": [
|
|
||||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
|
||||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
|
||||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
|
||||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
|
||||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
|
||||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
|
||||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
|
||||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
|
||||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
|
||||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
|
||||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
|
||||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
|
||||||
|
|
||||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
|
||||||
{"matrix": [1, 1], "x": 1, "y": 1},
|
|
||||||
{"matrix": [1, 2], "x": 2, "y": 1},
|
|
||||||
{"matrix": [1, 3], "x": 3, "y": 1},
|
|
||||||
{"matrix": [1, 4], "x": 4, "y": 1},
|
|
||||||
{"matrix": [1, 5], "x": 5, "y": 1},
|
|
||||||
{"matrix": [1, 6], "x": 6, "y": 1},
|
|
||||||
{"matrix": [1, 7], "x": 7, "y": 1},
|
|
||||||
{"matrix": [1, 8], "x": 8, "y": 1},
|
|
||||||
{"matrix": [1, 9], "x": 9, "y": 1},
|
|
||||||
{"matrix": [1, 10], "x": 10, "y": 1},
|
|
||||||
{"matrix": [1, 11], "x": 11, "y": 1},
|
|
||||||
|
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
|
||||||
{"matrix": [2, 1], "x": 1, "y": 2},
|
|
||||||
{"matrix": [2, 2], "x": 2, "y": 2},
|
|
||||||
{"matrix": [2, 3], "x": 3, "y": 2},
|
|
||||||
{"matrix": [2, 4], "x": 4, "y": 2},
|
|
||||||
{"matrix": [2, 5], "x": 5, "y": 2},
|
|
||||||
{"matrix": [2, 6], "x": 6, "y": 2},
|
|
||||||
{"matrix": [2, 7], "x": 7, "y": 2},
|
|
||||||
{"matrix": [2, 8], "x": 8, "y": 2},
|
|
||||||
{"matrix": [2, 9], "x": 9, "y": 2},
|
|
||||||
{"matrix": [2, 10], "x": 10, "y": 2},
|
|
||||||
{"matrix": [2, 11], "x": 11, "y": 2},
|
|
||||||
|
|
||||||
{"matrix": [3, 0], "x": 0, "y": 3},
|
|
||||||
{"matrix": [3, 1], "x": 1, "y": 3},
|
|
||||||
{"matrix": [3, 2], "x": 2, "y": 3},
|
|
||||||
{"matrix": [3, 3], "x": 3, "y": 3},
|
|
||||||
{"matrix": [3, 4], "x": 4, "y": 3},
|
|
||||||
{"matrix": [3, 5], "x": 5, "y": 3},
|
|
||||||
{"matrix": [3, 6], "x": 6, "y": 3},
|
|
||||||
{"matrix": [3, 7], "x": 7, "y": 3},
|
|
||||||
{"matrix": [3, 8], "x": 8, "y": 3},
|
|
||||||
{"matrix": [3, 9], "x": 9, "y": 3},
|
|
||||||
{"matrix": [3, 10], "x": 10, "y": 3},
|
|
||||||
{"matrix": [3, 11], "x": 11, "y": 3},
|
|
||||||
|
|
||||||
{"matrix": [4, 0], "x": 0, "y": 4},
|
|
||||||
{"matrix": [4, 1], "x": 1, "y": 4},
|
|
||||||
{"matrix": [4, 2], "x": 2, "y": 4},
|
|
||||||
{"matrix": [4, 3], "x": 3, "y": 4},
|
|
||||||
{"matrix": [4, 5], "x": 4, "y": 4, "w": 2},
|
|
||||||
{"matrix": [4, 6], "x": 6, "y": 4},
|
|
||||||
{"matrix": [4, 7], "x": 7, "y": 4},
|
|
||||||
{"matrix": [4, 8], "x": 8, "y": 4},
|
|
||||||
{"matrix": [4, 9], "x": 9, "y": 4},
|
|
||||||
{"matrix": [4, 10], "x": 10, "y": 4},
|
|
||||||
{"matrix": [4, 11], "x": 11, "y": 4}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,168 +0,0 @@
|
|||||||
/* Copyright 2020 Vinam Arora <vinam@posteo.de>
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
|
|
||||||
enum zero_sixty_layers {
|
|
||||||
_QWERTY,
|
|
||||||
_COLEMAK,
|
|
||||||
_DVORAK,
|
|
||||||
_LOWER,
|
|
||||||
_RAISE,
|
|
||||||
_ADJUST
|
|
||||||
};
|
|
||||||
|
|
||||||
#define QWERTY DF(_QWERTY)
|
|
||||||
#define COLEMAK DF(_COLEMAK)
|
|
||||||
#define DVORAK DF(_DVORAK)
|
|
||||||
#define LOWER MO(_LOWER)
|
|
||||||
#define RAISE MO(_RAISE)
|
|
||||||
#define ADJUST MO(_ADJUST)
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
||||||
|
|
||||||
/* Qwerty
|
|
||||||
* ,-----------------------------------------------------------------------------------.
|
|
||||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
|
||||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
|
|
||||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
|
||||||
* | Esc | A | S | D | F | G | H | J | K | L | ; | " |
|
|
||||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
|
||||||
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
|
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
|
||||||
* | Caps | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
|
||||||
* `-----------------------------------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[_QWERTY] = LAYOUT_ortho_5x12(
|
|
||||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_DEL,
|
|
||||||
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
|
|
||||||
KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
|
||||||
),
|
|
||||||
|
|
||||||
/* Colemak
|
|
||||||
* ,-----------------------------------------------------------------------------------.
|
|
||||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
|
||||||
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
|
|
||||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
|
||||||
* | Esc | A | R | S | T | D | H | N | E | I | O | " |
|
|
||||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
|
||||||
* | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
|
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
|
||||||
* | Caps | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
|
||||||
* `-----------------------------------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[_COLEMAK] = LAYOUT_ortho_5x12(
|
|
||||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
|
||||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL,
|
|
||||||
KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
|
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
|
|
||||||
KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
|
||||||
),
|
|
||||||
|
|
||||||
/* Dvorak
|
|
||||||
* ,-----------------------------------------------------------------------------------.
|
|
||||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
|
||||||
* | Tab | " | , | . | P | Y | F | G | C | R | L | Del |
|
|
||||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
|
||||||
* | Esc | A | O | E | U | I | D | H | T | N | S | / |
|
|
||||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
|
||||||
* | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
|
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
|
||||||
* | Caps | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
|
||||||
* `-----------------------------------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[_DVORAK] = LAYOUT_ortho_5x12(
|
|
||||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
|
||||||
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL,
|
|
||||||
KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
|
|
||||||
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT,
|
|
||||||
KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
|
||||||
),
|
|
||||||
|
|
||||||
/* Lower
|
|
||||||
* ,-----------------------------------------------------------------------------------.
|
|
||||||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
|
||||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
|
||||||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
|
|
||||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
|
||||||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
|
|
||||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
|
||||||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | |
|
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
|
||||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
|
||||||
* `-----------------------------------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[_LOWER] = LAYOUT_ortho_5x12(
|
|
||||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
|
||||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
|
|
||||||
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
|
||||||
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
|
||||||
),
|
|
||||||
|
|
||||||
/* Raise
|
|
||||||
* ,-----------------------------------------------------------------------------------.
|
|
||||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
|
||||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
|
|
||||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
|
||||||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
|
|
||||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
|
||||||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | |
|
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
|
||||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
|
||||||
* `-----------------------------------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[_RAISE] = LAYOUT_ortho_5x12(
|
|
||||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
|
||||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
|
|
||||||
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
|
||||||
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
|
||||||
),
|
|
||||||
|
|
||||||
/* Adjust
|
|
||||||
* ,-----------------------------------------------------------------------------------.
|
|
||||||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
|
||||||
* | | Reset| | | | | | | | | | Del |
|
|
||||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
|
||||||
* | | | | | | | |Qwerty|Colemk|Dvorak| | |
|
|
||||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
|
||||||
* | | | | | | | | | | | | |
|
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
|
||||||
* | | | | | | | | | | | |
|
|
||||||
* `-----------------------------------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[_ADJUST] = LAYOUT_ortho_5x12(
|
|
||||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
|
||||||
_______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
|
||||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
# The default 0-Sixty layout - largely based on the Preonic's and Planck's
|
|
@ -1,22 +0,0 @@
|
|||||||
/* Copyright 2021 Vinam Arora <vinam@posteo.de>
|
|
||||||
*
|
|
||||||
* 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 DYNAMIC_KEYMAP_LAYER_COUNT 7
|
|
||||||
/* This is 4 by default. ProMicro's memory doesn't seem to be able to
|
|
||||||
* support more than 7 dynamic keymap layers
|
|
||||||
*/
|
|
@ -1,146 +0,0 @@
|
|||||||
/* Copyright 2020 Vinam Arora <vinam@posteo.de>
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
|
|
||||||
// 4 layers, because that is what VIA can support by default
|
|
||||||
enum zero_sixty_layers {
|
|
||||||
_QWERTY,
|
|
||||||
_LOWER,
|
|
||||||
_RAISE,
|
|
||||||
_ADJUST,
|
|
||||||
_EMPTY1, // Just to initialize dynamic layers in VIA
|
|
||||||
_EMPTY2,
|
|
||||||
_EMPTY3,
|
|
||||||
};
|
|
||||||
|
|
||||||
#define LOWER MO(_LOWER)
|
|
||||||
#define RAISE MO(_RAISE)
|
|
||||||
#define ADJUST MO(_ADJUST)
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
||||||
|
|
||||||
/* Qwerty
|
|
||||||
* ,-----------------------------------------------------------------------------------.
|
|
||||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
|
||||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
|
|
||||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
|
||||||
* | Esc | A | S | D | F | G | H | J | K | L | ; | " |
|
|
||||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
|
||||||
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
|
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
|
||||||
* | Caps | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
|
||||||
* `-----------------------------------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[_QWERTY] = LAYOUT_ortho_5x12(
|
|
||||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_DEL,
|
|
||||||
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
|
|
||||||
KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
|
||||||
),
|
|
||||||
|
|
||||||
/* Lower
|
|
||||||
* ,-----------------------------------------------------------------------------------.
|
|
||||||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
|
||||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
|
||||||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
|
|
||||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
|
||||||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
|
|
||||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
|
||||||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | |
|
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
|
||||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
|
||||||
* `-----------------------------------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[_LOWER] = LAYOUT_ortho_5x12(
|
|
||||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
|
||||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
|
|
||||||
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
|
||||||
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, ADJUST, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
|
||||||
),
|
|
||||||
|
|
||||||
/* Raise
|
|
||||||
* ,-----------------------------------------------------------------------------------.
|
|
||||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
|
||||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
|
|
||||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
|
||||||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
|
|
||||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
|
||||||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | |
|
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
|
||||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
|
||||||
* `-----------------------------------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[_RAISE] = LAYOUT_ortho_5x12(
|
|
||||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
|
||||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
|
|
||||||
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
|
||||||
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
|
|
||||||
_______, _______, _______, _______, ADJUST, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
|
||||||
),
|
|
||||||
|
|
||||||
/* Adjust
|
|
||||||
* ,-----------------------------------------------------------------------------------.
|
|
||||||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
|
||||||
* | | Reset| | | | | | | | | | Del |
|
|
||||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
|
||||||
* | | | | | | | | | | | | |
|
|
||||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
|
||||||
* | | | | | | | | | | | | |
|
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
|
||||||
* | | | | | | | | | | | |
|
|
||||||
* `-----------------------------------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[_ADJUST] = LAYOUT_ortho_5x12(
|
|
||||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
|
||||||
_______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
|
||||||
),
|
|
||||||
|
|
||||||
/* Transparent layers, only to initialize VIA's dynamic layers */
|
|
||||||
|
|
||||||
[_EMPTY1] = LAYOUT_ortho_5x12(
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
|
||||||
),
|
|
||||||
|
|
||||||
[_EMPTY2] = LAYOUT_ortho_5x12(
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
|
||||||
),
|
|
||||||
|
|
||||||
[_EMPTY3] = LAYOUT_ortho_5x12(
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
|
||||||
),
|
|
||||||
|
|
||||||
};
|
|
@ -1 +0,0 @@
|
|||||||
# The default via-supported 0-Sixty layout - largely based on the Preonic's and Planck's
|
|
@ -1,2 +0,0 @@
|
|||||||
VIA_ENABLE = yes
|
|
||||||
MOUSEKEY_ENABLE = yes
|
|
@ -1,27 +0,0 @@
|
|||||||
# 0-Sixty
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
0-Sixty (pronounced "zero to sixty") is a 60 key ortholinear keyboard inspired by the [Discipline](https://github.com/coseyfannitutti/discipline) and the [Preonic](https://drop.com/buy/preonic-mechanical-keyboard). It is designed as a DIY through-hole kit and uses the ProMicro as its controller.
|
|
||||||
|
|
||||||
[More images here](https://imgur.com/a/b0JINqX)
|
|
||||||
|
|
||||||
* Keyboard Maintainer: [vinamarora8](https://github.com/vinamarora8)
|
|
||||||
* Hardware Supported: 0-Sixty PCB
|
|
||||||
* Hardware Availability: Private Group-Buy
|
|
||||||
|
|
||||||
Getting the board into bootloader mode:
|
|
||||||
|
|
||||||
To be able to flash firmware onto this board, you'll need to bring the ProMicro into bootloader mode. Simply tap the small reset button twice. The button is placed to the right of the ProMicro.
|
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
|
||||||
|
|
||||||
make 0_sixty:default
|
|
||||||
|
|
||||||
Flashing example for this keyboard:
|
|
||||||
|
|
||||||
make 0_sixty: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).
|
|
@ -1 +0,0 @@
|
|||||||
DEFAULT_FOLDER = 0_sixty/base
|
|
@ -1,33 +0,0 @@
|
|||||||
/* Copyright 2021 Vinam Arora <vinam@posteo.de>
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Feature disable options
|
|
||||||
* These options are also useful to firmware size reduction.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* disable debug print */
|
|
||||||
#define NO_DEBUG
|
|
||||||
|
|
||||||
/* disable print */
|
|
||||||
#define NO_PRINT
|
|
||||||
|
|
||||||
/* disable action features */
|
|
||||||
//#define NO_ACTION_LAYER
|
|
||||||
//#define NO_ACTION_TAPPING
|
|
||||||
//#define NO_ACTION_ONESHOT
|
|
@ -1,28 +0,0 @@
|
|||||||
{
|
|
||||||
"keyboard_name": "0-Sixty-underglow",
|
|
||||||
"usb": {
|
|
||||||
"pid": "0x0061"
|
|
||||||
},
|
|
||||||
"features": {
|
|
||||||
"rgblight": true
|
|
||||||
},
|
|
||||||
"ws2812": {
|
|
||||||
"pin": "B6"
|
|
||||||
},
|
|
||||||
"rgblight": {
|
|
||||||
"led_count": 24,
|
|
||||||
"max_brightness": 185,
|
|
||||||
"animations": {
|
|
||||||
"breathing": true,
|
|
||||||
"rainbow_mood": true,
|
|
||||||
"rainbow_swirl": true,
|
|
||||||
"snake": true,
|
|
||||||
"knight": true,
|
|
||||||
"christmas": true,
|
|
||||||
"static_gradient": true,
|
|
||||||
"rgb_test": true,
|
|
||||||
"alternating": true,
|
|
||||||
"twinkle": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,39 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2021 0xC7
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
/* 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
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Feature disable options
|
|
||||||
* These options are also useful to firmware size reduction.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* disable debug print */
|
|
||||||
//#define NO_DEBUG
|
|
||||||
|
|
||||||
/* disable print */
|
|
||||||
//#define NO_PRINT
|
|
||||||
|
|
||||||
/* disable action features */
|
|
||||||
//#define NO_ACTION_LAYER
|
|
||||||
//#define NO_ACTION_TAPPING
|
|
||||||
//#define NO_ACTION_ONESHOT
|
|
@ -1,92 +0,0 @@
|
|||||||
{
|
|
||||||
"keyboard_name": "61Key",
|
|
||||||
"manufacturer": "0xC7",
|
|
||||||
"url": "",
|
|
||||||
"maintainer": "RealEmanGaming",
|
|
||||||
"usb": {
|
|
||||||
"vid": "0xE117",
|
|
||||||
"pid": "0x6161",
|
|
||||||
"device_version": "0.0.1"
|
|
||||||
},
|
|
||||||
"matrix_pins": {
|
|
||||||
"cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "F7", "F6", "F5", "F4", "F1", "F0"],
|
|
||||||
"rows": ["B0", "B1", "B2", "B3", "B7"]
|
|
||||||
},
|
|
||||||
"diode_direction": "COL2ROW",
|
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
|
||||||
"layout_aliases": {
|
|
||||||
"LAYOUT": "LAYOUT_60_ansi"
|
|
||||||
},
|
|
||||||
"layouts": {
|
|
||||||
"LAYOUT_60_ansi": {
|
|
||||||
"layout": [
|
|
||||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
|
||||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
|
||||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
|
||||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
|
||||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
|
||||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
|
||||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
|
||||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
|
||||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
|
||||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
|
||||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
|
||||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
|
||||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
|
||||||
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
|
||||||
|
|
||||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
|
||||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
|
||||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
|
||||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
|
||||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
|
||||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
|
||||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
|
||||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
|
||||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
|
||||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
|
||||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
|
||||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
|
||||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
|
||||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
|
||||||
|
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
|
||||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
|
||||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
|
||||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
|
||||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
|
||||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
|
||||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
|
||||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
|
||||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
|
||||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
|
||||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
|
||||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
|
||||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
|
||||||
|
|
||||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
|
||||||
{"matrix": [3, 1], "x": 2.25, "y": 3},
|
|
||||||
{"matrix": [3, 2], "x": 3.25, "y": 3},
|
|
||||||
{"matrix": [3, 3], "x": 4.25, "y": 3},
|
|
||||||
{"matrix": [3, 4], "x": 5.25, "y": 3},
|
|
||||||
{"matrix": [3, 5], "x": 6.25, "y": 3},
|
|
||||||
{"matrix": [3, 6], "x": 7.25, "y": 3},
|
|
||||||
{"matrix": [3, 7], "x": 8.25, "y": 3},
|
|
||||||
{"matrix": [3, 8], "x": 9.25, "y": 3},
|
|
||||||
{"matrix": [3, 9], "x": 10.25, "y": 3},
|
|
||||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
|
||||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
|
|
||||||
|
|
||||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
|
|
||||||
{"matrix": [4, 8], "x": 10, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 9], "x": 11.25, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,34 +0,0 @@
|
|||||||
/* Copyright 2021 0xC7
|
|
||||||
*
|
|
||||||
* 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_60_ansi(
|
|
||||||
QK_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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL
|
|
||||||
),
|
|
||||||
[1] = LAYOUT_60_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_DEL,
|
|
||||||
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, QK_LOCK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, C(A(KC_DEL))
|
|
||||||
)
|
|
||||||
};
|
|
@ -1,48 +0,0 @@
|
|||||||
/* Copyright 2021 0xC7
|
|
||||||
*
|
|
||||||
* 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_60_ansi(
|
|
||||||
QK_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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL
|
|
||||||
),
|
|
||||||
[1] = LAYOUT_60_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_DEL,
|
|
||||||
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, QK_LOCK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, C(A(KC_DEL))
|
|
||||||
),
|
|
||||||
[2] = LAYOUT_60_ansi(
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_60_ansi(
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
|
||||||
)
|
|
||||||
};
|
|
@ -1,27 +0,0 @@
|
|||||||
# 61Key
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
Custom keyboard designed by RealEmanGaming aka 0xC7
|
|
||||||
|
|
||||||
* Keyboard Maintainer: [0xC7](https://github.com/RealEmanGaming)
|
|
||||||
* Hardware Supported: ATMega32u4
|
|
||||||
* Hardware Availability: N/A (private board, might open source)
|
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
|
||||||
|
|
||||||
make 0xc7/61key:default
|
|
||||||
|
|
||||||
Flashing example for this keyboard:
|
|
||||||
|
|
||||||
make 0xc7/61key: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
|
|
||||||
|
|
||||||
Enter the bootloader in 3 ways:
|
|
||||||
|
|
||||||
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
|
|
||||||
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
|
|
||||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
|
@ -1,15 +0,0 @@
|
|||||||
# Build Options
|
|
||||||
# change yes to no to disable
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
|
||||||
MOUSEKEY_ENABLE = no # Mouse keys
|
|
||||||
EXTRAKEY_ENABLE = no # Audio control and System control
|
|
||||||
CONSOLE_ENABLE = no # Console for debug
|
|
||||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
|
||||||
NKRO_ENABLE = no # Enable N-Key Rollover
|
|
||||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
|
||||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
|
||||||
AUDIO_ENABLE = no # Audio output
|
|
||||||
|
|
||||||
LTO_ENABLE = yes
|
|
||||||
KEY_LOCK_ENABLE = yes
|
|
@ -1,27 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2021 0xCB - Conor Burns
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
#include "quantum.h"
|
|
||||||
|
|
||||||
void eeconfig_init_kb(void) {
|
|
||||||
#ifdef BACKLIGHT_ENABLE
|
|
||||||
backlight_enable();
|
|
||||||
backlight_level(5);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
eeconfig_update_kb(0);
|
|
||||||
eeconfig_init_user();
|
|
||||||
}
|
|
@ -1,36 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2021 0xCB - Conor Burns
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
// clang-format off
|
|
||||||
|
|
||||||
/* default setup after eeprom reset */
|
|
||||||
#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_EFFECT_BREATHING + 2
|
|
||||||
#define RGBLIGHT_DEFAULT_HUE 152
|
|
||||||
#define RGBLIGHT_DEFAULT_SAT 232
|
|
||||||
#define RGBLIGHT_DEFAULT_VAR 255
|
|
||||||
#define RGBLIGHT_DEFAULT_SPD 2
|
|
||||||
// clang-format on
|
|
||||||
|
|
||||||
/* 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
|
|
||||||
/* Oled Size */
|
|
||||||
#define OLED_DISPLAY_128X64
|
|
||||||
#define OLED_FONT_END 255
|
|
||||||
#define OLED_FONT_H "gfxfont.c"
|
|
@ -1,277 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2021 0xCB - Conor Burns
|
|
||||||
|
|
||||||
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 "progmem.h"
|
|
||||||
// clang-format off
|
|
||||||
static 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,
|
|
||||||
0xFC, 0x18, 0x24, 0x24, 0x18, 0x00,
|
|
||||||
0x18, 0x24, 0x24, 0x18, 0xFC, 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, 0x10, 0x10, 0x10, 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, 0xE0, 0xFC, 0x1E, 0x06, 0xC6,
|
|
||||||
0xC6, 0x06, 0x1E, 0xFC, 0xE0, 0x00,
|
|
||||||
0x00, 0x00, 0x60, 0xE0, 0x80, 0x00,
|
|
||||||
0x00, 0x80, 0xE0, 0x60, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0xE0, 0xF8, 0x3C, 0x0E,
|
|
||||||
0x06, 0x06, 0x06, 0x0E, 0x0C, 0x00,
|
|
||||||
0x00, 0x00, 0xFE, 0xFE, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x8C, 0x78, 0x70, 0x00,
|
|
||||||
0x00, 0x0E, 0x0E, 0x06, 0x06, 0xFE,
|
|
||||||
0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x0C, 0x8E, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0xCE, 0xFE, 0x7C, 0x00,
|
|
||||||
0x00, 0x06, 0x06, 0x06, 0x06, 0x06,
|
|
||||||
0x06, 0xE6, 0xE6, 0x3E, 0x3E, 0x00,
|
|
||||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
|
||||||
0x01, 0x01, 0x06, 0x78, 0x80, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xE0, 0x1C, 0x02, 0x01, 0x04, 0x18,
|
|
||||||
0x00, 0x00, 0x00, 0x02, 0x0C, 0x00,
|
|
||||||
0x80, 0x80, 0x71, 0x02, 0x1C, 0xE0,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x80, 0x78, 0x06, 0x01, 0x01,
|
|
||||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
|
||||||
0xF0, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
|
|
||||||
0x00, 0x00, 0xFC, 0xFC, 0xFC, 0xFC,
|
|
||||||
0xFC, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
|
|
||||||
0xE0, 0xE0, 0xE0, 0xE0, 0xF0, 0xF0,
|
|
||||||
0x00, 0x00, 0x40, 0xF0, 0xFC, 0xFF,
|
|
||||||
0xFF, 0xFC, 0xF0, 0xC0, 0x00, 0x00,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x07, 0x3F, 0x78, 0x60, 0x63,
|
|
||||||
0x63, 0x60, 0x78, 0x3F, 0x07, 0x00,
|
|
||||||
0x00, 0x00, 0x60, 0x79, 0x19, 0x06,
|
|
||||||
0x06, 0x19, 0x79, 0x60, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x07, 0x1F, 0x3C, 0x70,
|
|
||||||
0x60, 0x60, 0x60, 0x70, 0x30, 0x00,
|
|
||||||
0x00, 0x00, 0x7F, 0x7F, 0x61, 0x61,
|
|
||||||
0x61, 0x61, 0x31, 0x1E, 0x0E, 0x00,
|
|
||||||
0x00, 0x60, 0x60, 0x60, 0x60, 0x7F,
|
|
||||||
0x7F, 0x60, 0x60, 0x60, 0x60, 0x00,
|
|
||||||
0x00, 0x30, 0x71, 0x61, 0x61, 0x61,
|
|
||||||
0x61, 0x61, 0x73, 0x7F, 0x3E, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x7F,
|
|
||||||
0x7F, 0x01, 0x01, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x03, 0xBC,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x87, 0x38, 0x40, 0x80, 0x08, 0x08,
|
|
||||||
0x08, 0x04, 0x04, 0x02, 0x02, 0x01,
|
|
||||||
0x00, 0x00, 0x80, 0x40, 0x38, 0x87,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0xBC, 0x03, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
|
|
||||||
0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
|
|
||||||
0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x7F,
|
|
||||||
0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
|
|
||||||
0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0,
|
|
||||||
0xFC, 0xFE, 0xFC, 0xF8, 0xF9, 0xF3,
|
|
||||||
0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,
|
|
||||||
0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x70, 0xD0, 0x70, 0x00, 0x07, 0x05,
|
|
||||||
0x07, 0x02, 0x02, 0x82, 0xC2, 0x42,
|
|
||||||
0x7E, 0xC0, 0xC0, 0xC0, 0x40, 0x7E,
|
|
||||||
0x42, 0xC2, 0x82, 0x02, 0x02, 0x07,
|
|
||||||
0x05, 0x07, 0x00, 0x70, 0xD0, 0x70,
|
|
||||||
0x00, 0x00, 0x00, 0x80, 0x40, 0x20,
|
|
||||||
0x10, 0xC8, 0xC8, 0x84, 0x04, 0x02,
|
|
||||||
0x02, 0x02, 0x02, 0xC2, 0xC2, 0xC2,
|
|
||||||
0xC2, 0xC4, 0xC4, 0xC8, 0x88, 0x90,
|
|
||||||
0x20, 0x40, 0x80, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x01, 0xFD, 0x05, 0x04, 0x04, 0x04,
|
|
||||||
0x1F, 0x30, 0x40, 0x87, 0x9F, 0x1F,
|
|
||||||
0x01, 0x81, 0xFF, 0xFF, 0x00, 0x00,
|
|
||||||
0x1E, 0x9E, 0x86, 0x40, 0x30, 0x1F,
|
|
||||||
0x04, 0x04, 0x04, 0x05, 0xFD, 0x01,
|
|
||||||
0x00, 0x0F, 0x70, 0x80, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x80, 0xE0, 0xF8, 0x3E,
|
|
||||||
0x0F, 0x03, 0x00, 0xFF, 0xFF, 0x01,
|
|
||||||
0x01, 0x01, 0x01, 0x01, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x80, 0x70, 0x0F, 0x00,
|
|
||||||
0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
|
|
||||||
0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
|
|
||||||
0x00, 0x00, 0xFE, 0xFE, 0xFE, 0xFE,
|
|
||||||
0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
|
|
||||||
0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x00,
|
|
||||||
0xC0, 0xF0, 0xFC, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0x07, 0x03, 0x03,
|
|
||||||
0x03, 0x03, 0x07, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xDF, 0x9F, 0x3F, 0x3C, 0x70, 0x40,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xC0, 0x5F, 0xD0, 0x90, 0x90, 0x90,
|
|
||||||
0xFC, 0x06, 0x01, 0xF8, 0xFC, 0xFC,
|
|
||||||
0xC0, 0xC0, 0xFF, 0xFF, 0x00, 0x00,
|
|
||||||
0x3C, 0x3C, 0x30, 0x01, 0x06, 0xFC,
|
|
||||||
0x90, 0x90, 0x90, 0xD0, 0x5F, 0xC0,
|
|
||||||
0x00, 0xF0, 0x0E, 0x01, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x01, 0x03, 0x07, 0x1E,
|
|
||||||
0x3C, 0xF0, 0xE0, 0xFF, 0xFF, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0xC1, 0xC1, 0xFF,
|
|
||||||
0x3E, 0x00, 0x01, 0x0E, 0xF0, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x07, 0x05, 0x07, 0x00, 0x70, 0x50,
|
|
||||||
0x70, 0x20, 0x20, 0x20, 0x21, 0x3F,
|
|
||||||
0x01, 0x61, 0x9F, 0x9F, 0x61, 0x01,
|
|
||||||
0x3F, 0x21, 0x20, 0x20, 0x20, 0x70,
|
|
||||||
0x50, 0x70, 0x00, 0x07, 0x05, 0x07,
|
|
||||||
0x00, 0x00, 0x00, 0x01, 0x02, 0x04,
|
|
||||||
0x08, 0x10, 0x13, 0x23, 0x20, 0x40,
|
|
||||||
0x40, 0x40, 0x40, 0x43, 0x43, 0x40,
|
|
||||||
0x40, 0x20, 0x20, 0x10, 0x10, 0x08,
|
|
||||||
0x04, 0x02, 0x01, 0x00, 0x00, 0x00,
|
|
||||||
0x07, 0x07, 0x07, 0x07, 0x0F, 0x0F,
|
|
||||||
0x0F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F,
|
|
||||||
0x00, 0x00, 0x3F, 0x3F, 0x3F, 0x3F,
|
|
||||||
0x3F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF,
|
|
||||||
0x00, 0x80, 0xC0, 0x70, 0x7C, 0x3F,
|
|
||||||
0x3F, 0x1F, 0x0F, 0x0F, 0x07, 0x07,
|
|
||||||
0x07, 0x03, 0x03, 0x02, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x02, 0x03, 0x03, 0x07,
|
|
||||||
0x07, 0x07, 0x0F, 0x0F, 0x1E, 0x3E,
|
|
||||||
0x3C, 0x7C, 0x70, 0xC0, 0x80, 0x00,
|
|
||||||
};
|
|
||||||
// clang-format on
|
|
@ -1,72 +0,0 @@
|
|||||||
{
|
|
||||||
"keyboard_name": "1337",
|
|
||||||
"manufacturer": "0xCB",
|
|
||||||
"url": "https://0xCB.dev",
|
|
||||||
"maintainer": "Conor-Burns",
|
|
||||||
"usb": {
|
|
||||||
"vid": "0xCB00",
|
|
||||||
"pid": "0x1337",
|
|
||||||
"device_version": "0.0.1"
|
|
||||||
},
|
|
||||||
"backlight": {
|
|
||||||
"pin": "B5",
|
|
||||||
"levels": 7,
|
|
||||||
"breathing": true
|
|
||||||
},
|
|
||||||
"encoder": {
|
|
||||||
"rotary": [
|
|
||||||
{"pin_a": "F6", "pin_b": "F5"}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"qmk": {
|
|
||||||
"tap_keycode_delay": 10
|
|
||||||
},
|
|
||||||
"qmk_lufa_bootloader": {
|
|
||||||
"led": "B0"
|
|
||||||
},
|
|
||||||
"rgblight": {
|
|
||||||
"saturation_steps": 8,
|
|
||||||
"brightness_steps": 8,
|
|
||||||
"led_count": 4,
|
|
||||||
"sleep": true,
|
|
||||||
"animations": {
|
|
||||||
"breathing": true,
|
|
||||||
"rainbow_mood": true,
|
|
||||||
"rainbow_swirl": true,
|
|
||||||
"snake": true,
|
|
||||||
"knight": true,
|
|
||||||
"christmas": true,
|
|
||||||
"static_gradient": true,
|
|
||||||
"rgb_test": true,
|
|
||||||
"alternating": true,
|
|
||||||
"twinkle": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ws2812": {
|
|
||||||
"pin": "D3"
|
|
||||||
},
|
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "qmk-dfu",
|
|
||||||
"matrix_pins": {
|
|
||||||
"direct": [
|
|
||||||
["D2", "D4", "F4"],
|
|
||||||
["D7", "B1", "B3"],
|
|
||||||
["E6", "B4", "B2"]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"layouts": {
|
|
||||||
"LAYOUT": {
|
|
||||||
"layout": [
|
|
||||||
{"x": 0, "y": 0, "matrix": [0, 0]},
|
|
||||||
{"x": 1, "y": 0, "matrix": [0, 1]},
|
|
||||||
{"x": 2, "y": 0, "matrix": [0, 2]},
|
|
||||||
{"x": 0, "y": 1, "matrix": [1, 0]},
|
|
||||||
{"x": 1, "y": 1, "matrix": [1, 1]},
|
|
||||||
{"x": 2, "y": 1, "matrix": [1, 2]},
|
|
||||||
{"x": 0, "y": 2, "matrix": [2, 0]},
|
|
||||||
{"x": 1, "y": 2, "matrix": [2, 1]},
|
|
||||||
{"x": 2, "y": 2, "matrix": [2, 2]}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,177 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2021 0xCB - Conor Burns
|
|
||||||
|
|
||||||
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
|
|
||||||
// clang-format off
|
|
||||||
enum layer_names {
|
|
||||||
_HOME,
|
|
||||||
_MISC,
|
|
||||||
_RGB,
|
|
||||||
_BLED
|
|
||||||
};
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
||||||
[_HOME] = LAYOUT(
|
|
||||||
KC_MPRV, KC_MNXT, KC_MPLY,
|
|
||||||
KC_PGUP, KC_PGDN, TO(3),
|
|
||||||
KC_HOME, KC_END, TO(1)
|
|
||||||
),
|
|
||||||
[_MISC] = LAYOUT(
|
|
||||||
_______, _______, _______,
|
|
||||||
_______, _______, TO(0),
|
|
||||||
_______, _______, TO(2)
|
|
||||||
),
|
|
||||||
[_RGB] = LAYOUT(
|
|
||||||
RGB_HUI, RGB_HUD, RGB_MOD,
|
|
||||||
RGB_SAI, RGB_SAD, TO(1),
|
|
||||||
RGB_SPI, RGB_SPD, TO(3)
|
|
||||||
),
|
|
||||||
[_BLED] = LAYOUT(
|
|
||||||
BL_STEP, BL_BRTG, BL_TOGG,
|
|
||||||
BL_ON, BL_OFF, TO(2),
|
|
||||||
BL_UP, BL_DOWN, TO(0)
|
|
||||||
)
|
|
||||||
};
|
|
||||||
// clang-format on
|
|
||||||
|
|
||||||
/* rotary encoder (SW3) - add more else if blocks for more granular layer control */
|
|
||||||
#ifdef ENCODER_ENABLE
|
|
||||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
|
||||||
if (IS_LAYER_ON(_RGB)) {
|
|
||||||
# ifdef RGBLIGHT_ENABLE
|
|
||||||
if (clockwise) {
|
|
||||||
rgblight_increase_val();
|
|
||||||
} else {
|
|
||||||
rgblight_decrease_val();
|
|
||||||
}
|
|
||||||
# endif
|
|
||||||
} else if (IS_LAYER_ON(_BLED)) {
|
|
||||||
if (clockwise) {
|
|
||||||
backlight_increase();
|
|
||||||
} else {
|
|
||||||
backlight_decrease();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (clockwise) {
|
|
||||||
tap_code(KC_VOLU);
|
|
||||||
} else {
|
|
||||||
tap_code(KC_VOLD);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* oled stuff :) */
|
|
||||||
#ifdef OLED_ENABLE
|
|
||||||
uint16_t startup_timer;
|
|
||||||
|
|
||||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
|
||||||
startup_timer = timer_read();
|
|
||||||
return rotation;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void render_logo(void) {
|
|
||||||
static const char PROGMEM raw_logo[] = {
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 1, 2, 4, 2, 1, 1, 1, 1, 1, 1, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 1, 1, 1, 1, 1, 1, 2, 4, 2, 1, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 248, 5, 2, 0, 0, 0, 0, 0, 0, 128, 192, 192, 224, 224, 112, 120, 56, 63, 28, 14, 14, 14, 254, 14, 14, 30, 28, 63, 56, 120, 112, 224, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 2, 5, 248, 5, 2, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 160, 19, 162, 66, 66, 66, 66, 66, 66, 66, 255, 255, 255, 0, 0, 0, 252, 254, 254, 192, 192, 192, 192, 255, 0, 0, 0, 62, 62, 60, 60, 0, 0, 1, 255, 255, 255, 66, 66, 66, 66, 66, 66, 66, 162, 19, 160, 64, 0, 0, 0, 0, 128, 64, 64, 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 192, 64, 64, 192, 128, 0, 0, 192, 64, 64, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 64, 192, 0, 0, 0, 0, 0, 128, 192, 64, 64, 192, 128, 0, 0, 128, 192, 64, 64, 192, 128, 0, 0, 64, 64, 64, 64, 64, 192, 0, 0, 0, 0, 0, 249, 8, 8, 8, 8, 8, 8, 8, 8, 127, 255, 255, 192, 128, 128, 15, 31, 31, 1, 1, 1, 1, 255, 0, 0, 0, 30, 30, 14, 14, 128, 192, 192, 255, 255, 127, 8, 8, 8, 8, 8, 8, 8, 8, 249, 0, 0, 0,
|
|
||||||
0, 0, 31, 49, 64, 78, 64, 49, 31, 0, 0, 97, 22, 8, 22, 97, 0, 0, 31, 49, 96, 64, 64, 96, 32, 0, 0, 127, 68, 68, 100, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 127, 64, 64, 0, 0, 0, 32, 100, 68, 68, 110, 59, 0, 0, 32, 100, 68, 68, 110, 59, 0, 0, 0, 0, 0, 126, 3, 1, 0, 0, 0, 8, 20, 35, 20, 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 7, 15, 254, 30, 28, 28, 28, 255, 28, 28, 28, 30, 254, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10, 17, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 40, 68, 40, 16, 16, 16, 16, 16, 16, 31, 0, 0, 16, 40, 71, 40, 16, 0, 0, 31, 16, 16, 16, 16, 16, 16, 40, 68, 40, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
};
|
|
||||||
oled_write_raw_P(raw_logo, sizeof(raw_logo));
|
|
||||||
}
|
|
||||||
static void render_logo_font(void) {
|
|
||||||
static const char PROGMEM qmk_logo[] = {0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0x00};
|
|
||||||
|
|
||||||
oled_write_P(qmk_logo, false);
|
|
||||||
}
|
|
||||||
/* Shows the name of the current layer and locks for the host (CAPS etc.) */
|
|
||||||
static void render_info(void) {
|
|
||||||
oled_write_P(PSTR("Layer: "), false);
|
|
||||||
|
|
||||||
switch (get_highest_layer(layer_state)) {
|
|
||||||
case _HOME:
|
|
||||||
oled_write_ln_P(PSTR("HOME"), false);
|
|
||||||
break;
|
|
||||||
case _MISC:
|
|
||||||
oled_write_ln_P(PSTR("MISC"), false);
|
|
||||||
break;
|
|
||||||
case _RGB:
|
|
||||||
oled_write_ln_P(PSTR("RGB"), false);
|
|
||||||
break;
|
|
||||||
case _BLED:
|
|
||||||
oled_write_ln_P(PSTR("Backlight"), false);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
oled_write_ln_P(PSTR("Undefined"), false);
|
|
||||||
}
|
|
||||||
led_t led_state = host_keyboard_led_state();
|
|
||||||
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
|
|
||||||
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
|
|
||||||
oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
|
|
||||||
}
|
|
||||||
static void render_rgbled_status(void) {
|
|
||||||
char string[4];
|
|
||||||
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) {
|
|
||||||
uint16_t m = rgblight_get_mode();
|
|
||||||
string[3] = '\0';
|
|
||||||
string[2] = '0' + m % 10;
|
|
||||||
string[1] = (m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' ';
|
|
||||||
string[0] = m / 10 ? '0' + m / 10 : ' ';
|
|
||||||
oled_write_P(PSTR("Conf:"), false);
|
|
||||||
oled_write(string, false);
|
|
||||||
uint16_t h = rgblight_get_hue() / RGBLIGHT_HUE_STEP;
|
|
||||||
string[3] = '\0';
|
|
||||||
string[2] = '0' + h % 10;
|
|
||||||
string[1] = (h /= 10) % 10 ? '0' + (h) % 10 : (h / 10) % 10 ? '0' : ' ';
|
|
||||||
string[0] = h / 10 ? '0' + h / 10 : ' ';
|
|
||||||
oled_write_P(PSTR(","), false);
|
|
||||||
oled_write(string, false);
|
|
||||||
uint16_t s = rgblight_get_sat() / RGBLIGHT_SAT_STEP;
|
|
||||||
string[3] = '\0';
|
|
||||||
string[2] = '0' + s % 10;
|
|
||||||
string[1] = (s /= 10) % 10 ? '0' + (s) % 10 : (s / 10) % 10 ? '0' : ' ';
|
|
||||||
string[0] = s / 10 ? '0' + s / 10 : ' ';
|
|
||||||
oled_write_P(PSTR(","), false);
|
|
||||||
oled_write(string, false);
|
|
||||||
uint16_t v = rgblight_get_val() / RGBLIGHT_VAL_STEP;
|
|
||||||
string[3] = '\0';
|
|
||||||
string[2] = '0' + v % 10;
|
|
||||||
string[1] = (v /= 10) % 10 ? '0' + (v) % 10 : (v / 10) % 10 ? '0' : ' ';
|
|
||||||
string[0] = v / 10 ? '0' + v / 10 : ' ';
|
|
||||||
oled_write_P(PSTR(","), false);
|
|
||||||
oled_write(string, false);
|
|
||||||
oled_write_ln_P(PSTR("\n MOD HUE SAT VAR"), false);
|
|
||||||
} else {
|
|
||||||
oled_write_ln_P(PSTR("\n"), false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
bool oled_task_user(void) {
|
|
||||||
static bool finished_timer = false;
|
|
||||||
if (!finished_timer && (timer_elapsed(startup_timer) < 1000)) {
|
|
||||||
render_logo();
|
|
||||||
} else {
|
|
||||||
if (!finished_timer) {
|
|
||||||
oled_clear();
|
|
||||||
finished_timer = true;
|
|
||||||
}
|
|
||||||
render_info();
|
|
||||||
render_rgbled_status();
|
|
||||||
render_logo_font();
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif
|
|
@ -1,186 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2021 0xCB - Conor Burns
|
|
||||||
|
|
||||||
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
|
|
||||||
// clang-format off
|
|
||||||
enum layer_names {
|
|
||||||
_HOME,
|
|
||||||
_MISC,
|
|
||||||
_RGB,
|
|
||||||
_BLED
|
|
||||||
};
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
||||||
[_HOME] = LAYOUT(
|
|
||||||
KC_MPRV, KC_MNXT, KC_MPLY,
|
|
||||||
KC_PGUP, KC_PGDN, TO(3),
|
|
||||||
KC_HOME, KC_END, TO(1)
|
|
||||||
),
|
|
||||||
[_MISC] = LAYOUT(
|
|
||||||
_______, _______, _______,
|
|
||||||
_______, _______, TO(0),
|
|
||||||
_______, _______, TO(2)
|
|
||||||
),
|
|
||||||
[_RGB] = LAYOUT(
|
|
||||||
RGB_HUI, RGB_HUD, RGB_MOD,
|
|
||||||
RGB_SAI, RGB_SAD, TO(1),
|
|
||||||
RGB_SPI, RGB_SPD, TO(3)
|
|
||||||
),
|
|
||||||
[_BLED] = LAYOUT(
|
|
||||||
BL_STEP, BL_BRTG, BL_TOGG,
|
|
||||||
BL_ON, BL_OFF, TO(2),
|
|
||||||
BL_UP, BL_DOWN, TO(0)
|
|
||||||
)
|
|
||||||
};
|
|
||||||
// clang-format on
|
|
||||||
|
|
||||||
/* rotary encoder (SW3) - add more else if blocks for more granular layer control */
|
|
||||||
#ifdef ENCODER_ENABLE
|
|
||||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
|
||||||
if (IS_LAYER_ON(_RGB)) {
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
|
||||||
if (clockwise) {
|
|
||||||
rgblight_increase_val();
|
|
||||||
} else {
|
|
||||||
rgblight_decrease_val();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
} else if (IS_LAYER_ON(_BLED)) {
|
|
||||||
if (clockwise) {
|
|
||||||
backlight_increase();
|
|
||||||
} else {
|
|
||||||
backlight_decrease();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (clockwise) {
|
|
||||||
tap_code(KC_VOLU);
|
|
||||||
} else {
|
|
||||||
tap_code(KC_VOLD);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* oled stuff :) */
|
|
||||||
#ifdef OLED_ENABLE
|
|
||||||
uint16_t startup_timer;
|
|
||||||
|
|
||||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
|
||||||
startup_timer = timer_read();
|
|
||||||
return rotation;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void render_logo(void) {
|
|
||||||
static const char PROGMEM raw_logo[] = {
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 1, 2, 4, 2, 1, 1, 1, 1, 1, 1,255, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 1, 1, 1, 1, 1, 1, 2, 4, 2, 1, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0, 0, 0, 0, 0, 0,128,192,192,224,224,112,120, 56, 63, 28, 14, 14, 14,254, 14, 14, 30, 28, 63, 56,120,112,224,224,192,128, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,160, 19,162, 66, 66, 66, 66, 66, 66, 66,255,255,255, 0, 0, 0,252,254,254,192,192,192,192,255, 0, 0, 0, 62, 62, 60, 60, 0, 0, 1,255,255,255, 66, 66, 66, 66, 66, 66, 66,162, 19,160, 64, 0,
|
|
||||||
0, 0, 0,128, 64, 64, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,192, 64, 64,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 64,192, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,128,192, 64, 64,192,128, 0, 0, 64, 64, 64, 64, 64,192, 0, 0, 0, 0, 0,249, 8, 8, 8, 8, 8, 8, 8, 8,127,255,255,192,128,128, 15, 31, 31, 1, 1, 1, 1,255, 0, 0, 0, 30, 30, 14, 14,128,192,192,255,255,127, 8, 8, 8, 8, 8, 8, 8, 8,249, 0, 0, 0,
|
|
||||||
0, 0, 31, 49, 64, 78, 64, 49, 31, 0, 0, 97, 22, 8, 22, 97, 0, 0, 31, 49, 96, 64, 64, 96, 32, 0, 0,127, 68, 68,100, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64,127, 64, 64, 0, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 0, 0, 0,126, 3, 1, 0, 0, 0, 8, 20, 35, 20, 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 7, 15,254, 30, 28, 28, 28,255, 28, 28, 28, 30,254, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10, 17, 10, 4, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 40, 68, 40, 16, 16, 16, 16, 16, 16, 31, 0, 0, 16, 40, 71, 40, 16, 0, 0, 31, 16, 16, 16, 16, 16, 16, 40, 68, 40, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
};
|
|
||||||
oled_write_raw_P(raw_logo, sizeof(raw_logo));
|
|
||||||
}
|
|
||||||
static void render_logo_font(void) {
|
|
||||||
static const char PROGMEM qmk_logo[] = {
|
|
||||||
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4,
|
|
||||||
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4,
|
|
||||||
0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0,
|
|
||||||
0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0x00
|
|
||||||
};
|
|
||||||
|
|
||||||
oled_write_P(qmk_logo, false);
|
|
||||||
}
|
|
||||||
/* Shows the name of the current layer and locks for the host (CAPS etc.) */
|
|
||||||
static void render_info(void) {
|
|
||||||
oled_write_P(PSTR("Layer: "), false);
|
|
||||||
|
|
||||||
switch (get_highest_layer(layer_state)) {
|
|
||||||
case _HOME:
|
|
||||||
oled_write_ln_P(PSTR("HOME"), false);
|
|
||||||
break;
|
|
||||||
case _MISC:
|
|
||||||
oled_write_ln_P(PSTR("MISC"), false);
|
|
||||||
break;
|
|
||||||
case _RGB:
|
|
||||||
oled_write_ln_P(PSTR("RGB"), false);
|
|
||||||
break;
|
|
||||||
case _BLED:
|
|
||||||
oled_write_ln_P(PSTR("Backlight"), false);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
oled_write_ln_P(PSTR("Undefined"), false);
|
|
||||||
}
|
|
||||||
led_t led_state = host_keyboard_led_state();
|
|
||||||
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
|
|
||||||
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
|
|
||||||
oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
|
|
||||||
}
|
|
||||||
static void render_rgbled_status(void) {
|
|
||||||
char string[4];
|
|
||||||
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) {
|
|
||||||
uint16_t m = rgblight_get_mode();
|
|
||||||
string[3] = '\0';
|
|
||||||
string[2] = '0' + m % 10;
|
|
||||||
string[1] = ( m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' ';
|
|
||||||
string[0] = m / 10 ? '0' + m / 10 : ' ';
|
|
||||||
oled_write_P(PSTR("Conf:"), false);
|
|
||||||
oled_write(string, false);
|
|
||||||
uint16_t h = rgblight_get_hue()/RGBLIGHT_HUE_STEP;
|
|
||||||
string[3] = '\0';
|
|
||||||
string[2] = '0' + h % 10;
|
|
||||||
string[1] = ( h /= 10) % 10 ? '0' + (h) % 10 : (h / 10) % 10 ? '0' : ' ';
|
|
||||||
string[0] = h / 10 ? '0' + h / 10 : ' ';
|
|
||||||
oled_write_P(PSTR(","), false);
|
|
||||||
oled_write(string, false);
|
|
||||||
uint16_t s = rgblight_get_sat()/RGBLIGHT_SAT_STEP;
|
|
||||||
string[3] = '\0';
|
|
||||||
string[2] = '0' + s % 10;
|
|
||||||
string[1] = ( s /= 10) % 10 ? '0' + (s) % 10 : (s / 10) % 10 ? '0' : ' ';
|
|
||||||
string[0] = s / 10 ? '0' + s / 10 : ' ';
|
|
||||||
oled_write_P(PSTR(","), false);
|
|
||||||
oled_write(string, false);
|
|
||||||
uint16_t v = rgblight_get_val()/RGBLIGHT_VAL_STEP;
|
|
||||||
string[3] = '\0';
|
|
||||||
string[2] = '0' + v % 10;
|
|
||||||
string[1] = ( v /= 10) % 10 ? '0' + (v) % 10 : (v / 10) % 10 ? '0' : ' ';
|
|
||||||
string[0] = v / 10 ? '0' + v / 10 : ' ';
|
|
||||||
oled_write_P(PSTR(","), false);
|
|
||||||
oled_write(string, false);
|
|
||||||
oled_write_ln_P(PSTR("\n MOD HUE SAT VAR"), false);
|
|
||||||
} else {
|
|
||||||
oled_write_ln_P(PSTR("\n"), false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
bool oled_task_user(void) {
|
|
||||||
static bool finished_timer = false;
|
|
||||||
if (!finished_timer && (timer_elapsed(startup_timer) < 1000)) {
|
|
||||||
render_logo();
|
|
||||||
} else {
|
|
||||||
if (!finished_timer) {
|
|
||||||
oled_clear();
|
|
||||||
finished_timer = true;
|
|
||||||
}
|
|
||||||
render_info();
|
|
||||||
render_rgbled_status();
|
|
||||||
render_logo_font();
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif
|
|
@ -1,25 +0,0 @@
|
|||||||
# 0xCB 1337
|
|
||||||
|
|
||||||
Macro keypad
|
|
||||||
|
|
||||||
* Keyboard Maintainer: [Conor Burns](https://github.com/conor-burns)
|
|
||||||
* Hardware Supported: https://github.com/0xcb-dev/0xcb-1337
|
|
||||||
* Hardware Availability: On [tindie](https://www.tindie.com/products/0xcb/0xcb-1337-a-customizable-macro-keyboard-with-qmk/) or order your own parts - the hardware in the repo is Open Source :D
|
|
||||||
* PCB renders :)
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
More Pictures [here](https://0xcb.dev/1337/)
|
|
||||||
To go to bootloader press row 0 col 0 key (top left) while plugging in the board. (Or press the reset button on V2.0 and v3.0)
|
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
|
||||||
|
|
||||||
make 0xcb/1337:default
|
|
||||||
|
|
||||||
Flashing example for this keyboard:
|
|
||||||
|
|
||||||
make 0xcb/1337: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).
|
|
@ -1,16 +0,0 @@
|
|||||||
# 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 = no # Enable N-Key Rollover
|
|
||||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
|
||||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
|
||||||
AUDIO_ENABLE = no # Audio output
|
|
||||||
|
|
||||||
ENCODER_ENABLE = yes
|
|
||||||
LTO_ENABLE = yes
|
|
||||||
OLED_ENABLE = yes
|
|
@ -1,19 +0,0 @@
|
|||||||
// Copyright 2023 Conor Burns (@Conor-Burns)
|
|
||||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#define RGB_MATRIX_LED_COUNT 18
|
|
||||||
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
|
|
||||||
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_BREATHING
|
|
||||||
#define RGB_MATRIX_DEFAULT_HUE 152
|
|
||||||
#define RGB_MATRIX_DEFAULT_SAT 232
|
|
||||||
#define RGB_MATRIX_DEFAULT_SPD 50
|
|
||||||
|
|
||||||
#define ENABLE_RGB_MATRIX_BREATHING
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_COLOR
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SAT
|
|
||||||
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_ALL
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINDROPS
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
|
@ -1,152 +0,0 @@
|
|||||||
{
|
|
||||||
"manufacturer": "Freya",
|
|
||||||
"keyboard_name": "splaytoraid",
|
|
||||||
"maintainer": "freya-irl",
|
|
||||||
"url": "https://github.com/freya-irl/splaytoraid40",
|
|
||||||
"development_board": "promicro",
|
|
||||||
"bootloader": "qmk-dfu",
|
|
||||||
"diode_direction": "COL2ROW",
|
|
||||||
"matrix_pins": {
|
|
||||||
"cols": ["F5", "F6", "F7", "F4", "B3", "B1", "B2"],
|
|
||||||
"rows": ["D3", "D2", "D1", "D4", "D7", "E6", "B4", "C6"]
|
|
||||||
},
|
|
||||||
"usb": {
|
|
||||||
"device_version": "1.0.0",
|
|
||||||
"pid": "0xCB00",
|
|
||||||
"vid": "0x2004"
|
|
||||||
},
|
|
||||||
"features": {
|
|
||||||
"extrakey": true,
|
|
||||||
"rgb_matrix": true,
|
|
||||||
"bootmagic": true,
|
|
||||||
"console": true,
|
|
||||||
"mousekey": true,
|
|
||||||
"nkro": true
|
|
||||||
},
|
|
||||||
"bootmagic": {
|
|
||||||
"matrix": [1, 0]
|
|
||||||
},
|
|
||||||
"build": {
|
|
||||||
"lto": true
|
|
||||||
},
|
|
||||||
"encoder": {
|
|
||||||
"enabled": true,
|
|
||||||
"rotary": [
|
|
||||||
{"pin_a": "B5", "pin_b": "B6", "resolution": 4}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"rgb_matrix": {
|
|
||||||
"driver": "ws2812",
|
|
||||||
"layout": [
|
|
||||||
{"flags": 4, "matrix": [0, 2], "x": 0, "y": 0},
|
|
||||||
{"flags": 4, "matrix": [1, 0], "x": 20, "y": 0},
|
|
||||||
{"flags": 4, "matrix": [7, 0], "x": 61, "y": 0},
|
|
||||||
{"flags": 4, "matrix": [7, 1], "x": 163, "y": 0},
|
|
||||||
{"flags": 4, "matrix": [5, 0], "x": 203, "y": 0},
|
|
||||||
{"flags": 4, "matrix": [4, 2], "x": 224, "y": 0},
|
|
||||||
{"flags": 4, "matrix": [6, 2], "x": 0, "y": 21},
|
|
||||||
{"flags": 4, "matrix": [6, 1], "x": 224, "y": 21},
|
|
||||||
{"flags": 4, "matrix": [3, 3], "x": 20, "y": 43},
|
|
||||||
{"flags": 4, "matrix": [7, 3], "x": 61, "y": 43},
|
|
||||||
{"flags": 4, "matrix": [6, 4], "x": 163, "y": 43},
|
|
||||||
{"flags": 4, "matrix": [6, 3], "x": 203, "y": 43},
|
|
||||||
{"flags": 4, "matrix": [4, 3], "x": 61, "y": 64},
|
|
||||||
{"flags": 4, "matrix": [5, 5], "x": 81, "y": 64},
|
|
||||||
{"flags": 4, "matrix": [7, 4], "x": 101, "y": 64},
|
|
||||||
{"flags": 4, "matrix": [7, 5], "x": 122, "y": 64},
|
|
||||||
{"flags": 4, "matrix": [1, 5], "x": 142, "y": 64},
|
|
||||||
{"flags": 4, "matrix": [0, 3], "x": 163, "y": 64}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ws2812": {
|
|
||||||
"pin": "D0"
|
|
||||||
},
|
|
||||||
"layouts": {
|
|
||||||
"LAYOUT_36": {
|
|
||||||
"layout": [
|
|
||||||
{"label": "K10", "matrix": [1, 0], "x": 0, "y": 0},
|
|
||||||
{"label": "K11", "matrix": [1, 1], "x": 1, "y": 0},
|
|
||||||
{"label": "K02", "matrix": [0, 2], "x": 2, "y": 0},
|
|
||||||
{"label": "K01", "matrix": [0, 1], "x": 3, "y": 0},
|
|
||||||
{"label": "K12", "matrix": [1, 2], "x": 4, "y": 0},
|
|
||||||
{"label": "K52", "matrix": [5, 2], "x": 6, "y": 0},
|
|
||||||
{"label": "K04", "matrix": [0, 4], "x": 7, "y": 0},
|
|
||||||
{"label": "K03", "matrix": [0, 3], "x": 8, "y": 0},
|
|
||||||
{"label": "K14", "matrix": [1, 4], "x": 9, "y": 0},
|
|
||||||
{"label": "K15", "matrix": [1, 5], "x": 10, "y": 0},
|
|
||||||
{"label": "K30", "matrix": [3, 0], "x": 0, "y": 1},
|
|
||||||
{"label": "K31", "matrix": [3, 1], "x": 1, "y": 1},
|
|
||||||
{"label": "K22", "matrix": [2, 2], "x": 2, "y": 1},
|
|
||||||
{"label": "K21", "matrix": [2, 1], "x": 3, "y": 1},
|
|
||||||
{"label": "K13", "matrix": [1, 3], "x": 4, "y": 1},
|
|
||||||
{"label": "K53", "matrix": [5, 3], "x": 6, "y": 1},
|
|
||||||
{"label": "K24", "matrix": [2, 4], "x": 7, "y": 1},
|
|
||||||
{"label": "K23", "matrix": [2, 3], "x": 8, "y": 1},
|
|
||||||
{"label": "K34", "matrix": [3, 4], "x": 9, "y": 1},
|
|
||||||
{"label": "K35", "matrix": [3, 5], "x": 10, "y": 1},
|
|
||||||
{"label": "K50", "matrix": [5, 0], "x": 0, "y": 2},
|
|
||||||
{"label": "K51", "matrix": [5, 1], "x": 1, "y": 2},
|
|
||||||
{"label": "K42", "matrix": [4, 2], "x": 2, "y": 2},
|
|
||||||
{"label": "K41", "matrix": [4, 1], "x": 3, "y": 2},
|
|
||||||
{"label": "K32", "matrix": [3, 2], "x": 4, "y": 2},
|
|
||||||
{"label": "K72", "matrix": [7, 2], "x": 6, "y": 2},
|
|
||||||
{"label": "K44", "matrix": [4, 4], "x": 7, "y": 2},
|
|
||||||
{"label": "K43", "matrix": [4, 3], "x": 8, "y": 2},
|
|
||||||
{"label": "K54", "matrix": [5, 4], "x": 9, "y": 2},
|
|
||||||
{"label": "K55", "matrix": [5, 5], "x": 10, "y": 2},
|
|
||||||
{"label": "K62", "matrix": [6, 2], "x": 2, "y": 3},
|
|
||||||
{"label": "K61", "matrix": [6, 1], "x": 3, "y": 3},
|
|
||||||
{"label": "K33", "matrix": [3, 3], "x": 4, "y": 3},
|
|
||||||
{"label": "K66", "matrix": [6, 6], "x": 5, "y": 3},
|
|
||||||
{"label": "K73", "matrix": [7, 3], "x": 6, "y": 3},
|
|
||||||
{"label": "K64", "matrix": [6, 4], "x": 7, "y": 3},
|
|
||||||
{"label": "K63", "matrix": [6, 3], "x": 8, "y": 3}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"LAYOUT_40": {
|
|
||||||
"layout": [
|
|
||||||
{"label": "K70", "matrix": [7, 0], "x": 0, "y": 0},
|
|
||||||
{"label": "K10", "matrix": [1, 0], "x": 1, "y": 0},
|
|
||||||
{"label": "K11", "matrix": [1, 1], "x": 2, "y": 0},
|
|
||||||
{"label": "K02", "matrix": [0, 2], "x": 3, "y": 0},
|
|
||||||
{"label": "K01", "matrix": [0, 1], "x": 4, "y": 0},
|
|
||||||
{"label": "K12", "matrix": [1, 2], "x": 5, "y": 0},
|
|
||||||
{"label": "K52", "matrix": [5, 2], "x": 7, "y": 0},
|
|
||||||
{"label": "K04", "matrix": [0, 4], "x": 8, "y": 0},
|
|
||||||
{"label": "K03", "matrix": [0, 3], "x": 9, "y": 0},
|
|
||||||
{"label": "K14", "matrix": [1, 4], "x": 10, "y": 0},
|
|
||||||
{"label": "K15", "matrix": [1, 5], "x": 11, "y": 0},
|
|
||||||
{"label": "K75", "matrix": [7, 5], "x": 12, "y": 0},
|
|
||||||
{"label": "K71", "matrix": [7, 1], "x": 0, "y": 1},
|
|
||||||
{"label": "K30", "matrix": [3, 0], "x": 1, "y": 1},
|
|
||||||
{"label": "K31", "matrix": [3, 1], "x": 2, "y": 1},
|
|
||||||
{"label": "K22", "matrix": [2, 2], "x": 3, "y": 1},
|
|
||||||
{"label": "K21", "matrix": [2, 1], "x": 4, "y": 1},
|
|
||||||
{"label": "K13", "matrix": [1, 3], "x": 5, "y": 1},
|
|
||||||
{"label": "K53", "matrix": [5, 3], "x": 7, "y": 1},
|
|
||||||
{"label": "K24", "matrix": [2, 4], "x": 8, "y": 1},
|
|
||||||
{"label": "K23", "matrix": [2, 3], "x": 9, "y": 1},
|
|
||||||
{"label": "K34", "matrix": [3, 4], "x": 10, "y": 1},
|
|
||||||
{"label": "K35", "matrix": [3, 5], "x": 11, "y": 1},
|
|
||||||
{"label": "K74", "matrix": [7, 4], "x": 12, "y": 1},
|
|
||||||
{"label": "K50", "matrix": [5, 0], "x": 1, "y": 2},
|
|
||||||
{"label": "K51", "matrix": [5, 1], "x": 2, "y": 2},
|
|
||||||
{"label": "K42", "matrix": [4, 2], "x": 3, "y": 2},
|
|
||||||
{"label": "K41", "matrix": [4, 1], "x": 4, "y": 2},
|
|
||||||
{"label": "K32", "matrix": [3, 2], "x": 5, "y": 2},
|
|
||||||
{"label": "K72", "matrix": [7, 2], "x": 7, "y": 2},
|
|
||||||
{"label": "K44", "matrix": [4, 4], "x": 8, "y": 2},
|
|
||||||
{"label": "K43", "matrix": [4, 3], "x": 9, "y": 2},
|
|
||||||
{"label": "K54", "matrix": [5, 4], "x": 10, "y": 2},
|
|
||||||
{"label": "K55", "matrix": [5, 5], "x": 11, "y": 2},
|
|
||||||
{"label": "K62", "matrix": [6, 2], "x": 3, "y": 3},
|
|
||||||
{"label": "K61", "matrix": [6, 1], "x": 4, "y": 3},
|
|
||||||
{"label": "K33", "matrix": [3, 3], "x": 5, "y": 3},
|
|
||||||
{"label": "K66", "matrix": [6, 6], "x": 6, "y": 3},
|
|
||||||
{"label": "K73", "matrix": [7, 3], "x": 7, "y": 3},
|
|
||||||
{"label": "K64", "matrix": [6, 4], "x": 8, "y": 3},
|
|
||||||
{"label": "K63", "matrix": [6, 3], "x": 9, "y": 3}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,49 +0,0 @@
|
|||||||
// Copyright 2023 Conor Burns (@Conor-Burns)
|
|
||||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
|
||||||
|
|
||||||
enum layer_names {
|
|
||||||
_BASE,
|
|
||||||
_LOWER,
|
|
||||||
_RAISE,
|
|
||||||
_ADJUST
|
|
||||||
};
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
||||||
[_BASE] = LAYOUT_40(
|
|
||||||
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, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
|
||||||
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
|
|
||||||
KC_LSFT, KC_ESC, KC_ENT, KC_MPLY, KC_SPC, KC_DEL, KC_RSFT
|
|
||||||
),
|
|
||||||
|
|
||||||
[_LOWER] = LAYOUT_40(
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______
|
|
||||||
),
|
|
||||||
|
|
||||||
[_RAISE] = LAYOUT_40(
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______
|
|
||||||
),
|
|
||||||
|
|
||||||
[_ADJUST] = LAYOUT_40(
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______
|
|
||||||
)
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
|
||||||
[_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
|
||||||
[_LOWER] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
|
|
||||||
[_RAISE] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) },
|
|
||||||
[_ADJUST] = { ENCODER_CCW_CW(KC_RGHT, KC_LEFT) }
|
|
||||||
};
|
|
@ -1,48 +0,0 @@
|
|||||||
// Copyright 2023 Conor Burns (@Conor-Burns)
|
|
||||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
|
||||||
|
|
||||||
enum layer_names {
|
|
||||||
_BASE,
|
|
||||||
_LOWER,
|
|
||||||
_RAISE,
|
|
||||||
_ADJUST
|
|
||||||
};
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
||||||
[_BASE] = LAYOUT_40(
|
|
||||||
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, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
|
||||||
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
|
|
||||||
KC_LSFT, KC_ESC, KC_ENT, KC_MPLY, KC_SPC, KC_DEL, KC_RSFT
|
|
||||||
),
|
|
||||||
|
|
||||||
[_LOWER] = LAYOUT_40(
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______
|
|
||||||
),
|
|
||||||
|
|
||||||
[_RAISE] = LAYOUT_40(
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______
|
|
||||||
),
|
|
||||||
|
|
||||||
[_ADJUST] = LAYOUT_40(
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______
|
|
||||||
)
|
|
||||||
};
|
|
||||||
|
|
||||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
|
||||||
[_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
|
||||||
[_LOWER] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
|
|
||||||
[_RAISE] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) },
|
|
||||||
[_ADJUST] = { ENCODER_CCW_CW(KC_RGHT, KC_LEFT) }
|
|
||||||
};
|
|
@ -1,36 +0,0 @@
|
|||||||
# splaytoraid
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
A 40% ergonomic keyboard with a stacked acrylic case and RGB underglow.
|
|
||||||
|
|
||||||
* Keyboard Maintainer: [freya](https://github.com/freya-irl)
|
|
||||||
* Hardware Supported: PCB kit and Pro Micro compatible controller
|
|
||||||
* Hardware Availability: [here](https://keeb.supply/products/splaytoraid-messenger-edition)
|
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
|
||||||
|
|
||||||
make 0xcb/splaytoraid:default
|
|
||||||
make 0xcb/splaytoraid/32u4:default
|
|
||||||
|
|
||||||
Flashing example for this keyboard:
|
|
||||||
|
|
||||||
make 0xcb/splaytoraid:default:flash
|
|
||||||
make 0xcb/splaytoraid/32u4: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
|
|
||||||
|
|
||||||
Enter the bootloader in 3 ways:
|
|
||||||
|
|
||||||
* **Bootmagic reset**: Hold down the left top 4. col key (usually Escape) and plug in the keyboard
|
|
||||||
* **Physical reset button**: Press the button on the controller (Helios) for more than 500ms or just press it (Pluto)
|
|
||||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
|
||||||
|
|
||||||
Please note that the default bootloader for the `32u4` version is QMK DFU, for compatibility with [0xCB Pluto](https://github.com/0xCB-dev/0xCB-Pluto). Generic Pro Micros often use a different bootloader, such as `caterina`.
|
|
||||||
|
|
||||||
If the incorrect bootloader is specified, bootmagic reset and the `QK_BOOT` keycode will not work.
|
|
||||||
|
|
||||||
To avoid this problem, set the correct bootloader in your custom keymap's `rules.mk` file before compiling, or flash using an appropriate target (ex: `make 0xcb/splaytoraid/32u4:default:avrdude`). See [flashing instructions and bootloader information](https://docs.qmk.fm/#/flashing) for more details.
|
|
@ -1,25 +0,0 @@
|
|||||||
// Copyright 2023 Conor Burns (@Conor-Burns)
|
|
||||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
|
||||||
#define RGB_MATRIX_KEYPRESSES
|
|
||||||
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
|
||||||
#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
|
||||||
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
|
||||||
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
|
||||||
#define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
|
||||||
#define ENABLE_RGB_MATRIX_DUAL_BEACON
|
|
||||||
#define ENABLE_RGB_MATRIX_HUE_BREATHING
|
|
||||||
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
|
||||||
#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
|
||||||
#define ENABLE_RGB_MATRIX_SPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_MULTISPLASH
|
|
||||||
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
|
@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"ws2812": {
|
|
||||||
"driver": "vendor"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
# rp2040_ce
|
|
||||||
|
|
||||||
This folder is set as default in the parent rules.mk - it will build firmware compatible with the RP2040 Community Edition. See [here](https://docs.qmk.fm/#/platformdev_rp2040?id=rp2040_ce) for a list.
|
|
@ -1 +0,0 @@
|
|||||||
CONVERT_TO = rp2040_ce
|
|
@ -1 +0,0 @@
|
|||||||
DEFAULT_FOLDER = 0xcb/splaytoraid/rp2040_ce
|
|
@ -1,26 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2021 0xCB - Conor Burns
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
/* 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
|
|
||||||
|
|
||||||
/* oled custom font */
|
|
||||||
#define OLED_FONT_END 255
|
|
||||||
#define OLED_FONT_H "gfxfont.c"
|
|
@ -1,277 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2021 0xCB - Conor Burns
|
|
||||||
|
|
||||||
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 "progmem.h"
|
|
||||||
// clang-format off
|
|
||||||
static 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,
|
|
||||||
0xFC, 0x18, 0x24, 0x24, 0x18, 0x00,
|
|
||||||
0x18, 0x24, 0x24, 0x18, 0xFC, 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, 0x10, 0x10, 0x10, 0x7C, 0x00,
|
|
||||||
0x44, 0xE4, 0xD4, 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, 0xE0, 0xFC, 0x1E, 0x06, 0xC6,
|
|
||||||
0xC6, 0x06, 0x1E, 0xFC, 0xE0, 0x00,
|
|
||||||
0x00, 0x00, 0x60, 0xE0, 0x80, 0x00,
|
|
||||||
0x00, 0x80, 0xE0, 0x60, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0xE0, 0xF8, 0x3C, 0x0E,
|
|
||||||
0x06, 0x06, 0x06, 0x0E, 0x0C, 0x00,
|
|
||||||
0x00, 0x00, 0xFE, 0xFE, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x8C, 0x78, 0x70, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xFF, 0xFF, 0x38, 0x38, 0xC0, 0xC0,
|
|
||||||
0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
|
|
||||||
0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
|
|
||||||
0xFF, 0xFF, 0x0C, 0x0C, 0xF0, 0xF0,
|
|
||||||
0x0C, 0x0C, 0xFF, 0xFF, 0x00, 0x00,
|
|
||||||
0xFF, 0xFF, 0x7F, 0x07, 0x07, 0x07,
|
|
||||||
0x03, 0x03, 0x00, 0x00, 0x00, 0x07,
|
|
||||||
0x07, 0x00, 0x00, 0x00, 0x03, 0x03,
|
|
||||||
0x07, 0x07, 0x07, 0x7F, 0xFF, 0xFF,
|
|
||||||
0x70, 0xD0, 0x70, 0x00, 0x07, 0x05,
|
|
||||||
0x07, 0x02, 0x02, 0x82, 0xC2, 0x42,
|
|
||||||
0x7E, 0xC0, 0xC0, 0xC0, 0x40, 0x7E,
|
|
||||||
0x42, 0xC2, 0x82, 0x02, 0x02, 0x07,
|
|
||||||
0x05, 0x07, 0x00, 0x70, 0xD0, 0x70,
|
|
||||||
0x00, 0x07, 0x3F, 0x78, 0x60, 0x63,
|
|
||||||
0x63, 0x60, 0x78, 0x3F, 0x07, 0x00,
|
|
||||||
0x00, 0x00, 0x60, 0x79, 0x19, 0x06,
|
|
||||||
0x06, 0x19, 0x79, 0x60, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x07, 0x1F, 0x3C, 0x70,
|
|
||||||
0x60, 0x60, 0x60, 0x70, 0x30, 0x00,
|
|
||||||
0x00, 0x00, 0x7F, 0x7F, 0x61, 0x61,
|
|
||||||
0x61, 0x61, 0x31, 0x1E, 0x0E, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x07, 0x07, 0x3F, 0x3F, 0x00, 0x00,
|
|
||||||
0x0F, 0x0F, 0x30, 0x30, 0x30, 0x30,
|
|
||||||
0x30, 0x30, 0x0F, 0x0F, 0x00, 0x00,
|
|
||||||
0x3F, 0x3F, 0x00, 0x00, 0x03, 0x03,
|
|
||||||
0x00, 0x00, 0x3F, 0x3F, 0x00, 0x00,
|
|
||||||
0x83, 0x83, 0x80, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x18, 0x18, 0xFE,
|
|
||||||
0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x80, 0x83, 0x83,
|
|
||||||
0xC0, 0x5F, 0xD0, 0x90, 0x90, 0x90,
|
|
||||||
0xFC, 0x06, 0x01, 0xF8, 0xFC, 0xFC,
|
|
||||||
0xC0, 0xC0, 0xFF, 0xFF, 0x00, 0x00,
|
|
||||||
0x3C, 0x3C, 0x30, 0x01, 0x06, 0xFC,
|
|
||||||
0x90, 0x90, 0x90, 0xD0, 0x5F, 0xC0,
|
|
||||||
0x00, 0x18, 0x18, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x78, 0x78, 0x00,
|
|
||||||
0x00, 0x06, 0x06, 0x06, 0x06, 0x86,
|
|
||||||
0x86, 0xE6, 0xE6, 0x1E, 0x1E, 0x00,
|
|
||||||
0x00, 0x80, 0x80, 0x60, 0x60, 0x18,
|
|
||||||
0x18, 0xFE, 0xFE, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xFC, 0xFC, 0x03, 0x03, 0x03, 0x03,
|
|
||||||
0x03, 0x03, 0x0C, 0x0C, 0x00, 0x00,
|
|
||||||
0xF0, 0xF0, 0x0C, 0x0C, 0x03, 0x03,
|
|
||||||
0x0C, 0x0C, 0xF0, 0xF0, 0x00, 0x00,
|
|
||||||
0xFF, 0xFF, 0xC3, 0xC3, 0xC3, 0xC3,
|
|
||||||
0xC3, 0xC3, 0x3C, 0x3C, 0x00, 0x00,
|
|
||||||
0xC1, 0xC1, 0x01, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x40, 0x60, 0x7F,
|
|
||||||
0x7F, 0x60, 0x40, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x01, 0xC1, 0xC1,
|
|
||||||
0x01, 0xFD, 0x05, 0x04, 0x04, 0x04,
|
|
||||||
0x1F, 0x30, 0x40, 0x87, 0x9F, 0x1F,
|
|
||||||
0x01, 0x81, 0xFF, 0xFF, 0x00, 0x00,
|
|
||||||
0x1E, 0x9E, 0x86, 0x40, 0x30, 0x1F,
|
|
||||||
0x04, 0x04, 0x04, 0x05, 0xFD, 0x01,
|
|
||||||
0x00, 0x7E, 0x7E, 0x61, 0x61, 0x61,
|
|
||||||
0x61, 0x61, 0x61, 0x60, 0x60, 0x00,
|
|
||||||
0x00, 0x18, 0x18, 0x60, 0x60, 0x61,
|
|
||||||
0x61, 0x61, 0x61, 0x1E, 0x1E, 0x00,
|
|
||||||
0x00, 0x07, 0x07, 0x06, 0x06, 0x06,
|
|
||||||
0x06, 0x7F, 0x7F, 0x06, 0x06, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x0F, 0x0F, 0x30, 0x30, 0x30, 0x30,
|
|
||||||
0x30, 0x30, 0x0C, 0x0C, 0x00, 0x00,
|
|
||||||
0x3F, 0x3F, 0x03, 0x03, 0x03, 0x03,
|
|
||||||
0x03, 0x03, 0x3F, 0x3F, 0x00, 0x00,
|
|
||||||
0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xFF, 0xFF, 0xFE, 0xE0, 0xE0, 0xE0,
|
|
||||||
0xC0, 0xC0, 0x00, 0x00, 0x00, 0xE0,
|
|
||||||
0xE0, 0x00, 0x00, 0x00, 0xC0, 0xC0,
|
|
||||||
0xE0, 0xE0, 0xE0, 0xFE, 0xFF, 0xFF,
|
|
||||||
0x07, 0x05, 0x07, 0x00, 0x70, 0x50,
|
|
||||||
0x70, 0x20, 0x20, 0x20, 0x21, 0x3F,
|
|
||||||
0x01, 0x61, 0x9F, 0x9F, 0x61, 0x01,
|
|
||||||
0x3F, 0x21, 0x20, 0x20, 0x20, 0x70,
|
|
||||||
0x50, 0x70, 0x00, 0x07, 0x05, 0x07,
|
|
||||||
};
|
|
||||||
// clang-format on
|
|
@ -1,132 +0,0 @@
|
|||||||
{
|
|
||||||
"keyboard_name": "Static",
|
|
||||||
"manufacturer": "0xCB",
|
|
||||||
"url": "https://0xCB.dev",
|
|
||||||
"maintainer": "Conor-Burns",
|
|
||||||
"usb": {
|
|
||||||
"vid": "0xCB00",
|
|
||||||
"pid": "0xA455",
|
|
||||||
"device_version": "0.0.1"
|
|
||||||
},
|
|
||||||
"matrix_pins": {
|
|
||||||
"cols": ["B5", "D4", "C0", "C1", "C2", "C3"],
|
|
||||||
"rows": ["D5", "D6", "D7", "B0", "B1", "B2", "B3", "B4"]
|
|
||||||
},
|
|
||||||
"diode_direction": "COL2ROW",
|
|
||||||
"encoder": {
|
|
||||||
"rotary": [
|
|
||||||
{"pin_a": "D0", "pin_b": "D1"}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"qmk": {
|
|
||||||
"tap_keycode_delay": 10
|
|
||||||
},
|
|
||||||
"processor": "atmega328p",
|
|
||||||
"bootloader": "usbasploader",
|
|
||||||
"layout_aliases": {
|
|
||||||
"LAYOUT": "LAYOUT_all"
|
|
||||||
},
|
|
||||||
"layouts": {
|
|
||||||
"LAYOUT_all": {
|
|
||||||
"layout": [
|
|
||||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
|
||||||
|
|
||||||
{"matrix": [0, 0], "x": 0, "y": 1},
|
|
||||||
{"matrix": [1, 0], "x": 1, "y": 1},
|
|
||||||
{"matrix": [0, 1], "x": 2, "y": 1},
|
|
||||||
{"matrix": [1, 1], "x": 3, "y": 1},
|
|
||||||
{"matrix": [0, 2], "x": 4, "y": 1},
|
|
||||||
{"matrix": [1, 2], "x": 5, "y": 1},
|
|
||||||
{"matrix": [0, 3], "x": 6, "y": 1},
|
|
||||||
{"matrix": [1, 3], "x": 7, "y": 1},
|
|
||||||
{"matrix": [0, 4], "x": 8, "y": 1},
|
|
||||||
{"matrix": [1, 4], "x": 9, "y": 1},
|
|
||||||
{"matrix": [0, 5], "x": 10, "y": 1},
|
|
||||||
{"matrix": [3, 5], "x": 11, "y": 1},
|
|
||||||
|
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
|
|
||||||
{"matrix": [3, 0], "x": 1.25, "y": 2},
|
|
||||||
{"matrix": [2, 1], "x": 2.25, "y": 2},
|
|
||||||
{"matrix": [3, 1], "x": 3.25, "y": 2},
|
|
||||||
{"matrix": [2, 2], "x": 4.25, "y": 2},
|
|
||||||
{"matrix": [3, 2], "x": 5.25, "y": 2},
|
|
||||||
{"matrix": [2, 3], "x": 6.25, "y": 2},
|
|
||||||
{"matrix": [3, 3], "x": 7.25, "y": 2},
|
|
||||||
{"matrix": [2, 4], "x": 8.25, "y": 2},
|
|
||||||
{"matrix": [3, 4], "x": 9.25, "y": 2},
|
|
||||||
{"matrix": [2, 5], "x": 10.25, "y": 2, "w": 1.75},
|
|
||||||
|
|
||||||
{"matrix": [4, 0], "x": 0, "y": 3, "w": 1.75},
|
|
||||||
{"matrix": [4, 1], "x": 1.75, "y": 3},
|
|
||||||
{"matrix": [5, 1], "x": 2.75, "y": 3},
|
|
||||||
{"matrix": [4, 2], "x": 3.75, "y": 3},
|
|
||||||
{"matrix": [5, 2], "x": 4.75, "y": 3},
|
|
||||||
{"matrix": [4, 3], "x": 5.75, "y": 3},
|
|
||||||
{"matrix": [5, 3], "x": 6.75, "y": 3},
|
|
||||||
{"matrix": [4, 4], "x": 7.75, "y": 3},
|
|
||||||
{"matrix": [5, 4], "x": 8.75, "y": 3},
|
|
||||||
{"matrix": [4, 5], "x": 9.75, "y": 3},
|
|
||||||
{"matrix": [5, 5], "x": 10.75, "y": 3, "w": 1.25},
|
|
||||||
|
|
||||||
{"matrix": [6, 0], "x": 0, "y": 4},
|
|
||||||
{"matrix": [7, 0], "x": 1, "y": 4},
|
|
||||||
{"matrix": [6, 1], "x": 2, "y": 4},
|
|
||||||
{"matrix": [7, 1], "x": 3, "y": 4, "w": 2.75},
|
|
||||||
{"matrix": [7, 2], "x": 5.75, "y": 4},
|
|
||||||
{"matrix": [6, 4], "x": 6.75, "y": 4, "w": 2.25},
|
|
||||||
{"matrix": [7, 4], "x": 9, "y": 4},
|
|
||||||
{"matrix": [6, 5], "x": 10, "y": 4},
|
|
||||||
{"matrix": [7, 5], "x": 11, "y": 4}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"LAYOUT_bigbar": {
|
|
||||||
"layout": [
|
|
||||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
|
||||||
|
|
||||||
{"matrix": [0, 0], "x": 0, "y": 1},
|
|
||||||
{"matrix": [1, 0], "x": 1, "y": 1},
|
|
||||||
{"matrix": [0, 1], "x": 2, "y": 1},
|
|
||||||
{"matrix": [1, 1], "x": 3, "y": 1},
|
|
||||||
{"matrix": [0, 2], "x": 4, "y": 1},
|
|
||||||
{"matrix": [1, 2], "x": 5, "y": 1},
|
|
||||||
{"matrix": [0, 3], "x": 6, "y": 1},
|
|
||||||
{"matrix": [1, 3], "x": 7, "y": 1},
|
|
||||||
{"matrix": [0, 4], "x": 8, "y": 1},
|
|
||||||
{"matrix": [1, 4], "x": 9, "y": 1},
|
|
||||||
{"matrix": [0, 5], "x": 10, "y": 1},
|
|
||||||
{"matrix": [3, 5], "x": 11, "y": 1},
|
|
||||||
|
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
|
|
||||||
{"matrix": [3, 0], "x": 1.25, "y": 2},
|
|
||||||
{"matrix": [2, 1], "x": 2.25, "y": 2},
|
|
||||||
{"matrix": [3, 1], "x": 3.25, "y": 2},
|
|
||||||
{"matrix": [2, 2], "x": 4.25, "y": 2},
|
|
||||||
{"matrix": [3, 2], "x": 5.25, "y": 2},
|
|
||||||
{"matrix": [2, 3], "x": 6.25, "y": 2},
|
|
||||||
{"matrix": [3, 3], "x": 7.25, "y": 2},
|
|
||||||
{"matrix": [2, 4], "x": 8.25, "y": 2},
|
|
||||||
{"matrix": [3, 4], "x": 9.25, "y": 2},
|
|
||||||
{"matrix": [2, 5], "x": 10.25, "y": 2, "w": 1.75},
|
|
||||||
|
|
||||||
{"matrix": [4, 0], "x": 0, "y": 3, "w": 1.75},
|
|
||||||
{"matrix": [4, 1], "x": 1.75, "y": 3},
|
|
||||||
{"matrix": [5, 1], "x": 2.75, "y": 3},
|
|
||||||
{"matrix": [4, 2], "x": 3.75, "y": 3},
|
|
||||||
{"matrix": [5, 2], "x": 4.75, "y": 3},
|
|
||||||
{"matrix": [4, 3], "x": 5.75, "y": 3},
|
|
||||||
{"matrix": [5, 3], "x": 6.75, "y": 3},
|
|
||||||
{"matrix": [4, 4], "x": 7.75, "y": 3},
|
|
||||||
{"matrix": [5, 4], "x": 8.75, "y": 3},
|
|
||||||
{"matrix": [4, 5], "x": 9.75, "y": 3},
|
|
||||||
{"matrix": [5, 5], "x": 10.75, "y": 3, "w": 1.25},
|
|
||||||
|
|
||||||
{"matrix": [6, 0], "x": 0, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [7, 0], "x": 1.25, "y": 4},
|
|
||||||
{"matrix": [6, 1], "x": 2.25, "y": 4},
|
|
||||||
{"matrix": [7, 2], "x": 3.25, "y": 4, "w": 6.25},
|
|
||||||
{"matrix": [6, 5], "x": 9.5, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [7, 5], "x": 10.75, "y": 4, "w": 1.25}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,191 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2021 0xCB - Conor Burns
|
|
||||||
|
|
||||||
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
|
|
||||||
// clang-format off
|
|
||||||
enum layer_names {
|
|
||||||
_HOME,
|
|
||||||
_FN2,
|
|
||||||
_FN3,
|
|
||||||
_FN4
|
|
||||||
};
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
||||||
[_HOME] = LAYOUT_all(
|
|
||||||
KC_MPLY,
|
|
||||||
QK_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
|
||||||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
|
|
||||||
SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SC_RSPC,
|
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), MO(2)
|
|
||||||
),
|
|
||||||
[_FN2] = LAYOUT_all(
|
|
||||||
QK_BOOT,
|
|
||||||
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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
|
||||||
),
|
|
||||||
[_FN3] = LAYOUT_all(
|
|
||||||
EE_CLR,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
|
||||||
),
|
|
||||||
[_FN4] = LAYOUT_all(
|
|
||||||
_______,
|
|
||||||
_______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MSTP, KC_INS, KC_HOME, KC_DEL, KC_END, _______,
|
|
||||||
_______, _______, KC_BRID, KC_BRIU, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
|
||||||
),
|
|
||||||
};
|
|
||||||
// clang-format on
|
|
||||||
|
|
||||||
/*layer switcher */
|
|
||||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
|
||||||
state = update_tri_layer_state(state, _FN2, _FN3, _FN4);
|
|
||||||
return state;
|
|
||||||
}
|
|
||||||
/* rotary encoder (MX12) - add different functions for layers here */
|
|
||||||
#ifdef ENCODER_ENABLE
|
|
||||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
|
||||||
if (IS_LAYER_ON(_FN4)) {
|
|
||||||
if (clockwise) {
|
|
||||||
tap_code(KC_VOLU);
|
|
||||||
} else {
|
|
||||||
tap_code(KC_VOLD);
|
|
||||||
}
|
|
||||||
} else if (IS_LAYER_ON(_FN3)) {
|
|
||||||
if (clockwise) {
|
|
||||||
tap_code(KC_VOLU);
|
|
||||||
} else {
|
|
||||||
tap_code(KC_VOLD);
|
|
||||||
}
|
|
||||||
} else if (IS_LAYER_ON(_FN2)) {
|
|
||||||
if (clockwise) {
|
|
||||||
tap_code(KC_VOLU);
|
|
||||||
} else {
|
|
||||||
tap_code(KC_VOLD);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (clockwise) {
|
|
||||||
tap_code(KC_VOLU);
|
|
||||||
} else {
|
|
||||||
tap_code(KC_VOLD);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* oled stuff :) */
|
|
||||||
#ifdef OLED_ENABLE
|
|
||||||
uint16_t startup_timer = 0;
|
|
||||||
|
|
||||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
|
||||||
startup_timer = timer_read();
|
|
||||||
return rotation;
|
|
||||||
}
|
|
||||||
static void render_logo(void) {
|
|
||||||
static const char PROGMEM raw_logo[] = {
|
|
||||||
0, 8, 0,192,194,192,192, 60, 60, 44, 60,188, 60, 60, 60, 60, 44, 61, 60,192,192,192,208, 1, 0,252,252,180,252, 60, 60, 44, 60,252,253,252,252, 60, 60, 44, 60,244,220,252,252, 0, 0, 16, 0, 0, 0,192,192, 65,192, 60, 60, 52, 60,192,193,192,192, 16, 0, 0,144, 4, 0,252,125,244, 60, 60, 60, 60, 61,252,252,244,252, 60, 60, 60, 61,248,108,252, 0, 0, 61, 60,188, 60, 52,252,252,220,252, 61, 60, 60, 52, 0, 0,192,210, 64,192, 60, 60, 44, 61, 60, 60, 60, 61, 52, 60, 60, 60,192,192, 64,196, 0, 4, 0,
|
|
||||||
0, 16, 0, 61, 63, 55, 63,192, 64,192,196,192,192,192,200,192,196,192,192, 3, 3, 2, 11, 0, 0, 35, 3, 3, 3, 0, 64, 2, 0,255,255,253,247, 0, 0, 0, 32, 1, 0, 1, 65, 8, 0,189,244,252,236, 3,130, 3, 1, 0, 68, 0, 0, 3, 34,131, 3,252,252,236,252, 0, 32, 17, 1, 1, 0, 0, 32, 0, 2,255,255,127,247, 0, 1, 0, 8, 1, 1, 1, 0, 0, 0, 16, 0, 64, 0,255,191,255,251, 0,129, 0, 2, 32, 0,255,255,239,255, 0, 0, 2, 0, 0, 0, 8, 64, 0, 1, 0, 0, 3, 35, 3, 3, 0, 8, 0,
|
|
||||||
1, 16, 0,192, 64,194,192, 3, 67, 3, 3, 9, 3, 3, 3, 3, 2, 83, 3,252,252,188,244, 0, 2, 32, 0, 0, 2, 0,144, 0, 0,255,255,237,255, 0, 16, 0, 0, 0, 64, 2, 0,128, 0,255,123,255,255, 60, 52, 60, 60, 60, 60, 60, 60, 44, 60, 56, 60,239,255,126,255, 0, 2, 32, 0, 0, 34, 0, 0, 16, 0,255,255,255,223, 0, 0, 4, 0, 0, 0, 33, 0, 0, 17, 0, 0, 0, 0,255,255,239,255, 0,128, 0, 0, 72, 0,255,253,247,255, 0, 0, 1, 0,144, 0, 4, 0, 32, 0, 0, 2,192,192,192,200, 0, 16, 0,
|
|
||||||
64, 4, 0, 3, 7, 3, 3, 60, 60, 52,188, 60, 61, 60, 60, 60, 60, 44, 60, 67, 3, 3, 3, 0, 0, 64, 0, 0, 4, 0, 0, 16, 0, 47, 63, 62, 63, 0, 0,132, 0, 0, 0, 0,128, 8, 0,255,255,111,127, 0, 0, 0, 2,128, 0, 0, 0, 64, 4, 0,128,127,127,107,127, 0, 32, 0, 0, 0, 66, 0, 0, 0,136, 55, 63, 61, 63, 0, 0, 0, 2, 0, 64, 0,136, 0, 0, 60, 44,189, 60, 63, 63, 63, 59, 60, 60,172, 60, 0, 64, 3, 2, 3,131, 60, 44, 60, 60, 60, 60,188, 60, 56, 44, 60, 60, 3, 3,131, 2, 0, 32, 2,
|
|
||||||
};
|
|
||||||
oled_write_raw_P(raw_logo, sizeof(raw_logo));
|
|
||||||
}
|
|
||||||
/* Shows the name of the current layer and locks for the host (CAPS etc.) */
|
|
||||||
static void render_layer(void) {
|
|
||||||
led_t led_state = host_keyboard_led_state();
|
|
||||||
// clang-format off
|
|
||||||
static const char PROGMEM logo[][3][7] = {
|
|
||||||
{{0x97, 0x98, 0x99, 0x9A, 0}, {0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0}, {0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0}}, /* l num CB */
|
|
||||||
{{0xB7, 0xB8, 0xB9, 0xBA, 0}, {0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0}, {0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0}}, /* 1 num CB */
|
|
||||||
{{0xD7, 0xD8, 0xD9, 0xDA, 0}, {0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0}, {0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0}}, /* 1 cap CB */
|
|
||||||
{{0xF7, 0xF8, 0xF9, 0xFA, 0}, {0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0}, {0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0}}, /* l cap CB */
|
|
||||||
{{0xB7, 0xC0, 0xC1, 0xBA, 0}, {0xB7, 0xC2, 0xC3, 0xBA, 0}, {0xB7, 0xC4, 0xC5, 0xBA, 0}}, /* 2 3 4 */
|
|
||||||
{{0xD7, 0xE0, 0xE1, 0xDA, 0}, {0xD7, 0xE2, 0xE3, 0xDA, 0}, {0xD7, 0xE4, 0xE5, 0xDA, 0}}, /* 2 3 4 */
|
|
||||||
};
|
|
||||||
// clang-format on
|
|
||||||
oled_set_cursor(0, 0);
|
|
||||||
oled_write_P(logo[0][0], false);
|
|
||||||
oled_set_cursor(0, 3);
|
|
||||||
oled_write_P(logo[3][0], false);
|
|
||||||
switch (get_highest_layer(layer_state)) {
|
|
||||||
case _HOME:
|
|
||||||
oled_set_cursor(0, 1);
|
|
||||||
oled_write_P(logo[1][0], false);
|
|
||||||
oled_set_cursor(0, 2);
|
|
||||||
oled_write_P(logo[2][0], false);
|
|
||||||
break;
|
|
||||||
case _FN2:
|
|
||||||
oled_set_cursor(0, 1);
|
|
||||||
oled_write_P(logo[4][0], false);
|
|
||||||
oled_set_cursor(0, 2);
|
|
||||||
oled_write_P(logo[5][0], false);
|
|
||||||
break;
|
|
||||||
case _FN3:
|
|
||||||
oled_set_cursor(0, 1);
|
|
||||||
oled_write_P(logo[4][1], false);
|
|
||||||
oled_set_cursor(0, 2);
|
|
||||||
oled_write_P(logo[5][1], false);
|
|
||||||
break;
|
|
||||||
case _FN4:
|
|
||||||
oled_set_cursor(0, 1);
|
|
||||||
oled_write_P(logo[4][2], false);
|
|
||||||
oled_set_cursor(0, 2);
|
|
||||||
oled_write_P(logo[5][2], false);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
oled_set_cursor(0, 1);
|
|
||||||
oled_write_P(PSTR(" "), false);
|
|
||||||
oled_set_cursor(0, 2);
|
|
||||||
oled_write_P(PSTR(" "), false);
|
|
||||||
}
|
|
||||||
oled_set_cursor(8, 0);
|
|
||||||
oled_write_P(led_state.num_lock ? logo[0][1] : PSTR(" "), false);
|
|
||||||
oled_set_cursor(8, 1);
|
|
||||||
oled_write_P(led_state.num_lock ? logo[1][1] : PSTR(" "), false);
|
|
||||||
oled_set_cursor(8, 2);
|
|
||||||
oled_write_P(led_state.caps_lock ? logo[2][1] : PSTR(" "), false);
|
|
||||||
oled_set_cursor(8, 3);
|
|
||||||
oled_write_P(led_state.caps_lock ? logo[3][1] : PSTR(" "), false);
|
|
||||||
|
|
||||||
oled_set_cursor(16, 0);
|
|
||||||
oled_write_P(logo[0][2], false);
|
|
||||||
oled_set_cursor(16, 1);
|
|
||||||
oled_write_P(logo[1][2], false);
|
|
||||||
oled_set_cursor(16, 2);
|
|
||||||
oled_write_P(logo[2][2], false);
|
|
||||||
oled_set_cursor(16, 3);
|
|
||||||
oled_write_P(logo[3][2], false);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool oled_task_user(void) {
|
|
||||||
static bool finished_timer = false;
|
|
||||||
if (!finished_timer && (timer_elapsed(startup_timer) < 3000)) {
|
|
||||||
render_logo();
|
|
||||||
} else {
|
|
||||||
if (!finished_timer) {
|
|
||||||
oled_clear();
|
|
||||||
finished_timer = true;
|
|
||||||
}
|
|
||||||
render_layer();
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif
|
|
@ -1,198 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2021 0xCB - Conor Burns
|
|
||||||
|
|
||||||
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
|
|
||||||
// clang-format off
|
|
||||||
enum layer_names {
|
|
||||||
_HOME,
|
|
||||||
_FN2,
|
|
||||||
_FN3,
|
|
||||||
_FN4
|
|
||||||
};
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
||||||
[_HOME] = LAYOUT_all(
|
|
||||||
KC_MPLY,
|
|
||||||
QK_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
|
||||||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
|
|
||||||
SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SC_RSPC,
|
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), MO(2)
|
|
||||||
),
|
|
||||||
[_FN2] = LAYOUT_all(
|
|
||||||
QK_BOOT,
|
|
||||||
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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
|
||||||
),
|
|
||||||
[_FN3] = LAYOUT_all(
|
|
||||||
EE_CLR,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
|
||||||
),
|
|
||||||
[_FN4] = LAYOUT_all(
|
|
||||||
_______,
|
|
||||||
_______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MSTP, KC_INS, KC_HOME, KC_DEL, KC_END, _______,
|
|
||||||
_______, _______, KC_BRID, KC_BRIU, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
|
||||||
),
|
|
||||||
};
|
|
||||||
// clang-format on
|
|
||||||
|
|
||||||
/*layer switcher */
|
|
||||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
|
||||||
state = update_tri_layer_state(state, _FN2, _FN3, _FN4);
|
|
||||||
return state;
|
|
||||||
}
|
|
||||||
/* rotary encoder (MX12) - add different functions for layers here */
|
|
||||||
#ifdef ENCODER_ENABLE
|
|
||||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
|
||||||
if (IS_LAYER_ON(_FN4)) {
|
|
||||||
if (clockwise) {
|
|
||||||
tap_code(KC_VOLU);
|
|
||||||
} else {
|
|
||||||
tap_code(KC_VOLD);
|
|
||||||
}
|
|
||||||
} else if (IS_LAYER_ON(_FN3)) {
|
|
||||||
if (clockwise) {
|
|
||||||
tap_code(KC_VOLU);
|
|
||||||
} else {
|
|
||||||
tap_code(KC_VOLD);
|
|
||||||
}
|
|
||||||
} else if (IS_LAYER_ON(_FN2)) {
|
|
||||||
if (clockwise) {
|
|
||||||
tap_code(KC_VOLU);
|
|
||||||
} else {
|
|
||||||
tap_code(KC_VOLD);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (clockwise) {
|
|
||||||
tap_code(KC_VOLU);
|
|
||||||
} else {
|
|
||||||
tap_code(KC_VOLD);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* oled stuff :) */
|
|
||||||
#ifdef OLED_ENABLE
|
|
||||||
uint16_t startup_timer = 0;
|
|
||||||
|
|
||||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
|
||||||
startup_timer = timer_read();
|
|
||||||
return rotation;
|
|
||||||
}
|
|
||||||
static void render_logo(void) {
|
|
||||||
static const char PROGMEM raw_logo[] = {
|
|
||||||
0, 8, 0,192,194,192,192, 60, 60, 44, 60,188, 60, 60, 60, 60, 44, 61, 60,192,192,192,208, 1, 0,252,252,180,252, 60, 60, 44, 60,252,253,252,252, 60, 60, 44, 60,244,220,252,252, 0, 0, 16, 0, 0, 0,192,192, 65,192, 60, 60, 52, 60,192,193,192,192, 16, 0, 0,144, 4, 0,252,125,244, 60, 60, 60, 60, 61,252,252,244,252, 60, 60, 60, 61,248,108,252, 0, 0, 61, 60,188, 60, 52,252,252,220,252, 61, 60, 60, 52, 0, 0,192,210, 64,192, 60, 60, 44, 61, 60, 60, 60, 61, 52, 60, 60, 60,192,192, 64,196, 0, 4, 0,
|
|
||||||
0, 16, 0, 61, 63, 55, 63,192, 64,192,196,192,192,192,200,192,196,192,192, 3, 3, 2, 11, 0, 0, 35, 3, 3, 3, 0, 64, 2, 0,255,255,253,247, 0, 0, 0, 32, 1, 0, 1, 65, 8, 0,189,244,252,236, 3,130, 3, 1, 0, 68, 0, 0, 3, 34,131, 3,252,252,236,252, 0, 32, 17, 1, 1, 0, 0, 32, 0, 2,255,255,127,247, 0, 1, 0, 8, 1, 1, 1, 0, 0, 0, 16, 0, 64, 0,255,191,255,251, 0,129, 0, 2, 32, 0,255,255,239,255, 0, 0, 2, 0, 0, 0, 8, 64, 0, 1, 0, 0, 3, 35, 3, 3, 0, 8, 0,
|
|
||||||
1, 16, 0,192, 64,194,192, 3, 67, 3, 3, 9, 3, 3, 3, 3, 2, 83, 3,252,252,188,244, 0, 2, 32, 0, 0, 2, 0,144, 0, 0,255,255,237,255, 0, 16, 0, 0, 0, 64, 2, 0,128, 0,255,123,255,255, 60, 52, 60, 60, 60, 60, 60, 60, 44, 60, 56, 60,239,255,126,255, 0, 2, 32, 0, 0, 34, 0, 0, 16, 0,255,255,255,223, 0, 0, 4, 0, 0, 0, 33, 0, 0, 17, 0, 0, 0, 0,255,255,239,255, 0,128, 0, 0, 72, 0,255,253,247,255, 0, 0, 1, 0,144, 0, 4, 0, 32, 0, 0, 2,192,192,192,200, 0, 16, 0,
|
|
||||||
64, 4, 0, 3, 7, 3, 3, 60, 60, 52,188, 60, 61, 60, 60, 60, 60, 44, 60, 67, 3, 3, 3, 0, 0, 64, 0, 0, 4, 0, 0, 16, 0, 47, 63, 62, 63, 0, 0,132, 0, 0, 0, 0,128, 8, 0,255,255,111,127, 0, 0, 0, 2,128, 0, 0, 0, 64, 4, 0,128,127,127,107,127, 0, 32, 0, 0, 0, 66, 0, 0, 0,136, 55, 63, 61, 63, 0, 0, 0, 2, 0, 64, 0,136, 0, 0, 60, 44,189, 60, 63, 63, 63, 59, 60, 60,172, 60, 0, 64, 3, 2, 3,131, 60, 44, 60, 60, 60, 60,188, 60, 56, 44, 60, 60, 3, 3,131, 2, 0, 32, 2,
|
|
||||||
};
|
|
||||||
oled_write_raw_P(raw_logo, sizeof(raw_logo));
|
|
||||||
}
|
|
||||||
/* Shows the name of the current layer and locks for the host (CAPS etc.) */
|
|
||||||
static void render_layer(void) {
|
|
||||||
led_t led_state = host_keyboard_led_state();
|
|
||||||
// clang-format off
|
|
||||||
static const char PROGMEM logo[][3][7] = {
|
|
||||||
{{0x97, 0x98, 0x99, 0x9A, 0}, {0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0}, {0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0}}, /* l num CB */
|
|
||||||
{{0xB7, 0xB8, 0xB9, 0xBA, 0}, {0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0}, {0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0}}, /* 1 num CB */
|
|
||||||
{{0xD7, 0xD8, 0xD9, 0xDA, 0}, {0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0}, {0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0}}, /* 1 cap CB */
|
|
||||||
{{0xF7, 0xF8, 0xF9, 0xFA, 0}, {0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0}, {0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0}}, /* l cap CB */
|
|
||||||
{{0xB7, 0xC0, 0xC1, 0xBA, 0}, {0xB7, 0xC2, 0xC3, 0xBA, 0}, {0xB7, 0xC4, 0xC5, 0xBA, 0}}, /* 2 3 4 */
|
|
||||||
{{0xD7, 0xE0, 0xE1, 0xDA, 0}, {0xD7, 0xE2, 0xE3, 0xDA, 0}, {0xD7, 0xE4, 0xE5, 0xDA, 0}}, /* 2 3 4 */
|
|
||||||
};
|
|
||||||
// clang-format on
|
|
||||||
oled_set_cursor(0, 0);
|
|
||||||
oled_write_P(logo[0][0], false);
|
|
||||||
oled_set_cursor(0, 3);
|
|
||||||
oled_write_P(logo[3][0], false);
|
|
||||||
switch (get_highest_layer(layer_state)) {
|
|
||||||
case _HOME:
|
|
||||||
oled_set_cursor(0, 1);
|
|
||||||
oled_write_P(logo[1][0], false);
|
|
||||||
oled_set_cursor(0, 2);
|
|
||||||
oled_write_P(logo[2][0], false);
|
|
||||||
break;
|
|
||||||
case _FN2:
|
|
||||||
oled_set_cursor(0, 1);
|
|
||||||
oled_write_P(logo[4][0], false);
|
|
||||||
oled_set_cursor(0, 2);
|
|
||||||
oled_write_P(logo[5][0], false);
|
|
||||||
break;
|
|
||||||
case _FN3:
|
|
||||||
oled_set_cursor(0, 1);
|
|
||||||
oled_write_P(logo[4][1], false);
|
|
||||||
oled_set_cursor(0, 2);
|
|
||||||
oled_write_P(logo[5][1], false);
|
|
||||||
break;
|
|
||||||
case _FN4:
|
|
||||||
oled_set_cursor(0, 1);
|
|
||||||
oled_write_P(logo[4][2], false);
|
|
||||||
oled_set_cursor(0, 2);
|
|
||||||
oled_write_P(logo[5][2], false);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
oled_set_cursor(0, 1);
|
|
||||||
oled_write_P(PSTR(" "), false);
|
|
||||||
oled_set_cursor(0, 2);
|
|
||||||
oled_write_P(PSTR(" "), false);
|
|
||||||
}
|
|
||||||
oled_set_cursor(8, 0);
|
|
||||||
oled_write_P(led_state.num_lock ? logo[0][1] : PSTR(" "), false);
|
|
||||||
oled_set_cursor(8, 1);
|
|
||||||
oled_write_P(led_state.num_lock ? logo[1][1] : PSTR(" "), false);
|
|
||||||
oled_set_cursor(8, 2);
|
|
||||||
oled_write_P(led_state.caps_lock ? logo[2][1] : PSTR(" "), false);
|
|
||||||
oled_set_cursor(8, 3);
|
|
||||||
oled_write_P(led_state.caps_lock ? logo[3][1] : PSTR(" "), false);
|
|
||||||
|
|
||||||
oled_set_cursor(16, 0);
|
|
||||||
oled_write_P(logo[0][2], false);
|
|
||||||
oled_set_cursor(16, 1);
|
|
||||||
oled_write_P(logo[1][2], false);
|
|
||||||
oled_set_cursor(16, 2);
|
|
||||||
oled_write_P(logo[2][2], false);
|
|
||||||
oled_set_cursor(16, 3);
|
|
||||||
oled_write_P(logo[3][2], false);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool oled_task_user(void) {
|
|
||||||
static bool finished_timer = false;
|
|
||||||
if (!finished_timer && (timer_elapsed(startup_timer) < 3000)) {
|
|
||||||
render_logo();
|
|
||||||
} else {
|
|
||||||
if (!finished_timer) {
|
|
||||||
oled_clear();
|
|
||||||
finished_timer = true;
|
|
||||||
}
|
|
||||||
render_layer();
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Resets via on eep reset - thank you drashna! */
|
|
||||||
void eeconfig_init_kb(void) {
|
|
||||||
via_eeprom_set_valid(false);
|
|
||||||
via_init();
|
|
||||||
eeconfig_init_user();
|
|
||||||
}
|
|
@ -1,27 +0,0 @@
|
|||||||
# 0xCB Static
|
|
||||||
|
|
||||||
Macro keypad
|
|
||||||
|
|
||||||
* Keyboard Maintainer: [Conor Burns](https://github.com/conor-burns)
|
|
||||||
* Hardware Supported: https://github.com/0xCB-dev/0xcb-static
|
|
||||||
* Hardware Availability: On CandyKeys or order your own parts - the hardware in the repo is Open Source :D
|
|
||||||
* PCB renders :)
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
More Pictures [here](https://0xcb.dev/static/)
|
|
||||||
|
|
||||||
To go to bootloader press ESC while plugging in or hold the RESET switch, then hold the BOOT switch, release RESET, release BOOT.
|
|
||||||
The board should now appear in lsusb (or device manager).
|
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
|
||||||
|
|
||||||
make 0xcb/static:default
|
|
||||||
|
|
||||||
Flashing example for this keyboard:
|
|
||||||
|
|
||||||
make 0xcb/static: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).
|
|
@ -1,16 +0,0 @@
|
|||||||
# 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 = no # 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
|
|
||||||
LTO_ENABLE = yes
|
|
||||||
OLED_ENABLE = yes
|
|
@ -1,37 +0,0 @@
|
|||||||
/* Copyright 2022 ItsFiremanSam
|
|
||||||
|
|
||||||
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 OLED_TIMEOUT 20000 // Turns off OLED after said amount of milliseconds
|
|
||||||
#define OLED_BRIGHTNESS 128
|
|
||||||
#define OLED_DISPLAY_128X64
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Feature disable options
|
|
||||||
* These options are also useful to firmware size reduction.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* disable debug print */
|
|
||||||
//#define NO_DEBUG
|
|
||||||
|
|
||||||
/* disable print */
|
|
||||||
//#define NO_PRINT
|
|
||||||
|
|
||||||
/* disable action features */
|
|
||||||
//#define NO_ACTION_LAYER
|
|
||||||
//#define NO_ACTION_TAPPING
|
|
||||||
//#define NO_ACTION_ONESHOT
|
|
@ -1,57 +0,0 @@
|
|||||||
{
|
|
||||||
"keyboard_name": "TutelPad",
|
|
||||||
"manufacturer": "ItsFiremanSam",
|
|
||||||
"url": "",
|
|
||||||
"maintainer": "ItsFiremanSam",
|
|
||||||
"usb": {
|
|
||||||
"vid": "0xCB00",
|
|
||||||
"pid": "0xF09F",
|
|
||||||
"device_version": "0.0.1"
|
|
||||||
},
|
|
||||||
"bootmagic": {
|
|
||||||
"matrix": [1, 0]
|
|
||||||
},
|
|
||||||
"rgblight": {
|
|
||||||
"hue_steps": 10,
|
|
||||||
"led_count": 4,
|
|
||||||
"sleep": true,
|
|
||||||
"animations": {
|
|
||||||
"breathing": true,
|
|
||||||
"rainbow_mood": true,
|
|
||||||
"rainbow_swirl": true,
|
|
||||||
"snake": true,
|
|
||||||
"knight": true,
|
|
||||||
"christmas": true,
|
|
||||||
"static_gradient": true,
|
|
||||||
"rgb_test": true,
|
|
||||||
"alternating": true,
|
|
||||||
"twinkle": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ws2812": {
|
|
||||||
"pin": "D3"
|
|
||||||
},
|
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "caterina",
|
|
||||||
"matrix_pins": {
|
|
||||||
"direct": [
|
|
||||||
["E6", "D7", "B1", "B3"],
|
|
||||||
["B5", "B4", "B2", "B6"]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"layouts": {
|
|
||||||
"LAYOUT": {
|
|
||||||
"layout": [
|
|
||||||
{"x": 0, "y": 0, "matrix": [0, 0]},
|
|
||||||
{"x": 1, "y": 0, "matrix": [0, 1]},
|
|
||||||
{"x": 2, "y": 0, "matrix": [0, 2]},
|
|
||||||
{"x": 3, "y": 0, "matrix": [0, 3]},
|
|
||||||
|
|
||||||
{"x": 0, "y": 1, "matrix": [1, 0]},
|
|
||||||
{"x": 1, "y": 1, "matrix": [1, 1]},
|
|
||||||
{"x": 2, "y": 1, "matrix": [1, 2]},
|
|
||||||
{"x": 3, "y": 1, "matrix": [1, 3]}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,29 +0,0 @@
|
|||||||
/* Copyright 2022 ItsFiremanSam
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
|
|
||||||
// Defines names for use in layer keycodes and the keymap
|
|
||||||
enum layer_names {
|
|
||||||
_BASE
|
|
||||||
};
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
||||||
/* Base */
|
|
||||||
[_BASE] = LAYOUT(
|
|
||||||
KC_1, KC_2, KC_3, KC_4,
|
|
||||||
KC_5, KC_6, KC_7, KC_8
|
|
||||||
)
|
|
||||||
};
|
|
@ -1,39 +0,0 @@
|
|||||||
/* Copyright 2022 ItsFiremanSam
|
|
||||||
*
|
|
||||||
* 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(
|
|
||||||
KC_1, KC_2, KC_3, KC_4,
|
|
||||||
KC_5, LT(1, KC_6), LT(1, KC_7), LT(1, KC_8)
|
|
||||||
),
|
|
||||||
|
|
||||||
[1] = LAYOUT(
|
|
||||||
_______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______
|
|
||||||
),
|
|
||||||
|
|
||||||
[2] = LAYOUT(
|
|
||||||
_______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______
|
|
||||||
),
|
|
||||||
|
|
||||||
[3] = LAYOUT(
|
|
||||||
_______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______
|
|
||||||
),
|
|
||||||
};
|
|
@ -1,19 +0,0 @@
|
|||||||
# TutelPad macropad
|
|
||||||
|
|
||||||
* Keyboard Maintainer: [ItsFiremanSam](https://github.com/ItsFiremanSam)
|
|
||||||
* Hardware Supported: [TutelPad GitHub](https://github.com/0xCB-dev/0xCB-TutelPad)
|
|
||||||
* Hardware Availability: [KeebSupply](https://keeb.supply/)
|
|
||||||
|
|
||||||
## Bootloader
|
|
||||||
|
|
||||||
You can enter the bootloader by pressing the reset switch on the side while the keyboard is plugged in. You can also short the GND and RST pads on the controller.
|
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
|
||||||
|
|
||||||
make 0xcb/tutelpad:default
|
|
||||||
|
|
||||||
Flashing example for this keyboard:
|
|
||||||
|
|
||||||
make 0xcb/tutelpad: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).
|
|
@ -1,13 +0,0 @@
|
|||||||
# Build Options
|
|
||||||
# change yes to no to disable
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
|
||||||
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 = no # Enable N-Key Rollover
|
|
||||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
|
||||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
|
||||||
AUDIO_ENABLE = no # Audio output
|
|
||||||
OLED_ENABLE = yes
|
|
@ -1,106 +0,0 @@
|
|||||||
/* Copyright 2022 ItsFiremanSam
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "quantum.h"
|
|
||||||
|
|
||||||
#ifdef OLED_ENABLE
|
|
||||||
|
|
||||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
|
||||||
return OLED_ROTATION_180;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void render_logo(void) {
|
|
||||||
static const char PROGMEM tutel[] = {
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
|
|
||||||
0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
|
|
||||||
0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f,
|
|
||||||
0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
|
||||||
0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f,
|
|
||||||
0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f,
|
|
||||||
0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
|
|
||||||
0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f,
|
|
||||||
0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff,
|
|
||||||
0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
|
||||||
0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f,
|
|
||||||
0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
|
|
||||||
0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
|
|
||||||
0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
|
||||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
|
||||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0,
|
|
||||||
0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0,
|
|
||||||
0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0,
|
|
||||||
0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
};
|
|
||||||
|
|
||||||
oled_write_raw_P(tutel, sizeof(tutel));
|
|
||||||
}
|
|
||||||
|
|
||||||
bool oled_task_kb(void) {
|
|
||||||
if (!oled_task_user()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
render_logo();
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,19 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2020 haierwangwei2005
|
|
||||||
|
|
||||||
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 OLED_FONT_H "./lib/glcdfont.c"
|
|
@ -1,63 +0,0 @@
|
|||||||
{
|
|
||||||
"keyboard_name": "10bleoledhub",
|
|
||||||
"manufacturer": "haierwangwei2005",
|
|
||||||
"url": "https://github.com/haierwangwei2005/10BLE-OLED-HUB",
|
|
||||||
"maintainer": "haierwangwei2005",
|
|
||||||
"usb": {
|
|
||||||
"vid": "0x7C88",
|
|
||||||
"pid": "0x7C99",
|
|
||||||
"device_version": "0.0.1"
|
|
||||||
},
|
|
||||||
"bluetooth": {
|
|
||||||
"driver": "bluefruit_le"
|
|
||||||
},
|
|
||||||
"rgblight": {
|
|
||||||
"led_count": 4,
|
|
||||||
"animations": {
|
|
||||||
"breathing": true,
|
|
||||||
"rainbow_mood": true,
|
|
||||||
"rainbow_swirl": true,
|
|
||||||
"snake": true,
|
|
||||||
"knight": true,
|
|
||||||
"christmas": true,
|
|
||||||
"static_gradient": true,
|
|
||||||
"rgb_test": true,
|
|
||||||
"alternating": true,
|
|
||||||
"twinkle": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ws2812": {
|
|
||||||
"pin": "B7"
|
|
||||||
},
|
|
||||||
"matrix_pins": {
|
|
||||||
"cols": ["D6", "D7", "B5"],
|
|
||||||
"rows": ["F0", "F5", "F4", "F6"]
|
|
||||||
},
|
|
||||||
"diode_direction": "ROW2COL",
|
|
||||||
"encoder": {
|
|
||||||
"rotary": [
|
|
||||||
{"pin_a": "C7", "pin_b": "F7"}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "caterina",
|
|
||||||
"layouts": {
|
|
||||||
"LAYOUT": {
|
|
||||||
"layout": [
|
|
||||||
{"matrix": [0, 0], "x": 0, "y": 0, "w": 0.8, "h": 0.8},
|
|
||||||
|
|
||||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
|
||||||
{"matrix": [1, 1], "x": 1, "y": 1},
|
|
||||||
{"matrix": [1, 2], "x": 2, "y": 1},
|
|
||||||
|
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
|
||||||
{"matrix": [2, 1], "x": 1, "y": 2},
|
|
||||||
{"matrix": [2, 2], "x": 2, "y": 2},
|
|
||||||
|
|
||||||
{"matrix": [3, 0], "x": 0, "y": 3},
|
|
||||||
{"matrix": [3, 1], "x": 1, "y": 3},
|
|
||||||
{"matrix": [3, 2], "x": 2, "y": 3}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,76 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2020 haierwangwei2005
|
|
||||||
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/>.*/
|
|
||||||
/* Keymap _0: (Base Layer) Default Layer
|
|
||||||
|
|
||||||
* .-----.
|
|
||||||
* |PGUP |
|
|
||||||
* |-----------------.
|
|
||||||
* | 7 | 8 | 9 |
|
|
||||||
* |-----|-----|-----|
|
|
||||||
* | 4 | 5 | 6 |
|
|
||||||
* |-----|-----|-----|
|
|
||||||
* | 1 | 2 | 3 |
|
|
||||||
* .-----------------.
|
|
||||||
*/
|
|
||||||
/* Keymap _1: (Second Layer) second Layer
|
|
||||||
|
|
||||||
* .-------.
|
|
||||||
* |NUMLOCK|
|
|
||||||
* |-----------------------.
|
|
||||||
* |RGB_TOG|RGB_MOD|RGB_M_K|
|
|
||||||
* |-------|-------|-------|
|
|
||||||
* |RGB_SAI|RGB_SAD|RGB_HUI|
|
|
||||||
* |-------|-------|-------|
|
|
||||||
* |RGB_VAI|RGB_VAD|RGB_SPI|
|
|
||||||
* .-----------------------.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
||||||
[0] = LAYOUT(
|
|
||||||
KC_PGUP,
|
|
||||||
KC_KP_7, KC_KP_8, MO(1),
|
|
||||||
KC_P4, KC_P5, KC_P6,
|
|
||||||
KC_P1, KC_P2, KC_P3),
|
|
||||||
[1] = LAYOUT(
|
|
||||||
KC_NUM,
|
|
||||||
RGB_TOG, RGB_MOD, RGB_M_K,
|
|
||||||
RGB_SAI, RGB_SAD, RGB_HUI,
|
|
||||||
RGB_VAI, RGB_VAD, RGB_SPI),
|
|
||||||
};
|
|
||||||
|
|
||||||
static void render_logo(void) {
|
|
||||||
static const char PROGMEM qmk_logo[] = {0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0};
|
|
||||||
oled_write_P(qmk_logo, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef OLED_ENABLE
|
|
||||||
bool oled_task_user(void) {
|
|
||||||
render_logo();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
|
||||||
if (index == 0) { /* First encoder */
|
|
||||||
if (clockwise) {
|
|
||||||
tap_code(KC_PGDN);
|
|
||||||
} else {
|
|
||||||
tap_code(KC_PGUP);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void matrix_init_user(void) { render_logo(); }
|
|
@ -1,76 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2020 haierwangwei2005
|
|
||||||
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/>.*/
|
|
||||||
/* Keymap _0: (Base Layer) Default Layer
|
|
||||||
|
|
||||||
* .-----.
|
|
||||||
* |PGUP |
|
|
||||||
* |-----------------.
|
|
||||||
* | 7 | 8 | 9 |
|
|
||||||
* |-----|-----|-----|
|
|
||||||
* | 4 | 5 | 6 |
|
|
||||||
* |-----|-----|-----|
|
|
||||||
* | 1 | 2 | 3 |
|
|
||||||
* .-----------------.
|
|
||||||
*/
|
|
||||||
/* Keymap _1: (Second Layer) second Layer
|
|
||||||
|
|
||||||
* .-------.
|
|
||||||
* |NUMLOCK|
|
|
||||||
* |-----------------------.
|
|
||||||
* |RGB_TOG|RGB_MOD|RGB_M_K|
|
|
||||||
* |-------|-------|-------|
|
|
||||||
* |RGB_SAI|RGB_SAD|RGB_HUI|
|
|
||||||
* |-------|-------|-------|
|
|
||||||
* |RGB_VAI|RGB_VAD|RGB_SPI|
|
|
||||||
* .-----------------------.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
||||||
[0] = LAYOUT(
|
|
||||||
KC_PGUP,
|
|
||||||
KC_KP_7, KC_KP_8, MO(1),
|
|
||||||
KC_P4, KC_P5, KC_P6,
|
|
||||||
KC_P1, KC_P2, KC_P3),
|
|
||||||
[1] = LAYOUT(
|
|
||||||
KC_NUM,
|
|
||||||
RGB_TOG, RGB_MOD, RGB_M_K,
|
|
||||||
RGB_SAI, RGB_SAD, RGB_HUI,
|
|
||||||
RGB_VAI, RGB_VAD, RGB_SPI),
|
|
||||||
};
|
|
||||||
|
|
||||||
static void render_logo(void) {
|
|
||||||
static const char PROGMEM qmk_logo[] = {0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0};
|
|
||||||
oled_write_P(qmk_logo, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef OLED_ENABLE
|
|
||||||
bool oled_task_user(void) {
|
|
||||||
render_logo();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
|
||||||
if (index == 0) { /* First encoder */
|
|
||||||
if (clockwise) {
|
|
||||||
tap_code(KC_PGDN);
|
|
||||||
} else {
|
|
||||||
tap_code(KC_PGUP);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void matrix_init_user(void) { render_logo(); }
|
|
@ -1,2 +0,0 @@
|
|||||||
VIA_ENABLE = yes
|
|
||||||
LTO_ENABLE = yes
|
|
@ -1,241 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2020 haierwangwei2005
|
|
||||||
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 "progmem.h"
|
|
||||||
// Standard ASCII 5x7 font
|
|
||||||
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, 0xF8, 0xF8, 0x58, 0x58, 0x5E,
|
|
||||||
0xDA, 0x5A, 0x5B, 0x59, 0xDB, 0x5A,
|
|
||||||
0x5B, 0x58, 0xD8, 0x58, 0x58, 0x58,
|
|
||||||
0xD8, 0x58, 0x58, 0x58, 0xD8, 0x58,
|
|
||||||
0x58, 0x58, 0xD8, 0x58, 0x58, 0x58,
|
|
||||||
0xD8, 0x58, 0x58, 0x78, 0xF8, 0xF8,
|
|
||||||
0xF8, 0x78, 0x78, 0x78, 0xF8, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x44, 0x28, 0xFF, 0x5A, 0x24,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0xFF, 0xFF, 0x44, 0x55, 0x44,
|
|
||||||
0xFF, 0x44, 0x55, 0x44, 0xFF, 0x44,
|
|
||||||
0x55, 0x44, 0xFF, 0x44, 0x55, 0x44,
|
|
||||||
0xFF, 0x44, 0x55, 0x44, 0xFF, 0x44,
|
|
||||||
0x55, 0x44, 0xFF, 0x44, 0x55, 0x44,
|
|
||||||
0xFF, 0x44, 0x55, 0x44, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xC4, 0xD5, 0xC4, 0xFF, 0x00,
|
|
||||||
0x00, 0xFE, 0x21, 0x61, 0xA1, 0x1E,
|
|
||||||
0x00, 0xFE, 0x01, 0x21, 0x21, 0xEF,
|
|
||||||
0x00, 0xFF, 0x11, 0x11, 0x11, 0xFE,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xFF, 0x11, 0x11, 0x11, 0xFE, 0x00,
|
|
||||||
0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00,
|
|
||||||
0xFF, 0x11, 0x11, 0x11, 0x01, 0x00,
|
|
||||||
0x01, 0x01, 0xFF, 0x01, 0x01, 0x00,
|
|
||||||
0xFF, 0x01, 0x01, 0xFF, 0x00, 0xFF,
|
|
||||||
0x01, 0x01, 0xFF, 0x00, 0x01, 0x01,
|
|
||||||
0xFF, 0x01, 0x01, 0x00, 0xFF, 0x20,
|
|
||||||
0x20, 0x20, 0xFF, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x7F, 0x7F, 0x44, 0x55, 0x44,
|
|
||||||
0x7F, 0x44, 0x55, 0x54, 0x57, 0x54,
|
|
||||||
0x55, 0x54, 0x57, 0x54, 0x55, 0x54,
|
|
||||||
0x57, 0x54, 0x55, 0x54, 0x57, 0x54,
|
|
||||||
0x45, 0x7C, 0x47, 0x54, 0x45, 0x7C,
|
|
||||||
0x7F, 0x7C, 0x45, 0x54, 0x57, 0x50,
|
|
||||||
0x5E, 0x50, 0x57, 0x47, 0x7F, 0x00,
|
|
||||||
0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
|
|
||||||
0x00, 0x01, 0x02, 0x02, 0x02, 0x03,
|
|
||||||
0x00, 0x03, 0x02, 0x02, 0x02, 0x01,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x03, 0x02, 0x02, 0x02, 0x01, 0x00,
|
|
||||||
0x03, 0x02, 0x02, 0x02, 0x02, 0x00,
|
|
||||||
0x03, 0x02, 0x02, 0x02, 0x03, 0x00,
|
|
||||||
0x03, 0x02, 0x02, 0x02, 0x02, 0x00,
|
|
||||||
0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
|
||||||
0x03, 0x02, 0x02, 0x03, 0x00, 0x03,
|
|
||||||
0x02, 0x02, 0x03, 0x00, 0x00, 0x30,
|
|
||||||
0x2B, 0x7C, 0x20, 0x40, 0x03, 0x7C,
|
|
||||||
0x44, 0x7C, 0x03, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
};
|
|
@ -1,14 +0,0 @@
|
|||||||
# 10bleoledhub
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
10 BLE OLED HUB
|
|
||||||
|
|
||||||
* Keyboard Maintainer: [haierwangwei2005](https://github.com/haierwangwei2005)
|
|
||||||
* Hardware Availability: https://github.com/haierwangwei2005/10bleoled-hub
|
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
|
||||||
|
|
||||||
make 10bleoledhub: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).
|
|
@ -1,18 +0,0 @@
|
|||||||
# Processor frequency
|
|
||||||
F_CPU = 8000000
|
|
||||||
|
|
||||||
# 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 = no # Enable N-Key Rollover
|
|
||||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
|
||||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
|
||||||
AUDIO_ENABLE = no # Audio output
|
|
||||||
BLUETOOTH_ENABLE = yes
|
|
||||||
OLED_ENABLE = yes
|
|
||||||
ENCODER_ENABLE = yes
|
|
@ -1,34 +0,0 @@
|
|||||||
/* Copyright 2020 zvecr<git@zvecr.com>
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
|
|
||||||
// Save as much space as we can...
|
|
||||||
#define LAYER_STATE_8BIT
|
|
||||||
#define NO_ACTION_LAYER
|
|
||||||
#define NO_ACTION_TAPPING
|
|
||||||
#define NO_ACTION_ONESHOT
|
|
||||||
#define NO_RESET
|
|
||||||
|
|
||||||
// usbconfig.h overrides
|
|
||||||
#define USB_CFG_IOPORTNAME B
|
|
||||||
#define USB_CFG_DMINUS_BIT 3
|
|
||||||
#define USB_CFG_DPLUS_BIT 4
|
|
||||||
#define USB_COUNT_SOF 0
|
|
||||||
#define USB_INTR_CFG PCMSK
|
|
||||||
#define USB_INTR_CFG_SET (1<<USB_CFG_DPLUS_BIT)
|
|
||||||
#define USB_INTR_ENABLE_BIT PCIE
|
|
||||||
#define USB_INTR_PENDING_BIT PCIF
|
|
||||||
#define USB_INTR_VECTOR SIG_PIN_CHANGE
|
|
@ -1,29 +0,0 @@
|
|||||||
{
|
|
||||||
"keyboard_name": "1K",
|
|
||||||
"manufacturer": "MakotoKurauchi",
|
|
||||||
"url": "",
|
|
||||||
"maintainer": "MakotoKurauchi",
|
|
||||||
"usb": {
|
|
||||||
"vid": "0x0009",
|
|
||||||
"pid": "0x0001",
|
|
||||||
"device_version": "0.0.1"
|
|
||||||
},
|
|
||||||
"rgblight": {
|
|
||||||
"led_count": 1
|
|
||||||
},
|
|
||||||
"ws2812": {
|
|
||||||
"pin": "B2"
|
|
||||||
},
|
|
||||||
"matrix_pins": {
|
|
||||||
"direct": [
|
|
||||||
["B0"]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"layouts": {
|
|
||||||
"LAYOUT_ortho_1x1": {
|
|
||||||
"layout": [
|
|
||||||
{"x": 0, "y": 0, "matrix": [0, 0]}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,25 +0,0 @@
|
|||||||
// Copyright 2022 Makoto Kurauchi (@MakotoKurauchi)
|
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
|
||||||
#include "rgblite.h"
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
||||||
[0] = LAYOUT_ortho_1x1(
|
|
||||||
RGB_HUI
|
|
||||||
)
|
|
||||||
};
|
|
||||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|
||||||
if (record->event.pressed) {
|
|
||||||
switch (keycode) {
|
|
||||||
case RGB_HUI:
|
|
||||||
rgblite_increase_hue();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void keyboard_post_init_user(void) {
|
|
||||||
rgblite_increase_hue();
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
// Copyright 2022 Makoto Kurauchi (@MakotoKurauchi)
|
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "ws2812.h"
|
|
||||||
#include "color.h"
|
|
||||||
|
|
||||||
static inline void rgblite_setrgb(RGB rgb) {
|
|
||||||
rgb_led_t leds[RGBLED_NUM] = {{.r = rgb.r, .g = rgb.g, .b = rgb.b}};
|
|
||||||
ws2812_setleds(leds, RGBLED_NUM);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void rgblite_increase_hue(void) {
|
|
||||||
static uint8_t state = 0;
|
|
||||||
|
|
||||||
HSV hsv = { 255, 255, 255 };
|
|
||||||
hsv.h = state;
|
|
||||||
state = (state + 8) % 256;
|
|
||||||
|
|
||||||
rgblite_setrgb(hsv_to_rgb(hsv));
|
|
||||||
|
|
||||||
}
|
|
@ -1,2 +0,0 @@
|
|||||||
WS2812_DRIVER_REQUIRED = yes
|
|
||||||
SRC += color.c
|
|
@ -1,47 +0,0 @@
|
|||||||
# 1k
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
1% Custom mechanical keyboard. ATtiny85 powered, with 1*WS2812 LED, and the micronucleus bootloader.
|
|
||||||
|
|
||||||
**Note**: Due to limited firmware space, a _**lot**_ of features have to be disabled to get a functioning QMK based keyboard.
|
|
||||||
|
|
||||||
* Keyboard Maintainer: [MakotoKurauchi](https://github.com/MakotoKurauchi)
|
|
||||||
* Hardware Supported: 1k
|
|
||||||
* Hardware Availability: [booth](https://ninep.booth.pm/items/3504781)
|
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
|
||||||
|
|
||||||
make 1k: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).
|
|
||||||
|
|
||||||
## Flashing
|
|
||||||
### Prerequisites
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone https://github.com/micronucleus/micronucleus.git
|
|
||||||
cd micronucleus/commandline/
|
|
||||||
sudo make install
|
|
||||||
```
|
|
||||||
|
|
||||||
On Linux, you’ll need proper privileges to access the MCU. You can either use sudo when flashing firmware, or place [these files](https://github.com/micronucleus/micronucleus/blob/master/commandline/49-micronucleus.rules) in /etc/udev/rules.d/. Once added run the following:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo udevadm control --reload-rules
|
|
||||||
sudo udevadm trigger
|
|
||||||
```
|
|
||||||
|
|
||||||
### Instructions
|
|
||||||
|
|
||||||
```bash
|
|
||||||
make 1k:default:flash
|
|
||||||
|
|
||||||
# or directly with...
|
|
||||||
micronucleus --run <firmware.hex>
|
|
||||||
```
|
|
||||||
|
|
||||||
### Recovery
|
|
||||||
|
|
||||||
* [Original Firmware](https://github.com/xiudi/Attiny85_vusb_pad_test)
|
|
||||||
* [Bootloader Repair](https://digistump.com/wiki/digispark/tutorials/proisp)
|
|
@ -1,26 +0,0 @@
|
|||||||
# MCU name
|
|
||||||
MCU = attiny85
|
|
||||||
|
|
||||||
# Bootloader selection
|
|
||||||
BOOTLOADER = custom
|
|
||||||
BOOTLOADER_SIZE = 1862
|
|
||||||
PROGRAM_CMD = micronucleus --run $(BUILD_DIR)/$(TARGET).hex
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# change yes to no to disable
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
|
|
||||||
MOUSEKEY_ENABLE = no # Mouse keys
|
|
||||||
EXTRAKEY_ENABLE = no # Audio control and System control
|
|
||||||
CONSOLE_ENABLE = no # Console for debug
|
|
||||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
|
||||||
NKRO_ENABLE = no # Enable N-Key Rollover
|
|
||||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
|
||||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
|
||||||
AUDIO_ENABLE = no # Audio output
|
|
||||||
|
|
||||||
# Save as much space as we can...
|
|
||||||
LTO_ENABLE = yes
|
|
||||||
GRAVE_ESC_ENABLE = no
|
|
||||||
MAGIC_ENABLE = no
|
|
||||||
SPACE_CADET_ENABLE = no
|
|
@ -1,39 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2018 MechMerlin
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
/* 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
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Feature disable options
|
|
||||||
* These options are also useful to firmware size reduction.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* disable debug print */
|
|
||||||
//#define NO_DEBUG
|
|
||||||
|
|
||||||
/* disable print */
|
|
||||||
//#define NO_PRINT
|
|
||||||
|
|
||||||
/* disable action features */
|
|
||||||
//#define NO_ACTION_LAYER
|
|
||||||
//#define NO_ACTION_TAPPING
|
|
||||||
//#define NO_ACTION_ONESHOT
|
|
@ -1,116 +0,0 @@
|
|||||||
{
|
|
||||||
"keyboard_name": "1up60hse",
|
|
||||||
"manufacturer": "1upkeyboards",
|
|
||||||
"url": "",
|
|
||||||
"maintainer": "qmk",
|
|
||||||
"usb": {
|
|
||||||
"vid": "0x6F75",
|
|
||||||
"pid": "0x6873",
|
|
||||||
"device_version": "0.0.1"
|
|
||||||
},
|
|
||||||
"matrix_pins": {
|
|
||||||
"cols": ["C7", "F7", "F6", "F5", "F4", "F1", "E6", "D1", "D0", "D2", "D3", "D5", "D6", "D7"],
|
|
||||||
"rows": ["B3", "B2", "B1", "B0", "D4"]
|
|
||||||
},
|
|
||||||
"diode_direction": "COL2ROW",
|
|
||||||
"backlight": {
|
|
||||||
"pin": "B7",
|
|
||||||
"levels": 5,
|
|
||||||
"breathing": true
|
|
||||||
},
|
|
||||||
"rgblight": {
|
|
||||||
"saturation_steps": 8,
|
|
||||||
"brightness_steps": 8,
|
|
||||||
"led_count": 14,
|
|
||||||
"sleep": true,
|
|
||||||
"animations": {
|
|
||||||
"breathing": true,
|
|
||||||
"rainbow_mood": true,
|
|
||||||
"rainbow_swirl": true,
|
|
||||||
"snake": true,
|
|
||||||
"knight": true,
|
|
||||||
"christmas": true,
|
|
||||||
"static_gradient": true,
|
|
||||||
"rgb_test": true,
|
|
||||||
"alternating": true,
|
|
||||||
"twinkle": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ws2812": {
|
|
||||||
"pin": "F0"
|
|
||||||
},
|
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
|
||||||
"community_layouts": ["60_ansi"],
|
|
||||||
"layouts": {
|
|
||||||
"LAYOUT_60_ansi": {
|
|
||||||
"layout": [
|
|
||||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
|
||||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
|
||||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
|
||||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
|
||||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
|
||||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
|
||||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
|
||||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
|
||||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
|
||||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
|
||||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
|
||||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
|
||||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
|
||||||
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
|
||||||
|
|
||||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
|
||||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
|
||||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
|
||||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
|
||||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
|
||||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
|
||||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
|
||||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
|
||||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
|
||||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
|
||||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
|
||||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
|
||||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
|
||||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
|
||||||
|
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
|
||||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
|
||||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
|
||||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
|
||||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
|
||||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
|
||||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
|
||||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
|
||||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
|
||||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
|
||||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
|
||||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
|
||||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
|
||||||
|
|
||||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
|
||||||
{"matrix": [3, 1], "x": 2.25, "y": 3},
|
|
||||||
{"matrix": [3, 2], "x": 3.25, "y": 3},
|
|
||||||
{"matrix": [3, 3], "x": 4.25, "y": 3},
|
|
||||||
{"matrix": [3, 4], "x": 5.25, "y": 3},
|
|
||||||
{"matrix": [3, 5], "x": 6.25, "y": 3},
|
|
||||||
{"matrix": [3, 6], "x": 7.25, "y": 3},
|
|
||||||
{"matrix": [3, 7], "x": 8.25, "y": 3},
|
|
||||||
{"matrix": [3, 8], "x": 9.25, "y": 3},
|
|
||||||
{"matrix": [3, 9], "x": 10.25, "y": 3},
|
|
||||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
|
||||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
|
|
||||||
|
|
||||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
|
|
||||||
{"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,82 +0,0 @@
|
|||||||
/* Copyright 2018 MechMerlin
|
|
||||||
* Copyright 2018 Logan Huskins
|
|
||||||
*
|
|
||||||
* 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] = {
|
|
||||||
/* Qwerty
|
|
||||||
* ,-----------------------------------------------------------------------------------------.
|
|
||||||
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | Shift | Z | X | C | V | B | N | M | , | . | / | Shift |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | Ctrl | GUI | Alt | Space | Alt | GUI | L1 | Ctrl |
|
|
||||||
* `-----------------------------------------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[0] = LAYOUT_60_ansi(
|
|
||||||
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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
|
|
||||||
),
|
|
||||||
|
|
||||||
/* Function
|
|
||||||
* ,-----------------------------------------------------------------------------------------.
|
|
||||||
* | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Del |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | | | Up | | | | | | | |PrtSc|ScrLk|Pause| |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | |Left |Down |Right| | | | | | Ins |Home |PgUp | |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | |VolUp|VolDn|VolMu| | | | | | End |PgDn | |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | | | | | | L2 | | |
|
|
||||||
* `-----------------------------------------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[1] = LAYOUT_60_ansi(
|
|
||||||
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_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS,
|
|
||||||
KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS
|
|
||||||
),
|
|
||||||
|
|
||||||
/* RGB
|
|
||||||
* ,-----------------------------------------------------------------------------------------.
|
|
||||||
* | | | | | | | | | | | | | | Reset |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | BL Tog |BLInc|BLDec|BLStp| | | | | | | | | | |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | RGB Tog |Mode |Hue I|Sat I|Val I|Spd I|Plain|Breat|Rnbow|Swirl| | | |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | |RMode|Hue D|Sat D|Val D|Spd D|Snake|Knigh|Xmas |Gradi| | |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | | | | | | | | |
|
|
||||||
* `-----------------------------------------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[2] = LAYOUT_60_ansi(
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
|
|
||||||
BL_TOGG, BL_UP, BL_DOWN,BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
|
||||||
),
|
|
||||||
};
|
|
@ -1,4 +0,0 @@
|
|||||||
# 1up60hse default keymap generated by QMK Configurator
|
|
||||||
|
|
||||||
This is the keymap used by [QMK Configurator](https://config.qmk.fm/#/1upkeyboards/1up60hse/LAYOUT_60_ansi) as default.
|
|
||||||
|
|
@ -1,91 +0,0 @@
|
|||||||
/* Copyright 2018 MechMerlin
|
|
||||||
* Copyright 2018 Logan Huskins
|
|
||||||
*
|
|
||||||
* 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] = {
|
|
||||||
/* Qwerty
|
|
||||||
* ,-----------------------------------------------------------------------------------------.
|
|
||||||
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | Shift | Z | X | C | V | B | N | M | , | . | / | Shift |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | Ctrl | GUI | Alt | Space | Alt | GUI | L1 | Ctrl |
|
|
||||||
* `-----------------------------------------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[0] = LAYOUT_60_ansi(
|
|
||||||
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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
|
|
||||||
),
|
|
||||||
|
|
||||||
/* Function
|
|
||||||
* ,-----------------------------------------------------------------------------------------.
|
|
||||||
* | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Del |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | | | Up | | | | | | | |PrtSc|ScrLk|Pause| |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | |Left |Down |Right| | | | | | Ins |Home |PgUp | |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | |VolUp|VolDn|VolMu| | | | | | End |PgDn | |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | | | | | | L2 | | |
|
|
||||||
* `-----------------------------------------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[1] = LAYOUT_60_ansi(
|
|
||||||
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_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS,
|
|
||||||
KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS
|
|
||||||
),
|
|
||||||
|
|
||||||
/* RGB
|
|
||||||
* ,-----------------------------------------------------------------------------------------.
|
|
||||||
* | | | | | | | | | | | | | | Reset |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | BL Tog |BLInc|BLDec|BLStp| | | | | | | | | | |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | RGB Tog |Mode |Hue I|Sat I|Val I|Spd I|Plain|Breat|Rnbow|Swirl| | | |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | |RMode|Hue D|Sat D|Val D|Spd D|Snake|Knigh|Xmas |Gradi| | |
|
|
||||||
* |-----------------------------------------------------------------------------------------+
|
|
||||||
* | | | | | | | | |
|
|
||||||
* `-----------------------------------------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[2] = LAYOUT_60_ansi(
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
|
|
||||||
BL_TOGG, BL_UP, BL_DOWN,BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
|
||||||
),
|
|
||||||
|
|
||||||
[3] = LAYOUT_60_ansi(
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
|
||||||
),
|
|
||||||
|
|
||||||
};
|
|
@ -1 +0,0 @@
|
|||||||
# 1up60hse via keymap
|
|
@ -1,4 +0,0 @@
|
|||||||
VIA_ENABLE = yes
|
|
||||||
LTO_ENABLE = yes
|
|
||||||
|
|
||||||
CONSOLE_ENABLE = no
|
|
@ -1,15 +0,0 @@
|
|||||||
# 1up60hse (hot swap edition)
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
A 60% PCB with USB C, RGB underglow, backlighting, hotswappable switches, and a standard ANSI layout.
|
|
||||||
|
|
||||||
Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin)
|
|
||||||
Hardware Supported: 1up60hse 60% PCB.
|
|
||||||
Hardware Availability: [1upkeyboards.com](https://www.1upkeyboards.com/shop/controllers/1up-rgb-pcb-hse/)
|
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
|
||||||
|
|
||||||
make 1upkeyboards/1up60hse: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).
|
|
@ -1,13 +0,0 @@
|
|||||||
# Build Options
|
|
||||||
# change yes to no to disable
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
|
||||||
MOUSEKEY_ENABLE = no # Mouse keys
|
|
||||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
|
||||||
CONSOLE_ENABLE = yes # Console for debug
|
|
||||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
|
||||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
|
||||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
|
||||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
|
||||||
AUDIO_ENABLE = no # Audio output
|
|
||||||
LTO_ENABLE = yes
|
|
@ -1,25 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2019 Bubnick
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
/* 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
|
|
@ -1,189 +0,0 @@
|
|||||||
{
|
|
||||||
"keyboard_name": "1up60hte",
|
|
||||||
"manufacturer": "1upkeyboards",
|
|
||||||
"url": "https://www.1upkeyboards.com/shop/controllers/1up-rgb-60-pcb-hte/",
|
|
||||||
"maintainer": "1upkeyboards",
|
|
||||||
"usb": {
|
|
||||||
"vid": "0x6F75",
|
|
||||||
"pid": "0x6874",
|
|
||||||
"device_version": "0.0.1"
|
|
||||||
},
|
|
||||||
"matrix_pins": {
|
|
||||||
"cols": ["F6", "F5", "F4", "F1", "E6", "D0", "D1", "D2", "D3", "D5", "D6", "D7", "B4", "B5"],
|
|
||||||
"rows": ["B3", "B2", "B1", "B0", "D4"]
|
|
||||||
},
|
|
||||||
"diode_direction": "COL2ROW",
|
|
||||||
"backlight": {
|
|
||||||
"pin": "B7"
|
|
||||||
},
|
|
||||||
"indicators": {
|
|
||||||
"caps_lock": "B6",
|
|
||||||
"on_state": 0
|
|
||||||
},
|
|
||||||
"rgblight": {
|
|
||||||
"saturation_steps": 8,
|
|
||||||
"brightness_steps": 8,
|
|
||||||
"led_count": 14,
|
|
||||||
"animations": {
|
|
||||||
"breathing": true,
|
|
||||||
"rainbow_mood": true,
|
|
||||||
"rainbow_swirl": true,
|
|
||||||
"snake": true,
|
|
||||||
"knight": true,
|
|
||||||
"christmas": true,
|
|
||||||
"static_gradient": true,
|
|
||||||
"rgb_test": true,
|
|
||||||
"alternating": true,
|
|
||||||
"twinkle": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ws2812": {
|
|
||||||
"pin": "F0"
|
|
||||||
},
|
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
|
||||||
"layout_aliases": {
|
|
||||||
"LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb"
|
|
||||||
},
|
|
||||||
"community_layouts": ["60_hhkb", "60_tsangan_hhkb"],
|
|
||||||
"layouts": {
|
|
||||||
"LAYOUT_60_tsangan_hhkb": {
|
|
||||||
"layout": [
|
|
||||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
|
||||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
|
||||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
|
||||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
|
||||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
|
||||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
|
||||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
|
||||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
|
||||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
|
||||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
|
||||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
|
||||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
|
||||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
|
||||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
|
||||||
{"matrix": [4, 13], "x": 14, "y": 0},
|
|
||||||
|
|
||||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
|
||||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
|
||||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
|
||||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
|
||||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
|
||||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
|
||||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
|
||||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
|
||||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
|
||||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
|
||||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
|
||||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
|
||||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
|
||||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
|
||||||
|
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
|
||||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
|
||||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
|
||||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
|
||||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
|
||||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
|
||||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
|
||||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
|
||||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
|
||||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
|
||||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
|
||||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
|
||||||
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
|
|
||||||
|
|
||||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
|
||||||
{"matrix": [3, 1], "x": 2.25, "y": 3},
|
|
||||||
{"matrix": [3, 2], "x": 3.25, "y": 3},
|
|
||||||
{"matrix": [3, 3], "x": 4.25, "y": 3},
|
|
||||||
{"matrix": [3, 4], "x": 5.25, "y": 3},
|
|
||||||
{"matrix": [3, 5], "x": 6.25, "y": 3},
|
|
||||||
{"matrix": [3, 6], "x": 7.25, "y": 3},
|
|
||||||
{"matrix": [3, 7], "x": 8.25, "y": 3},
|
|
||||||
{"matrix": [3, 8], "x": 9.25, "y": 3},
|
|
||||||
{"matrix": [3, 9], "x": 10.25, "y": 3},
|
|
||||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
|
||||||
{"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75},
|
|
||||||
{"matrix": [3, 12], "x": 14, "y": 3},
|
|
||||||
|
|
||||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
|
||||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
|
||||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
|
||||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
|
||||||
{"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
|
|
||||||
{"matrix": [4, 11], "x": 12.5, "y": 4},
|
|
||||||
{"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"LAYOUT_60_hhkb": {
|
|
||||||
"layout": [
|
|
||||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
|
||||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
|
||||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
|
||||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
|
||||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
|
||||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
|
||||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
|
||||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
|
||||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
|
||||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
|
||||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
|
||||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
|
||||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
|
||||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
|
||||||
{"matrix": [4, 13], "x": 14, "y": 0},
|
|
||||||
|
|
||||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
|
||||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
|
||||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
|
||||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
|
||||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
|
||||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
|
||||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
|
||||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
|
||||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
|
||||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
|
||||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
|
||||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
|
||||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
|
||||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
|
||||||
|
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
|
||||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
|
||||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
|
||||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
|
||||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
|
||||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
|
||||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
|
||||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
|
||||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
|
||||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
|
||||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
|
||||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
|
||||||
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
|
|
||||||
|
|
||||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
|
||||||
{"matrix": [3, 1], "x": 2.25, "y": 3},
|
|
||||||
{"matrix": [3, 2], "x": 3.25, "y": 3},
|
|
||||||
{"matrix": [3, 3], "x": 4.25, "y": 3},
|
|
||||||
{"matrix": [3, 4], "x": 5.25, "y": 3},
|
|
||||||
{"matrix": [3, 5], "x": 6.25, "y": 3},
|
|
||||||
{"matrix": [3, 6], "x": 7.25, "y": 3},
|
|
||||||
{"matrix": [3, 7], "x": 8.25, "y": 3},
|
|
||||||
{"matrix": [3, 8], "x": 9.25, "y": 3},
|
|
||||||
{"matrix": [3, 9], "x": 10.25, "y": 3},
|
|
||||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
|
||||||
{"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75},
|
|
||||||
{"matrix": [3, 12], "x": 14, "y": 3},
|
|
||||||
|
|
||||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
|
||||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
|
||||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
|
||||||
{"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
|
|
||||||
{"matrix": [4, 11], "x": 12.5, "y": 4}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,35 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2019 Bubnick
|
|
||||||
|
|
||||||
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_60_tsangan_hhkb(
|
|
||||||
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_BSPC,
|
|
||||||
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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
|
||||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL
|
|
||||||
),
|
|
||||||
|
|
||||||
[1] = LAYOUT_60_tsangan_hhkb(
|
|
||||||
QK_BOOT, 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_INS, KC_DEL,
|
|
||||||
KC_CAPS, BL_TOGG, BL_DOWN, BL_UP, BL_STEP, _______, _______, _______, _______, KC_SCRL, KC_PAUS, KC_UP, _______, KC_CLR,
|
|
||||||
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
|
|
||||||
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______
|
|
||||||
)
|
|
||||||
};
|
|
@ -1,35 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2019 Bubnick
|
|
||||||
|
|
||||||
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_60_hhkb(
|
|
||||||
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_BSPC,
|
|
||||||
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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
|
||||||
KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT
|
|
||||||
),
|
|
||||||
|
|
||||||
[1] = LAYOUT_60_hhkb(
|
|
||||||
QK_BOOT, 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_INS, KC_DEL,
|
|
||||||
KC_CAPS, BL_TOGG, BL_DOWN, BL_UP, BL_STEP, _______, _______, _______, _______, KC_SCRL, KC_PAUS, KC_UP, _______, KC_CLR,
|
|
||||||
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
|
|
||||||
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______
|
|
||||||
)
|
|
||||||
};
|
|
@ -1,51 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2020 MechMerlin
|
|
||||||
|
|
||||||
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_60_tsangan_hhkb(
|
|
||||||
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_BSPC,
|
|
||||||
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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
|
||||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL
|
|
||||||
),
|
|
||||||
|
|
||||||
[1] = LAYOUT_60_tsangan_hhkb(
|
|
||||||
QK_BOOT, 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_INS, KC_DEL,
|
|
||||||
KC_CAPS, BL_TOGG, BL_DOWN, BL_UP, BL_STEP, _______, _______, _______, _______, KC_SCRL, KC_PAUS, KC_UP, _______, KC_CLR,
|
|
||||||
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
|
|
||||||
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______
|
|
||||||
),
|
|
||||||
|
|
||||||
[2] = LAYOUT_60_tsangan_hhkb(
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______
|
|
||||||
),
|
|
||||||
|
|
||||||
[3] = LAYOUT_60_tsangan_hhkb(
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______
|
|
||||||
),
|
|
||||||
};
|
|
@ -1,19 +0,0 @@
|
|||||||
# 1up60hte (Hot Swap Tsangan Edition)
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
A 60% PCB with USB C, RGB underglow, backlighting, hotswappable switches, and a Tsangan layout.
|
|
||||||
|
|
||||||
* Keyboard Maintainer: [Bubnick](https://github.com/bubnick)
|
|
||||||
* Hardware Supported: 1up60hte 60% PCB
|
|
||||||
* Hardware Availability: [1upkeyboards.com](https://www.1upkeyboards.com/shop/controllers/1up-rgb-60-pcb-hte/)
|
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
|
||||||
|
|
||||||
make 1upkeyboards/1up60hte:default
|
|
||||||
|
|
||||||
Flashing example for this keyboard:
|
|
||||||
|
|
||||||
make 1upkeyboards/1up60hte: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).
|
|
@ -1,14 +0,0 @@
|
|||||||
# 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 = yes # Enable keyboard backlight functionality
|
|
||||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
|
||||||
AUDIO_ENABLE = no # Audio output
|
|
||||||
|
|
||||||
LTO_ENABLE = yes
|
|
@ -1,7 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
/* 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
|
|
@ -1,535 +0,0 @@
|
|||||||
{
|
|
||||||
"keyboard_name": "1UP RGB Underglow PCB",
|
|
||||||
"manufacturer": "1upkeyboards",
|
|
||||||
"url": "",
|
|
||||||
"maintainer": "qmk",
|
|
||||||
"usb": {
|
|
||||||
"vid": "0x6F75",
|
|
||||||
"pid": "0x7267",
|
|
||||||
"device_version": "0.0.1"
|
|
||||||
},
|
|
||||||
"matrix_pins": {
|
|
||||||
"cols": ["F0", "F1", "E6", "C7", "C6", "B7", "D4", "B1", "B0", "B5", "B4", "D7", "D6", "B3", "F4"],
|
|
||||||
"rows": ["D0", "D1", "D2", "D3", "D5"]
|
|
||||||
},
|
|
||||||
"diode_direction": "COL2ROW",
|
|
||||||
"backlight": {
|
|
||||||
"pin": "B6",
|
|
||||||
"levels": 5
|
|
||||||
},
|
|
||||||
"rgblight": {
|
|
||||||
"saturation_steps": 8,
|
|
||||||
"brightness_steps": 8,
|
|
||||||
"led_count": 16,
|
|
||||||
"animations": {
|
|
||||||
"breathing": true,
|
|
||||||
"rainbow_mood": true,
|
|
||||||
"rainbow_swirl": true,
|
|
||||||
"snake": true,
|
|
||||||
"knight": true,
|
|
||||||
"christmas": true,
|
|
||||||
"static_gradient": true,
|
|
||||||
"rgb_test": true,
|
|
||||||
"alternating": true,
|
|
||||||
"twinkle": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ws2812": {
|
|
||||||
"pin": "E2"
|
|
||||||
},
|
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
|
||||||
"community_layouts": ["60_ansi", "60_iso", "60_ansi_split_bs_rshift", "60_hhkb"],
|
|
||||||
"layouts": {
|
|
||||||
"LAYOUT_all": {
|
|
||||||
"layout": [
|
|
||||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
|
||||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
|
||||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
|
||||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
|
||||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
|
||||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
|
||||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
|
||||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
|
||||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
|
||||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
|
||||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
|
||||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
|
||||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
|
||||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
|
||||||
{"matrix": [0, 14], "x": 14, "y": 0},
|
|
||||||
|
|
||||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
|
||||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
|
||||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
|
||||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
|
||||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
|
||||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
|
||||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
|
||||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
|
||||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
|
||||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
|
||||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
|
||||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
|
||||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
|
||||||
{"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
|
||||||
|
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
|
||||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
|
||||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
|
||||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
|
||||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
|
||||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
|
||||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
|
||||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
|
||||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
|
||||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
|
||||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
|
||||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
|
||||||
{"matrix": [2, 13], "x": 12.75, "y": 2},
|
|
||||||
{"matrix": [2, 14], "x": 13.75, "y": 2, "w": 1.25},
|
|
||||||
|
|
||||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
|
||||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
|
||||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
|
||||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
|
||||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
|
||||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
|
||||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
|
||||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
|
||||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
|
||||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
|
||||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
|
||||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
|
||||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
|
|
||||||
{"matrix": [3, 14], "x": 14, "y": 3},
|
|
||||||
|
|
||||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
|
||||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"LAYOUT_60_ansi": {
|
|
||||||
"layout": [
|
|
||||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
|
||||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
|
||||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
|
||||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
|
||||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
|
||||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
|
||||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
|
||||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
|
||||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
|
||||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
|
||||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
|
||||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
|
||||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
|
||||||
{"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
|
||||||
|
|
||||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
|
||||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
|
||||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
|
||||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
|
||||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
|
||||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
|
||||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
|
||||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
|
||||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
|
||||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
|
||||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
|
||||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
|
||||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
|
||||||
{"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
|
||||||
|
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
|
||||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
|
||||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
|
||||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
|
||||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
|
||||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
|
||||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
|
||||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
|
||||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
|
||||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
|
||||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
|
||||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
|
||||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
|
||||||
|
|
||||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
|
||||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
|
||||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
|
||||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
|
||||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
|
||||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
|
||||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
|
||||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
|
||||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
|
||||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
|
||||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
|
||||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
|
|
||||||
|
|
||||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
|
||||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"LAYOUT_60_iso": {
|
|
||||||
"layout": [
|
|
||||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
|
||||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
|
||||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
|
||||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
|
||||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
|
||||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
|
||||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
|
||||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
|
||||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
|
||||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
|
||||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
|
||||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
|
||||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
|
||||||
{"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
|
||||||
|
|
||||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
|
||||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
|
||||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
|
||||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
|
||||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
|
||||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
|
||||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
|
||||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
|
||||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
|
||||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
|
||||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
|
||||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
|
||||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
|
||||||
|
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
|
||||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
|
||||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
|
||||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
|
||||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
|
||||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
|
||||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
|
||||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
|
||||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
|
||||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
|
||||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
|
||||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
|
||||||
{"matrix": [2, 13], "x": 12.75, "y": 2},
|
|
||||||
{"matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
|
||||||
|
|
||||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
|
||||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
|
||||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
|
||||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
|
||||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
|
||||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
|
||||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
|
||||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
|
||||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
|
||||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
|
||||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
|
||||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
|
||||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
|
|
||||||
|
|
||||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
|
||||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"LAYOUT_60_ansi_split_bs_rshift": {
|
|
||||||
"layout": [
|
|
||||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
|
||||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
|
||||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
|
||||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
|
||||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
|
||||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
|
||||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
|
||||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
|
||||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
|
||||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
|
||||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
|
||||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
|
||||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
|
||||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
|
||||||
{"matrix": [0, 14], "x": 14, "y": 0},
|
|
||||||
|
|
||||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
|
||||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
|
||||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
|
||||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
|
||||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
|
||||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
|
||||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
|
||||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
|
||||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
|
||||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
|
||||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
|
||||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
|
||||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
|
||||||
{"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
|
||||||
|
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
|
||||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
|
||||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
|
||||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
|
||||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
|
||||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
|
||||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
|
||||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
|
||||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
|
||||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
|
||||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
|
||||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
|
||||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
|
||||||
|
|
||||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
|
||||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
|
||||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
|
||||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
|
||||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
|
||||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
|
||||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
|
||||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
|
||||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
|
||||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
|
||||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
|
||||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
|
|
||||||
{"matrix": [3, 14], "x": 14, "y": 3},
|
|
||||||
|
|
||||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
|
||||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
|
||||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
|
|
||||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 6},
|
|
||||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5},
|
|
||||||
{"matrix": [4, 11], "x": 11.5, "y": 4},
|
|
||||||
{"matrix": [4, 13], "x": 12.5, "y": 4},
|
|
||||||
{"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"LAYOUT_60_ansi_split_rshift": {
|
|
||||||
"layout": [
|
|
||||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
|
||||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
|
||||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
|
||||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
|
||||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
|
||||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
|
||||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
|
||||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
|
||||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
|
||||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
|
||||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
|
||||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
|
||||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
|
||||||
{"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
|
||||||
|
|
||||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
|
||||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
|
||||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
|
||||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
|
||||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
|
||||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
|
||||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
|
||||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
|
||||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
|
||||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
|
||||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
|
||||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
|
||||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
|
||||||
{"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
|
||||||
|
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
|
||||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
|
||||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
|
||||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
|
||||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
|
||||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
|
||||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
|
||||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
|
||||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
|
||||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
|
||||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
|
||||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
|
||||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
|
||||||
|
|
||||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
|
||||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
|
||||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
|
||||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
|
||||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
|
||||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
|
||||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
|
||||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
|
||||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
|
||||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
|
||||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
|
||||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
|
|
||||||
{"matrix": [3, 14], "x": 14, "y": 3},
|
|
||||||
|
|
||||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
|
||||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25},
|
|
||||||
{"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"LAYOUT_60_ansi_tsangan_split_rshift": {
|
|
||||||
"layout": [
|
|
||||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
|
||||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
|
||||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
|
||||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
|
||||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
|
||||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
|
||||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
|
||||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
|
||||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
|
||||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
|
||||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
|
||||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
|
||||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
|
||||||
{"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
|
||||||
|
|
||||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
|
||||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
|
||||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
|
||||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
|
||||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
|
||||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
|
||||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
|
||||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
|
||||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
|
||||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
|
||||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
|
||||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
|
||||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
|
||||||
{"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
|
||||||
|
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
|
||||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
|
||||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
|
||||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
|
||||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
|
||||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
|
||||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
|
||||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
|
||||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
|
||||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
|
||||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
|
||||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
|
||||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
|
||||||
|
|
||||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
|
||||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
|
||||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
|
||||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
|
||||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
|
||||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
|
||||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
|
||||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
|
||||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
|
||||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
|
||||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
|
||||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
|
|
||||||
{"matrix": [3, 14], "x": 14, "y": 3},
|
|
||||||
|
|
||||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
|
||||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
|
||||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
|
|
||||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
|
||||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
|
||||||
{"matrix": [4, 13], "x": 12.5, "y": 4},
|
|
||||||
{"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"LAYOUT_60_hhkb": {
|
|
||||||
"layout": [
|
|
||||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
|
||||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
|
||||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
|
||||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
|
||||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
|
||||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
|
||||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
|
||||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
|
||||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
|
||||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
|
||||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
|
||||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
|
||||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
|
||||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
|
||||||
{"matrix": [0, 14], "x": 14, "y": 0},
|
|
||||||
|
|
||||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
|
||||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
|
||||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
|
||||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
|
||||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
|
||||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
|
||||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
|
||||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
|
||||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
|
||||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
|
||||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
|
||||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
|
||||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
|
||||||
{"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
|
||||||
|
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
|
||||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
|
||||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
|
||||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
|
||||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
|
||||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
|
||||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
|
||||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
|
||||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
|
||||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
|
||||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
|
||||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
|
||||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
|
||||||
|
|
||||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
|
||||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
|
||||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
|
||||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
|
||||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
|
||||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
|
||||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
|
||||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
|
||||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
|
||||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
|
||||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
|
||||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
|
|
||||||
{"matrix": [3, 14], "x": 14, "y": 3},
|
|
||||||
|
|
||||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
|
||||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
|
|
||||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
|
||||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
|
||||||
{"matrix": [4, 13], "x": 12.5, "y": 4}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,30 +0,0 @@
|
|||||||
#include QMK_KEYBOARD_H
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
||||||
|
|
||||||
LAYOUT_all(
|
|
||||||
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_ENT,
|
|
||||||
KC_LSFT, 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, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL),
|
|
||||||
|
|
||||||
LAYOUT_all(
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
bool led_update_user(led_t led_state) {
|
|
||||||
if (led_state.caps_lock) {
|
|
||||||
setPinOutput(B2);
|
|
||||||
writePinLow(B2);
|
|
||||||
} else {
|
|
||||||
setPinInput(B2);
|
|
||||||
writePinLow(B2);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
@ -1,30 +0,0 @@
|
|||||||
#include QMK_KEYBOARD_H
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
||||||
|
|
||||||
LAYOUT_all(
|
|
||||||
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_ENT,
|
|
||||||
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_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_RSFT,
|
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL),
|
|
||||||
|
|
||||||
LAYOUT_all(
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
bool led_update_user(led_t led_state) {
|
|
||||||
if (led_state.caps_lock) {
|
|
||||||
setPinOutput(B2);
|
|
||||||
writePinLow(B2);
|
|
||||||
} else {
|
|
||||||
setPinInput(B2);
|
|
||||||
writePinLow(B2);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
@ -1,30 +0,0 @@
|
|||||||
#include QMK_KEYBOARD_H
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
||||||
|
|
||||||
LAYOUT_all(
|
|
||||||
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_BSPC,
|
|
||||||
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_ENT,
|
|
||||||
KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_RALT, KC_RGUI, KC_RCTL),
|
|
||||||
|
|
||||||
LAYOUT_all(
|
|
||||||
QK_BOOT, 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_TRNS, KC_DEL,
|
|
||||||
KC_TRNS, BL_TOGG, BL_DOWN,BL_UP, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, 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_RGHT, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_DOWN, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
bool led_update_user(led_t led_state) {
|
|
||||||
if (led_state.caps_lock) {
|
|
||||||
setPinOutput(B2);
|
|
||||||
writePinLow(B2);
|
|
||||||
} else {
|
|
||||||
setPinInput(B2);
|
|
||||||
writePinLow(B2);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
@ -1,34 +0,0 @@
|
|||||||
#include QMK_KEYBOARD_H
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
||||||
|
|
||||||
[0] = LAYOUT_all(
|
|
||||||
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_ENT,
|
|
||||||
KC_LSFT, 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, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL),
|
|
||||||
|
|
||||||
[1] = LAYOUT_all(
|
|
||||||
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_all(
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_all(
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
|||||||
VIA_ENABLE = yes
|
|
||||||
LTO_ENABLE = yes
|
|
@ -1,13 +0,0 @@
|
|||||||
# 1up60rgb 60% RGB
|
|
||||||
|
|
||||||
Firmware for custom keyboard PCB with 60% key layout.
|
|
||||||
|
|
||||||
Keyboard Maintainer: [rempired](https://github.com/rempired)
|
|
||||||
Hardware Supported: 1upkeyboards 60% RGB
|
|
||||||
Hardware Availability: [1upkeyboards](https://www.1upkeyboards.com/shop/controllers/1up-rgb-underglow-pcb/)
|
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
|
||||||
|
|
||||||
make 1upkeyboards/1up60rgb: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).
|
|
@ -1,12 +0,0 @@
|
|||||||
# 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 = yes # Enable keyboard backlight functionality
|
|
||||||
AUDIO_ENABLE = no
|
|
||||||
RGBLIGHT_ENABLE = yes
|
|
@ -1,70 +0,0 @@
|
|||||||
/* Copyright 2023 Ziptyze
|
|
||||||
*
|
|
||||||
* 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 RGB_MATRIX_LED_COUNT 32
|
|
||||||
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses
|
|
||||||
|
|
||||||
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
|
|
||||||
// RGB Matrix Animation modes. Explicitly enabled
|
|
||||||
// For full list of effects, see:
|
|
||||||
// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
|
|
||||||
// # define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
|
||||||
// # define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
|
||||||
# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
|
||||||
# define ENABLE_RGB_MATRIX_BREATHING
|
|
||||||
# define ENABLE_RGB_MATRIX_BAND_SAT
|
|
||||||
# define ENABLE_RGB_MATRIX_BAND_VAL
|
|
||||||
# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
|
||||||
# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
|
||||||
# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
|
||||||
# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
|
||||||
# define ENABLE_RGB_MATRIX_CYCLE_ALL
|
|
||||||
# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
|
||||||
# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
|
||||||
# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
|
||||||
# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
|
|
||||||
# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
|
||||||
# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
|
||||||
# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
|
|
||||||
# define ENABLE_RGB_MATRIX_DUAL_BEACON
|
|
||||||
# define ENABLE_RGB_MATRIX_RAINBOW_BEACON
|
|
||||||
# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
|
||||||
# define ENABLE_RGB_MATRIX_RAINDROPS
|
|
||||||
# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
|
||||||
# define ENABLE_RGB_MATRIX_HUE_BREATHING
|
|
||||||
# define ENABLE_RGB_MATRIX_HUE_PENDULUM
|
|
||||||
# define ENABLE_RGB_MATRIX_HUE_WAVE
|
|
||||||
// # define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
|
||||||
// # define ENABLE_RGB_MATRIX_PIXEL_FLOW
|
|
||||||
// # define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
|
||||||
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
|
|
||||||
# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
|
||||||
// # define ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
|
||||||
// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
|
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
|
||||||
# define ENABLE_RGB_MATRIX_SPLASH
|
|
||||||
# define ENABLE_RGB_MATRIX_MULTISPLASH
|
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
|
@ -1,97 +0,0 @@
|
|||||||
{
|
|
||||||
"manufacturer": "1upkeyboards",
|
|
||||||
"keyboard_name": "1upocarina",
|
|
||||||
"maintainer": "ziptyze",
|
|
||||||
"processor": "RP2040",
|
|
||||||
"bootloader": "rp2040",
|
|
||||||
"board": "GENERIC_RP_RP2040",
|
|
||||||
"usb": {
|
|
||||||
"device_version": "1.0.0",
|
|
||||||
"pid": "0x5607",
|
|
||||||
"vid": "0x6F75"
|
|
||||||
},
|
|
||||||
"dynamic_keymap": {
|
|
||||||
"layer_count": 10
|
|
||||||
},
|
|
||||||
"features": {
|
|
||||||
"bootmagic": true,
|
|
||||||
"command": false,
|
|
||||||
"console": false,
|
|
||||||
"encoder": true,
|
|
||||||
"extrakey": true,
|
|
||||||
"mousekey": true,
|
|
||||||
"nkro": false,
|
|
||||||
"rgb_matrix": true
|
|
||||||
},
|
|
||||||
"encoder": {
|
|
||||||
"enabled": true,
|
|
||||||
"rotary": [
|
|
||||||
{
|
|
||||||
"pin_a": "GP25", "pin_b": "GP26"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"matrix_pins": {
|
|
||||||
"direct": [
|
|
||||||
["GP28", "GP29", "GP27", "GP1", "GP2"]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ws2812": {
|
|
||||||
"driver": "vendor",
|
|
||||||
"pin": "GP24"
|
|
||||||
},
|
|
||||||
"rgb_matrix": {
|
|
||||||
"driver": "ws2812",
|
|
||||||
"layout": [
|
|
||||||
{ "flags": 4, "matrix": [0, 0], "x": 23, "y": 26 },
|
|
||||||
{ "flags": 4, "matrix": [0, 1], "x": 62, "y": 26 },
|
|
||||||
{ "flags": 4, "matrix": [0, 2], "x": 112, "y": 34 },
|
|
||||||
{ "flags": 4, "matrix": [0, 3], "x": 161, "y": 26 },
|
|
||||||
{ "flags": 4, "matrix": [0, 4], "x": 200, "y": 26 },
|
|
||||||
|
|
||||||
{ "flags": 2, "x": 133, "y": 3 },
|
|
||||||
{ "flags": 2, "x": 154, "y": 3 },
|
|
||||||
{ "flags": 2, "x": 174, "y": 3 },
|
|
||||||
{ "flags": 2, "x": 194, "y": 3 },
|
|
||||||
{ "flags": 2, "x": 218, "y": 5 },
|
|
||||||
|
|
||||||
{ "flags": 2, "x": 221, "y": 19 },
|
|
||||||
{ "flags": 2, "x": 221, "y": 31 },
|
|
||||||
{ "flags": 2, "x": 221, "y": 44 },
|
|
||||||
{ "flags": 2, "x": 217, "y": 58 },
|
|
||||||
{ "flags": 2, "x": 195, "y": 61 },
|
|
||||||
|
|
||||||
{ "flags": 2, "x": 174, "y": 61 },
|
|
||||||
{ "flags": 2, "x": 154, "y": 61 },
|
|
||||||
{ "flags": 2, "x": 133, "y": 61 },
|
|
||||||
{ "flags": 2, "x": 112, "y": 61 },
|
|
||||||
{ "flags": 2, "x": 91, "y": 61 },
|
|
||||||
|
|
||||||
{ "flags": 2, "x": 70, "y": 61 },
|
|
||||||
{ "flags": 2, "x": 49, "y": 61 },
|
|
||||||
{ "flags": 2, "x": 28, "y": 61 },
|
|
||||||
{ "flags": 2, "x": 5, "y": 58 },
|
|
||||||
{ "flags": 2, "x": 2, "y": 44 },
|
|
||||||
|
|
||||||
{ "flags": 2, "x": 2, "y": 31 },
|
|
||||||
{ "flags": 2, "x": 2, "y": 19 },
|
|
||||||
{ "flags": 2, "x": 5, "y": 5 },
|
|
||||||
{ "flags": 2, "x": 28, "y": 3 },
|
|
||||||
{ "flags": 2, "x": 49, "y": 3 },
|
|
||||||
|
|
||||||
{ "flags": 2, "x": 70, "y": 3 },
|
|
||||||
{ "flags": 2, "x": 91, "y": 3 }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"layouts": {
|
|
||||||
"LAYOUT_1x5": {
|
|
||||||
"layout": [
|
|
||||||
{ "label": "z", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 },
|
|
||||||
{ "label": "x", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 },
|
|
||||||
{ "label": "esc", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 },
|
|
||||||
{ "label": "c", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 },
|
|
||||||
{ "label": "v", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,34 +0,0 @@
|
|||||||
/* Copyright 2023 ziptyze
|
|
||||||
*
|
|
||||||
* 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_1x5(
|
|
||||||
KC_Z, KC_X, LT(1, KC_ESC), KC_C, KC_V
|
|
||||||
),
|
|
||||||
|
|
||||||
[1] = LAYOUT_1x5(
|
|
||||||
RGB_TOG, RGB_MOD, KC_TRNS, RGB_VAD, RGB_VAI
|
|
||||||
)
|
|
||||||
};
|
|
||||||
|
|
||||||
#if defined(ENCODER_MAP_ENABLE)
|
|
||||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
|
||||||
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
|
||||||
[1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}
|
|
||||||
};
|
|
||||||
#endif
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user