Added new keyboard Creator LIte name by SergioPoverony (#70)

* Added keyboard Creator Lite by SergioPoverony

* Newline fix

* readme Creator Lite

* Update keyboard Cretor Pro, added vial keumap support
fix keymap Lite version creatro keyboard
This commit is contained in:
SergioPoverony 2021-11-07 22:52:29 +05:00 committed by GitHub
parent d8eb16f67b
commit 3e75afa593
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 502 additions and 279 deletions

View file

@ -0,0 +1,35 @@
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x8b1e // "AR"
#define PRODUCT_ID 0x0D00 // "OF"
#define DEVICE_VER 0x0001
#define MANUFACTURER SergioPoverony
#define PRODUCT Creator Lite
#define VIAL_KEYBOARD_UID {0x1D, 0x91, 0xC3, 0x9B, 0x4D, 0xEF, 0x8B, 0x58}
/* key matrix size */
#define MATRIX_ROWS 1
#define MATRIX_COLS 7
#define DIRECT_PINS { \
{ D7, C6, B3, B2, E6, D2, D3} \
}
#define LED_PIN_ON_STATE 0
#define GREEN_LED B6
#define BLUE_LED B5
#define RED_LED D0
#define UNUSED_PINS
/* encoder */
#define ENCODERS_PAD_A { D3 }
#define ENCODERS_PAD_B { D2 }
#define ENCODER_RESOLUTION 1
#define USB_POLLING_INTERVAL_MS 1
#define QMK_KEYS_PER_SCAN 12
#define UNUSED_PINS

View file

@ -0,0 +1,19 @@
#include "creator_lite.h"
void matrix_init_kb(void)
{
matrix_init_user();
setPinOutput(RED_LED);
setPinOutput(BLUE_LED);
setPinOutput(GREEN_LED);
}
void turn_off_leds(void)
{
writePinLow(RED_LED);
writePinLow(BLUE_LED);
writePinLow(GREEN_LED);
}
void turn_on_led(pin_t pin)
{
writePinHigh(pin);
}

View file

@ -0,0 +1,14 @@
#pragma once
#include "quantum.h"
/* Use VIA layout from David Doan*/
/*layout*/
#define LAYOUT( \
k01, k02, k03, k04, k05\
) { \
{ k01, k02, k03, k04, k05} \
}
/*led work*/
void turn_off_leds(void);
void turn_on_led(pin_t pin);

View file

@ -0,0 +1,34 @@
{
"name": "Creator Pro",
"vendorId": "0x8B1E",
"productId": "0x0D00",
"lighting": "none",
"matrix":
{
"rows": 9,
"cols": 1
},
"layouts": {
"keymap": [
[
"0,0", "0,1"
],
[
{
"y": -0.5,
"x": 4.5
},
"0,3"
],
[
{
"y": -0.5
},
"0,4", "0,5"
]
]
}
}

View file

@ -0,0 +1,18 @@
{
"keyboard_name": "Creator Lite",
"url": "https://github.com/sergiopoverony",
"maintainer": "SergioPoverony",
"width": 5,
"height": 1,
"layouts": {
"LAYOUT": {
"layout": [
{"label": "K01", "x":0, "y":0},
{"label": "K02", "x":1, "y":0},
{"label": "K03", "x":2, "y":0},
{"label": "K04", "x":3, "y":0},
{"label": "K05", "x":4, "y":0}
]
}
}
}

View file

@ -0,0 +1,65 @@
#include QMK_KEYBOARD_H
/* default layers */
enum layers {
_HOME = 0,
_RED = 1,
_BLUE = 2,
_GREEN = 3,
};
/* Encoder with all layouts
bool encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
if (clockwise) {
tap_code16(KC_RIGHT);
} else {
tap_code16(KC_LEFT);
}
}
return true;
}
*/
/* Layout */
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_HOME] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, TO(_RED)
),
[_RED] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, TO(_BLUE)
),
[_BLUE] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, TO(_GREEN)
),
[_GREEN] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, TO(_HOME)
)
};
/* Select led layout */
layer_state_t layer_state_set_user(layer_state_t state)
{
turn_off_leds();
switch (get_highest_layer(state))
{
case _HOME:
break;
case _RED:
turn_on_led(RED_LED);
break;
case _BLUE:
turn_on_led(BLUE_LED);
break;
case _GREEN:
turn_on_led(GREEN_LED);
break;
}
return state;
};

View file

