Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Keyboard] Add Creator Pro by SergioPoverony #13154

Merged
merged 24 commits into from
Jul 3, 2021
Merged
Show file tree
Hide file tree
Changes from 21 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions keyboards/sergiopoverony/creator_pro/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
/* 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
#define DEVICE_VER 0x0001
#define MANUFACTURER SergioPoverony
#define PRODUCT Creator Pro


/* key matrix size pins */
#define MATRIX_ROWS 1
#define MATRIX_COLS 9
#define DIRECT_PINS { \
{ D1, D4, C6, D7, \
E6, \
B2, B3, B1, F7 } \
}


/*led layout indication pins*/
#define RED_LED D0
#define BLUE_LED B5
#define GREEN_LED B6

/* encoder pins*/
#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { D3 }
#define ENCODER_RESOLUTION 1

#define UNUSED_PINS

36 changes: 36 additions & 0 deletions keyboards/sergiopoverony/creator_pro/creator_pro.c
Original file line number Diff line number Diff line change
@@ -0,0 +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 "creator_pro.h"

void matrix_init_kb(void)
{
matrix_init_user();
/* led pins */
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);
sergiopoverony marked this conversation as resolved.
Show resolved Hide resolved
}
33 changes: 33 additions & 0 deletions keyboards/sergiopoverony/creator_pro/creator_pro.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/* 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"

#define LAYOUT( \
K01, K02, K03, K04, \
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);

22 changes: 22 additions & 0 deletions keyboards/sergiopoverony/creator_pro/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"keyboard_name": "Creator Pro",
"url": "https://github.com/sergiopoverony",
"maintainer": "SergioPoverony",
"width": 3,
"height": 3,
"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}
]
}
}
}
123 changes: 123 additions & 0 deletions keyboards/sergiopoverony/creator_pro/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
/* 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

/* enum layers num */
enum layer_number {
_HOME = 0,
_RED,
_BLUE,
_GREEN
};

/* 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
),

[_RED] = LAYOUT(
KC_Q, KC_W, KC_E, KC_R,
TO(_BLUE),
KC_A, KC_S, KC_D, KC_F
),

[_BLUE] = LAYOUT(
KC_1, KC_2, KC_3, KC_4,
TO(_GREEN),
KC_5, 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
),
};


/* Select led layout */
layer_state_t layer_state_set_user(layer_state_t state)
{
turn_off_leds();

switch (get_highest_layer(state))
{
case _HOME:
turn_on_led(RED_LED);
turn_on_led(BLUE_LED);
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;
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
![Creator Pro Layout](https://i.imgur.com/0PmpLcM.png)

# Default Creator Pro 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.
123 changes: 123 additions & 0 deletions keyboards/sergiopoverony/creator_pro/keymaps/via/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
/* 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

/* enum layers num */
enum layer_number {
_HOME = 0,
_RED,
_BLUE,
_GREEN
};

/* 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
),

[_RED] = LAYOUT(
KC_Q, KC_W, KC_E, KC_R,
TO(_BLUE),
KC_A, KC_S, KC_D, KC_F
),

[_BLUE] = LAYOUT(
KC_1, KC_2, KC_3, KC_4,
TO(_GREEN),
KC_5, 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
),
};


/* Select led layout */
layer_state_t layer_state_set_user(layer_state_t state)
{
turn_off_leds();

switch (get_highest_layer(state))
{
case _HOME:
turn_on_led(RED_LED);
turn_on_led(BLUE_LED);
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;
};
Loading