Browse Source

[Keyboard] Pteron36 (#13475)

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Harshti Goel <harshitgoel@licious.com>
pull/14638/head
Harshit Goel 2 years ago
committed by GitHub
parent
commit
ac1d48cbf5
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 136 additions and 15 deletions
  1. +13
    -1
      keyboards/pteron36/config.h
  2. +1
    -1
      keyboards/pteron36/keymaps/default/keymap.c
  3. +58
    -1
      keyboards/pteron36/keymaps/via/keymap.c
  4. +1
    -1
      keyboards/pteron36/keymaps/via/readme.md
  5. +1
    -1
      keyboards/pteron36/keymaps/via/rules.mk
  6. +50
    -1
      keyboards/pteron36/pteron36.c
  7. +8
    -5
      keyboards/pteron36/readme.md
  8. +4
    -4
      keyboards/pteron36/rules.mk

+ 13
- 1
keyboards/pteron36/config.h View File

@ -152,4 +152,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
// for via
#define DYNAMIC_KEYMAP_LAYER_COUNT 7
#define DYNAMIC_KEYMAP_LAYER_COUNT 7
//left encoder
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F4 }
//right encoder
#define ENCODERS_PAD_A_RIGHT { F4 }
#define ENCODERS_PAD_B_RIGHT { F5 }
//RGB Underglow
#define RGB_DI_PIN B6
#define RGBLED_NUM 10

+ 1
- 1
keyboards/pteron36/keymaps/default/keymap.c View File

@ -32,4 +32,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
KC_Z, KC_X, KC_C, KC_V, KC_B,KC_LBRACKET, KC_RBRACKET, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
KC_LGUI, KC_BSPC, KC_SPC, KC_SPC, KC_ENT, KC_RALT
)};
)};

+ 58
- 1
keyboards/pteron36/keymaps/via/keymap.c View File

@ -81,4 +81,61 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};
};
#ifdef OLED_DRIVER_ENABLE
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, 0x00
};
oled_write_P(qmk_logo, false);
}
static void render_status(void){
oled_write_P(PSTR("Layer: "), false);
switch (get_highest_layer(layer_state)) {
case _QWERTY:
oled_write_P(PSTR("Default\n"), false);
break;
case _SYMB:
oled_write_P(PSTR("Symbol\n"), false);
break;
case _NAV:
oled_write_P(PSTR("Nav\n"), false);
break;
case _ADJUST:
oled_write_P(PSTR("Adjust\n"), false);
break;
case _MOUSE:
oled_write_P(PSTR("Mouse\n"), false);
break;
case _NUMB:
oled_write_P(PSTR("Number\n"), false);
break;
case _FNR:
oled_write_P(PSTR("FunR\n"), false);
break;
default:
// Or use the write_ln shortcut over adding '\n' to the end of your string
oled_write_ln_P(PSTR("Undefined"), false);
}
// Host Keyboard LED Status
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_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
}
void oled_task_user(void) {
if (is_keyboard_master()) {
render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
} else {
render_logo(); // Renders a static logo
oled_scroll_left(); // Turns on scrolling
}
}
#endif

+ 1
- 1
keyboards/pteron36/keymaps/via/readme.md View File

@ -1 +1 @@
# Default keymap for Redox Wireless
# Default keymap for via

+ 1
- 1
keyboards/pteron36/keymaps/via/rules.mk View File

@ -1,2 +1,2 @@
VIA_ENABLE = yes
LTO_ENABLE = yes
LTO_ENABLE = yes

+ 50
- 1
keyboards/pteron36/pteron36.c View File

@ -14,4 +14,53 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "pteron36.h"
#include "pteron36.h"
//common encoder setup
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
if (index == 0) { /* First encoder */
if (clockwise) {
tap_code(KC__VOLUP);
} else {
tap_code(KC__VOLDOWN);
}
} else if (index == 1) { /* Second encoder */
if (clockwise) {
tap_code(KC_PGUP);
} else {
tap_code(KC_PGDN);
}
}
return true;
}
//common oled support.
#ifdef OLED_DRIVER_ENABLE
__attribute__((weak)) void oled_task_user(void) {
if (is_keyboard_master()) {
oled_write_P(PSTR("Layer: "), false);
switch (get_highest_layer(layer_state)) {
case _QWERTY:
oled_write_ln_P(PSTR("Default"), false);
break;
default:
// Or use the write_ln shortcut over adding '\n' to the end of your string
oled_write_ln_P(PSTR("Undefined"), false);
}
// Host Keyboard LED Status
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_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
} else {
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, 0x00
};
oled_write_P(qmk_logo, false);
oled_scroll_left(); // Turns on scrolling
}
}
#endif

+ 8
- 5
keyboards/pteron36/readme.md View File

@ -20,12 +20,15 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to
## Default Keymap and Miryoku Layout support
The keyboard was designed with miryoku layout in mind. The default layout is very basic and does not have much use. I will be opening a pr to make the keyboard available with miryoku layout soon. Currently to build the keyboard with miryoku you will have to checkout latest miryoku qmk repo, and add the keyboard folder there manually. After copying the folder run the following command
The keyboard was designed with miryoku layout in mind. The default layout is very basic and does not have much use, modify the keymap as you see fit. Build keyboard with manna-harbour_miryoku as keymap, qmk should compile the firmare without any issue.
make pteron36:manna-harbour_miryoku
make pteron36:manna-harbour_miryoku
Add miryoku params as required.
Pteron36 uses community layout, hence there is no need for separate keymap folder for any keymap that support 5x3_3 layout.
## VIA support
## OLED and RotaryEncoder
The VIA keymap is working as intended.
I am working on adding OLED and RotaryEncoder support in keyboard config.
make pteron36:via

+ 4
- 4
keyboards/pteron36/rules.mk View File

@ -17,10 +17,10 @@ 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
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
OLED_ENABLE = no # OLED display; work in progress to add support. will be update in future.
SPLIT_KEYBOARD = yes
OLED_DRIVER_ENABLE = yes # OLED display
ENCODER_ENABLE = yes # Encoder support
SPLIT_KEYBOARD = yes # Split enable
LAYOUTS = split_3x5_3

Loading…
Cancel
Save