@ -0,0 +1,5 @@
![[1x4] + 1 Macropad Layout](https://i.imgur.com/ZdXuIwb.png)
# Default [1x4] + 1 Macropad Layout
This is the default layout that comes flashed on every [1x4] + 1 Macropad. The right most key (red) is the rotary and the key is binded to layer switching. The second layer is left blank for the user.

View file

@ -0,0 +1,65 @@
#include QMK_KEYBOARD_H
/* default layers */
enum layers {
_HOME = 0,
_RED = 1,
_BLUE = 2,
_GREEN = 3,
};
/* Encoder with all layouts
bool encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
if (clockwise) {
tap_code16(KC_RIGHT);
} else {
tap_code16(KC_LEFT);
}
}
return true;
}
*/
/* Layout */
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_HOME] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, TO(_RED)
),
[_RED] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, TO(_BLUE)
),
[_BLUE] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, TO(_GREEN)
),
[_GREEN] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, TO(_HOME)
)
};
/* Select led layout */
layer_state_t layer_state_set_user(layer_state_t state)
{
turn_off_leds();
switch (get_highest_layer(state))
{
case _HOME:
break;
case _RED:
turn_on_led(RED_LED);
break;
case _BLUE:
turn_on_led(BLUE_LED);
break;
case _GREEN:
turn_on_led(GREEN_LED);
break;
}
return state;
};

View file

@ -0,0 +1,4 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
VIAL_INSECURE = yes
VIAL_ENCODERS_ENABLE = yes

View file

@ -0,0 +1,34 @@
{
"name": "Creator Lite",
"vendorId": "0x8B1E",
"productId": "0x0D00",
"lighting": "none",
"matrix":
{
"rows": 1,
"cols": 7
},
"layouts": {
"keymap": [
[
"0,0", "0,1"
],
[
{
"y": -0.5,
"x": 2.5
},
"0,0\n\n\n\n\n\n\n\n\ne", "0,4", "0,1\n\n\n\n\n\n\n\n\ne"
],
[
{
"y": -0.5
},
"0,2", "0,3"
]
]
}
}

View file

@ -0,0 +1,27 @@
# Creator Lite
![Creator Lite Layout](https://i.imgur.com/2IjO6Pw.jpg)
This Keypad has 1 rows x 5 columns of keys. It has the top/default layer that
has a few 1-4 keys as well as one dedicated encoder key for change layer. The
second layer has QWERASDF keys. Encoder have 4 function on any layer is
Volume Control, Mouse Wheel, PageUp/PageDn, Left/Righ buttons.
The keypad also includes three RGB LEDs that show active layer.
For enter the bootloader to flash new firmware need press hw reset button hole on the bottom
Keyboard Maintainer: [SergioPoverony](https://github.com/sergiopoverony)
Hardware:
* For enter the bootloader to flash new firmware need press hw reset button hole on the bottom
* Key switch holes cut fabrication in blank PCB
* Uses Gateron Brown switches with gray keycaps XDA profile
* Chassis is PCB with supports
* PCB fabrication
* Uses a Pro Micro wint MicroUSB or USB Type-C connector
* Includes a reset switch accessible by a hole on the bottom
Make example for this keyboard (after setting up your build environment):
make sergiopoverony/creator_lite:via
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).

View file

@ -0,0 +1,11 @@
# MCU name
MCU = atmega32u4
BOOTLOADER = caterina
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
UNICODE_ENABLE = no
ENCODER_ENABLE = yes

View file

@ -1,49 +1,37 @@
/* Copyright 2020-2021 SergioPoverony
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h"
/* vid pid */
#define VENDOR_ID 0x8B1E
#define PRODUCT_ID 0x0C00
/* USB Device descriptor parameter */
#define VENDOR_ID 0x8b1e // "AR"
#define PRODUCT_ID 0x0C00 // "OF"
#define DEVICE_VER 0x0001
#define MANUFACTURER SergioPoverony
#define PRODUCT Creator Pro
/* key matrix size pins */
#define VIAL_KEYBOARD_UID {0x2A, 0xA3, 0x6B, 0x57, 0x59, 0xB3, 0x55, 0xC6}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 3 }
/* key matrix size */
#define MATRIX_ROWS 1
#define MATRIX_COLS 9
#define DIRECT_PINS { \
{ D1, D4, C6, D7, \
E6, \
B2, B3, B1, F7 } \
{ D1, D4, C6, D7, E6, F7, B1, B3, B2} \
}
/*led layout indication*/
#define LED_PIN_ON_STATE 0
#define GREEN_LED B5
#define BLUE_LED D0
#define RED_LED B6
/*led layout indication pins*/
#define RED_LED D0
#define BLUE_LED B5
#define GREEN_LED B6
#define USB_POLLING_INTERVAL_MS 1
#define QMK_KEYS_PER_SCAN 12
/* encoder pins*/
/* encoder */
#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { D3 }
#define ENCODER_RESOLUTION 1
#define UNUSED_PINS

View file

@ -1,33 +1,20 @@
/* Copyright 2020-2021 SergioPoverony
*
* 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 "creator_pro.h"
void matrix_init_kb(void) {
void matrix_init_kb(void)
{
matrix_init_user();
/* led pins */
setPinOutput(RED_LED);
setPinOutput(BLUE_LED);
setPinOutput(GREEN_LED);
}
void turn_off_leds(void) {
void turn_off_leds(void)
{
writePinLow(RED_LED);
writePinLow(BLUE_LED);
writePinLow(GREEN_LED);
}
void turn_on_led(pin_t pin) {
void turn_on_led(pin_t pin)
{
writePinHigh(pin);
}

View file

@ -1,33 +1,18 @@
/* Copyright 2020-2021 SergioPoverony
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "quantum.h"
/* Use VIA layout from David Doan*/
/*layout*/
#define LAYOUT( \
K01, K02, K03, K04, \
K05, \
K06, K07, K08, K09 \
) { { \
K01, K02, K03, K04, \
K05, \
K06, K07, K08, K09 \
} }
k01, k02, k04, k03, \
k05, \
k06, k07, k08, k09\
) { \
{ k01, k02, k03, k04, \
k05, \
k06, k07, k08, k09} \
}
/*led work*/
void turn_off_leds(void);
void turn_on_led(pin_t pin);

View file

@ -0,0 +1,34 @@
{
"name": "Creator Pro",
"vendorId": "0x8B1E",
"productId": "0x0C00",
"lighting": "none",
"matrix":
{
"rows": 9,
"cols": 1
},
"layouts": {
"keymap": [
[
"0,0", "0,1", "0,2", "0,3"
],
[
{
"y": -0.5,
"x": 4.5
},
"0,4"
],
[
{
"y": -0.5
},
"0,5", "0,6", "0,7", "0,8"
]
]
}
}

View file

@ -2,18 +2,20 @@
"keyboard_name": "Creator Pro",
"url": "https://github.com/sergiopoverony",
"maintainer": "SergioPoverony",
"width": 1,
"height": 9,
"layouts": {
"LAYOUT": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4.5, "y":0.5},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1},
{"x":3, "y":1}
{"label": "K01", "x":0, "y":0},
{"label": "K02", "x":1, "y":0},
{"label": "K03", "x":2, "y":0},
{"label": "K04", "x":3, "y":0},
{"label": "K05", "x":4, "y":0},
{"label": "K06", "x":5, "y":0},
{"label": "K07", "x":6, "y":0},
{"label": "K08", "x":7, "y":0},
{"label": "K09", "x":8, "y":0}
]
}
}

View file

@ -1,110 +1,54 @@
/* Copyright 2020-2021 SergioPoverony
*
* 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
#include QMK_KEYBOARD_H
/* enum layers num */
enum layer_number {
_HOME = 0,
_RED,
_BLUE,
_GREEN
/* default layers */
enum layers {
_HOME = 0,
_RED = 1,
_BLUE = 2,
_GREEN = 3,
};
/* Encoder function with layers function */
bool encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
switch (get_highest_layer(layer_state)) {
case _HOME:
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
break;
case _RED:
if (clockwise) {
tap_code(KC_MS_WH_UP);
} else {
tap_code(KC_MS_WH_DOWN);
}
break;
case _BLUE:
if (clockwise) {
tap_code(KC_PGUP);
} else {
tap_code(KC_PGDN);
}
break;
case _GREEN:
default:
if (clockwise) {
tap_code16(KC_LEFT);
} else {
tap_code16(KC_RIGHT);
}
break;
}
}
return true;
}
/* Encoder with all layouts
bool encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
if (clockwise) {
tap_code16(KC_RIGHT);
} else {
tap_code16(KC_LEFT);
}
}
return true;
}
*/
/* Layout */
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_HOME] = LAYOUT(
KC_1, KC_2, KC_3, KC_4,
TO(_RED),
KC_5, KC_6, KC_7, KC_8
),
KC_1, KC_2, KC_3, KC_4, TO(_RED), KC_6, KC_6, KC_7, KC_8
),
[_RED] = LAYOUT(
KC_Q, KC_W, KC_E, KC_R,
TO(_BLUE),
KC_A, KC_S, KC_D, KC_F
),
KC_1, KC_2, KC_3, KC_4, TO(_BLUE), KC_6, KC_6, KC_7, KC_8
),
[_BLUE] = LAYOUT(
KC_1, KC_2, KC_3, KC_4,
TO(_GREEN),
KC_5, KC_6, KC_7, KC_8
),
KC_1, KC_2, KC_3, KC_4, TO(_GREEN), KC_6, KC_6, KC_7, KC_8
),
[_GREEN] = LAYOUT(
KC_1, KC_2, KC_3, KC_4,
TO(_HOME),
KC_5, KC_6, KC_7, KC_8
),
KC_1, KC_2, KC_3, KC_4, TO(_HOME), KC_6, KC_6, KC_7, KC_8
)
};
/* Select led layout */
layer_state_t layer_state_set_user(layer_state_t state)
{
turn_off_leds();
turn_off_leds();
switch (get_highest_layer(state))
{
case _HOME:
turn_on_led(RED_LED);
turn_on_led(BLUE_LED);
turn_on_led(RED_LED);
turn_on_led(BLUE_LED);
break;
case _RED:

View file

@ -1,5 +1,5 @@
![Creator Pro Layout](https://i.imgur.com/0PmpLcM.png)
![[2x4] + 1 Macropad Layout]
# Default Creator Pro Layout
# Default [2x4] + 1 Macropad Layout
This is the default layout that comes flashed on every Creator Pro. The right most key (Encoder) is the rotary and the key is binded to layer switching.
This is the default layout that comes flashed on every [2x4] + 1 Macropad. The right most key (red) is the rotary and the key is binded to layer switching. The second layer is left blank for the user.

View file

@ -1,110 +1,36 @@
/* Copyright 2020-2021 SergioPoverony
*
* 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
#include QMK_KEYBOARD_H
/* enum layers num */
enum layer_number {
_HOME = 0,
_RED,
_BLUE,
_GREEN
/* default layers */
enum layers {
_HOME = 0,
_RED = 1,
_BLUE = 2,
_GREEN = 3,
};
/* Encoder function with layers function */
bool encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
switch (get_highest_layer(layer_state)) {
case _HOME:
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
break;
case _RED:
if (clockwise) {
tap_code(KC_MS_WH_UP);
} else {
tap_code(KC_MS_WH_DOWN);
}
break;
case _BLUE:
if (clockwise) {
tap_code(KC_PGUP);
} else {
tap_code(KC_PGDN);
}
break;
case _GREEN:
default:
if (clockwise) {
tap_code16(KC_LEFT);
} else {
tap_code16(KC_RIGHT);
}
break;
}
}
return true;
}
/* Layout */
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_HOME] = LAYOUT(
KC_1, KC_2, KC_3, KC_4,
TO(_RED),
KC_5, KC_6, KC_7, KC_8
),
KC_1, KC_2, KC_3, KC_4, TO(_RED), KC_6, KC_7, KC_8, KC_9
),
[_RED] = LAYOUT(
KC_Q, KC_W, KC_E, KC_R,
TO(_BLUE),
KC_A, KC_S, KC_D, KC_F
),
KC_1, KC_2, KC_3, KC_4, TO(_BLUE), KC_6, KC_7, KC_8, KC_9
),
[_BLUE] = LAYOUT(
KC_1, KC_2, KC_3, KC_4,
TO(_GREEN),
KC_5, KC_6, KC_7, KC_8
),
KC_1, KC_2, KC_3, KC_4, TO(_GREEN), KC_6, KC_7, KC_8, KC_9
),
[_GREEN] = LAYOUT(
KC_1, KC_2, KC_3, KC_4,
TO(_HOME),
KC_5, KC_6, KC_7, KC_8
),
KC_1, KC_2, KC_3, KC_4, TO(_HOME), KC_6, KC_7, KC_8, KC_9
)
};
/* Select led layout */
layer_state_t layer_state_set_user(layer_state_t state)
{
turn_off_leds();
turn_off_leds();
switch (get_highest_layer(state))
{
case _HOME:
turn_on_led(RED_LED);
turn_on_led(BLUE_LED);
break;
case _RED:

View file

@ -1 +1,4 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
VIAL_INSECURE = yes
VIAL_ENCODERS_ENABLE = yes

View file

@ -0,0 +1,34 @@
{
"name": "Creator Pro",
"vendorId": "0x8B1E",
"productId": "0x0C00",
"lighting": "none",
"matrix":
{
"rows": 1,
"cols": 9
},
"layouts": {
"keymap": [
[
"0,0", "0,1", "0,3", "0,2"
],
[
{
"y": -0.5,
"x": 4.5
},
"0,1\n\n\n\n\n\n\n\n\ne", "0,4", "0,0\n\n\n\n\n\n\n\n\ne"
],
[
{
"y": -0.5
},
"0,5", "0,6", "0,7", "0,8"
]
]
}
}

View file

@ -1,22 +1,11 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
UNICODE_ENABLE = no
ENCODER_ENABLE = yes