From fd44341cbf63787e1e0d8224a8dcb5143b029d2a Mon Sep 17 00:00:00 2001 From: Batuhan Baserdem <19315586+bbaserdem@users.noreply.github.com> Date: Sat, 2 Jul 2022 11:09:04 +0000 Subject: Userspace and keymap update for user bbaserdem. (#14484) --- layouts/community/ortho_3x10/bbaserdem/config.h | 21 +++ layouts/community/ortho_3x10/bbaserdem/keymap.c | 98 +++++++++++ layouts/community/ortho_3x10/bbaserdem/readme.md | 19 +++ layouts/community/ortho_3x10/bbaserdem/rules.mk | 23 +++ layouts/community/ortho_4x12/bbaserdem/config.h | 26 +++ layouts/community/ortho_4x12/bbaserdem/keymap.c | 88 ++++++++++ layouts/community/ortho_4x12/bbaserdem/readme.md | 12 ++ layouts/community/ortho_4x12/bbaserdem/rules.mk | 26 +++ layouts/community/split_3x5_3/bbaserdem/config.h | 35 ++++ layouts/community/split_3x5_3/bbaserdem/keymap.c | 117 +++++++++++++ layouts/community/split_3x5_3/bbaserdem/readme.md | 18 ++ layouts/community/split_3x5_3/bbaserdem/rules.mk | 22 +++ layouts/community/split_3x6_3/bbaserdem/chconf.h | 23 +++ layouts/community/split_3x6_3/bbaserdem/config.h | 77 +++++++++ layouts/community/split_3x6_3/bbaserdem/halconf.h | 24 +++ layouts/community/split_3x6_3/bbaserdem/keymap.c | 191 ++++++++++++++++++++++ layouts/community/split_3x6_3/bbaserdem/mcuconf.h | 25 +++ layouts/community/split_3x6_3/bbaserdem/readme.md | 15 ++ layouts/community/split_3x6_3/bbaserdem/rules.mk | 47 ++++++ layouts/community/split_3x6_3/bbaserdem/ssd1306.c | 16 ++ 20 files changed, 923 insertions(+) create mode 100644 layouts/community/ortho_3x10/bbaserdem/config.h create mode 100644 layouts/community/ortho_3x10/bbaserdem/keymap.c create mode 100644 layouts/community/ortho_3x10/bbaserdem/readme.md create mode 100755 layouts/community/ortho_3x10/bbaserdem/rules.mk create mode 100755 layouts/community/ortho_4x12/bbaserdem/config.h create mode 100755 layouts/community/ortho_4x12/bbaserdem/keymap.c create mode 100644 layouts/community/ortho_4x12/bbaserdem/readme.md create mode 100755 layouts/community/ortho_4x12/bbaserdem/rules.mk create mode 100644 layouts/community/split_3x5_3/bbaserdem/config.h create mode 100644 layouts/community/split_3x5_3/bbaserdem/keymap.c create mode 100644 layouts/community/split_3x5_3/bbaserdem/readme.md create mode 100644 layouts/community/split_3x5_3/bbaserdem/rules.mk create mode 100644 layouts/community/split_3x6_3/bbaserdem/chconf.h create mode 100644 layouts/community/split_3x6_3/bbaserdem/config.h create mode 100644 layouts/community/split_3x6_3/bbaserdem/halconf.h create mode 100644 layouts/community/split_3x6_3/bbaserdem/keymap.c create mode 100644 layouts/community/split_3x6_3/bbaserdem/mcuconf.h create mode 100644 layouts/community/split_3x6_3/bbaserdem/readme.md create mode 100644 layouts/community/split_3x6_3/bbaserdem/rules.mk create mode 100644 layouts/community/split_3x6_3/bbaserdem/ssd1306.c (limited to 'layouts') diff --git a/layouts/community/ortho_3x10/bbaserdem/config.h b/layouts/community/ortho_3x10/bbaserdem/config.h new file mode 100644 index 0000000000..d781d34478 --- /dev/null +++ b/layouts/community/ortho_3x10/bbaserdem/config.h @@ -0,0 +1,21 @@ +/* +Copyright 2019 Batuhan Başerdem @bbaserdem +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 . +*/ +#pragma once + +// Gherkin specific +#ifdef KEYBOARD_40percentclub_gherkin + #define MUSIC_MAP + #define RGB_DI_PIN F6 + #define DRIVER_LED_TOTAL 10 +#endif diff --git a/layouts/community/ortho_3x10/bbaserdem/keymap.c b/layouts/community/ortho_3x10/bbaserdem/keymap.c new file mode 100644 index 0000000000..cf81f7036e --- /dev/null +++ b/layouts/community/ortho_3x10/bbaserdem/keymap.c @@ -0,0 +1,98 @@ +/* +Copyright 2019 Batuhan Başerdem @bbaserdem +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 . +*/ +#include QMK_KEYBOARD_H +#include "bbaserdem.h" + +#ifdef KEYBOARD_40percentclub_gherkin + // Flip it + #undef LAYOUT_ortho_3x10 + #define LAYOUT_ortho_3x10( \ + K00, K01, K02, K03, K04, K05, K10, K11, K12, K13 , \ + K14, K15, K20, K21, K22, K23, K24, K25, K30, K31 , \ + K32, K33, K34, K35, K40, K41, K42, K43, K44, K45 \ + ) { \ + { K45, K44, K43, K42, K41, K40 }, \ + { K35, K34, K33, K32, K31, K30 }, \ + { K25, K24, K23, K22, K21, K20 }, \ + { K15, K14, K13, K12, K11, K10 }, \ + { K05, K04, K03, K02, K01, K00 } \ + } +#endif + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Game pad + * ,-----------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | F1 | F2 | F3 | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| + * |AdjsL| Q | W | E | R | Ent | Tab | Ctr | |^| | Alt | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| + * |Music| A | S | D | F | Spc |Shift| <-- | |v| | --> | + * `-----------------------------------------------------------' + */ + [_BASE] = LAYOUT_ortho_3x10( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_F1, KC_F2, KC_F3, + MO(_MEDI), KC_Q, KC_W, KC_E, KC_R, KC_ENT, KC_TAB, KC_LCTL,KC_UP, KC_LALT, + MU_TOG, KC_A, KC_S, KC_D, KC_F, KC_SPC, KC_LSFT,KC_LEFT,KC_DOWN,KC_RGHT + ), +/* Adjust + * ,-----------------------------------------------------------. + * | Esc |RGBTg|HueUp|HueDn|SatUp|SatDn|ValUp|ValDn|ModNx|ModPr| + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| + * | |BltTg|Breth|BriUp|BriDn| | |Veloc|SpdUp|SpdDn| + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| + * |Music| | | | | | | |EEprm|Reset| + * `-----------------------------------------------------------' + */ + [_MEDI] = LAYOUT_ortho_3x10( + CK_TOGG,RGB_TOG,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,RGB_MOD,RGB_RMOD, + _______,BL_TOGG,BL_BRTG,BL_INC, BL_DEC, XXXXXXX,XXXXXXX,VLK_TOG,RGB_SPI,RGB_SPD, + AU_TOG, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,EEP_RST,RESET + ), + [_MUSI] = LAYOUT_ortho_3x10_wrapper( + MU_FAST,_MU_08_,MU_REC, + MU_SLOW,_MU_08_,MU_STOP, + MU_TOG, _MU_08_,MU_PLAY + ), +}; + +// Music map, guitar like. +#ifdef AUDIO_ENABLE +const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_ortho_3x10( + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 +); +#endif + +// RGB matrix code +#ifdef RGB_MATRIX_ENABLE +// Gherkin +#if defined(KEYBOARD_40percentclub_gherkin) +led_config_t g_led_config = { + { // Key Matrix to LED Index + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED} +}, { // LED Index to Physical Position + {224, 0}, {168, 0}, {112, 0}, { 56, 0}, { 0, 0}, + { 0, 64}, { 56, 64}, {112, 64}, {168, 64}, {224, 64}, +}, { // LED Index to Flag + 2,2,2,2,2,2,2,2,2,2 +}}; +// Disable layer switching +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {return true;} +#endif // Gherkin +#endif // RGB Matrix diff --git a/layouts/community/ortho_3x10/bbaserdem/readme.md b/layouts/community/ortho_3x10/bbaserdem/readme.md new file mode 100644 index 0000000000..3681eb840a --- /dev/null +++ b/layouts/community/ortho_3x10/bbaserdem/readme.md @@ -0,0 +1,19 @@ +This folder contains my [3x10\_ortho](../../../default/ortho_3x10) board layouts +Check out the [user readme](../../../../users/bbaserdem/readme.md) for more info. + +# Gherkin + +I use [Gherkin](../../../../keyboards/40percentclub/gherkin/readme.md). + +It is used as a game pad, and key layout is inspired by spare keys I had lying around. +The firmware is very simple, and only includes one layer keymap, and RGB effects. + +## Status + +* [x] Layout adapted +* [x] Tested build +* [x] Confirmed on board + +## Build + +Build command: `CFLAGS="-Wno-error=deprecated" ` diff --git a/layouts/community/ortho_3x10/bbaserdem/rules.mk b/layouts/community/ortho_3x10/bbaserdem/rules.mk new file mode 100755 index 0000000000..7232f6969d --- /dev/null +++ b/layouts/community/ortho_3x10/bbaserdem/rules.mk @@ -0,0 +1,23 @@ +# Copyright 2019 Batuhan Başerdem @bbaserdem +# 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 . + +# This small layout is a macro-pad; does not need userspace + +# Gherkin has both RGB strip and LED lights +ifneq (,$(findstring 40percentclub/gherkin,$(KEYBOARD))) + CONVERT_TO_PROTON_C = yes + RGB_MATRIX_ENABLE = yes + RGB_MATRIX_DRIVER = WS2812 + AUDIO_ENABLE = yes + BACKLIGHT_ENABLE = yes + VELOCIKEY_ENABLE = yes +endif diff --git a/layouts/community/ortho_4x12/bbaserdem/config.h b/layouts/community/ortho_4x12/bbaserdem/config.h new file mode 100755 index 0000000000..fb3ec1371b --- /dev/null +++ b/layouts/community/ortho_4x12/bbaserdem/config.h @@ -0,0 +1,26 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * 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 . + */ +#pragma once + +// Code pertaining to planck rev6 +#ifdef KEYBOARD_planck_rev6 + // Encoder I use; +# ifdef ENCODER_RESOLUTION +# undef ENCODER_RESOLUTION +# endif +# define ENCODER_RESOLUTION 2 +#endif diff --git a/layouts/community/ortho_4x12/bbaserdem/keymap.c b/layouts/community/ortho_4x12/bbaserdem/keymap.c new file mode 100755 index 0000000000..91ddc61764 --- /dev/null +++ b/layouts/community/ortho_4x12/bbaserdem/keymap.c @@ -0,0 +1,88 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * 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 . + */ +#include QMK_KEYBOARD_H +#include "bbaserdem.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // Base layer + [_BASE] = LAYOUT_ortho_4x12_wrapper( + _BL1_5_,_BL1_1_,_BR1_1_,_BR1_5_, + _BL2_5_,_BL2_1_,_BR2_1_,_BR2_5_, + _BL3_5_,_BL3_1_,_BR3_1_,_BR3_5_, + BB_ENC0,KC_DOWN,KC_UP, _BL4_3_,_BR4_3_,KC_LEFT,KC_RGHT,RGB_TOG + ), + // Extra characters overlay + [_CHAR] = LAYOUT_ortho_4x12_wrapper( + _CL1_5_,xxx2xxx,_CR1_5_, + _CL2_5_,xxx2xxx,_CR2_5_, + _CL3_5_,xxx2xxx,_CR3_5_, + ___3___,_CL4_3_,_CR4_3_,___3___ + ), + // Game layer: left_half + [_GAME] = LAYOUT_ortho_4x12_wrapper( + _GA1_5_,_GA1_1_,___6___, + _GA2_5_,_GA2_1_,___6___, + _GA3_5_,_GA3_1_,___6___, + ___3___,_GA4_3_,___6___ + ), + // Media layer: right_half + [_MEDI] = LAYOUT_ortho_4x12_wrapper( + ___6___,xxx1xxx,_ME1_5_, + ___6___,xxx1xxx,_ME2_5_, + ___6___,xxx1xxx,_ME3_5_, + ___6___,_ME4_3_,___3___ + ), + // Navigation layer: right_half + [_NAVI] = LAYOUT_ortho_4x12_wrapper( + ___6___,xxx1xxx,_NA1_5_, + ___6___,xxx1xxx,_NA2_5_, + ___6___,xxx1xxx,_NA3_5_, + ___6___,_NA4_3_,___3___ + ), + // Symbol layer: right_half + [_SYMB] = LAYOUT_ortho_4x12_wrapper( + ___6___,xxx1xxx,_SY1_5_, + ___6___,xxx1xxx,_SY2_5_, + ___6___,xxx1xxx,_SY3_5_, + ___6___,_SY4_3_,___3___ + ), + // Number layer: left_half + [_NUMB] = LAYOUT_ortho_4x12_wrapper( + xxx1xxx,_NU1_5_,___6___, + xxx1xxx,_NU2_5_,___6___, + xxx1xxx,_NU3_5_,___6___, + ___3___,_NU4_3_,___6___ + ), + // Function layer: left_half + [_FUNC] = LAYOUT_ortho_4x12_wrapper( + _FU1_5_,xxx1xxx,___6___, + _FU2_5_,xxx1xxx,___6___, + _FU3_5_,xxx1xxx,___6___, + ___3___,_FU4_3_,___6___ + ), + // Mouse layer: left_half + [_MOUS] = LAYOUT_ortho_4x12_wrapper( + _MO1_5_,xxx1xxx,___6___, + _MO2_5_,xxx1xxx,___6___, + _MO3_5_,xxx1xxx,___6___, + ___3___,_MO4_3_,___6___ + ), + // Music layer: everything + [_MUSI] = LAYOUT_ortho_4x12_wrapper( + _MU_12_,_MU_12_,_MU_12_, + ___1___,_MU_02_,_MUL_3_,_MUR_3_,_MU_02_,___1___) +}; diff --git a/layouts/community/ortho_4x12/bbaserdem/readme.md b/layouts/community/ortho_4x12/bbaserdem/readme.md new file mode 100644 index 0000000000..5eb6548574 --- /dev/null +++ b/layouts/community/ortho_4x12/bbaserdem/readme.md @@ -0,0 +1,12 @@ +This folder contains my [4x12\_ortho](../../../default/ortho_4x12) board layouts +Check out the [user readme](../../../../users/bbaserdem/readme.md) for more info. + +# Planck Light + +I use a couple [planck](../../../../keyboards/planck/readme.md) keyboards. +To sell soon; don't use them anymore, but will keep the light version. + +# JJ40 + +A planck rev4 replacement; for my acrylic planck case which used to host a now +defunct rev4. diff --git a/layouts/community/ortho_4x12/bbaserdem/rules.mk b/layouts/community/ortho_4x12/bbaserdem/rules.mk new file mode 100755 index 0000000000..b3ce684315 --- /dev/null +++ b/layouts/community/ortho_4x12/bbaserdem/rules.mk @@ -0,0 +1,26 @@ + +# Copyright 2021 Batuhan Başerdem +# @bbaserdem +# +# 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 . + +# Planck rev6 has both RGBLIGHT and RGB_MATRIX enabled +ifneq (,$(findstring planck/rev6,$(KEYBOARD))) + RGB_MATRIX_ENABLE = yes + RGBLIGHT_ENABLE = no +endif +# JJ40 here +ifneq (,$(findstring jj40,$(KEYBOARD))) + RGB_MATRIX_ENABLE = yes +endif diff --git a/layouts/community/split_3x5_3/bbaserdem/config.h b/layouts/community/split_3x5_3/bbaserdem/config.h new file mode 100644 index 0000000000..6bb3515b9e --- /dev/null +++ b/layouts/community/split_3x5_3/bbaserdem/config.h @@ -0,0 +1,35 @@ + +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * 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 . + */ +#pragma once + +// Split definition; use the following to flash; +// pro-micro: avrdude-split-left/right +// elite-c: dfu-split-left/right +#define EE_HANDS + +#ifdef KEYBOARD_crkbd_rev1 + // Corne overrides +# ifdef RGBLED_NUM +# undef RGBLED_NUM +# endif +# ifdef DRIVER_LED_TOTAL +# undef DRIVER_LED_TOTAL +# endif +# define RGBLED_NUM 48 +# define DRIVER_LED_TOTAL RGBLED_NUM +#endif // KEYBOARD_crkbd_rev1 diff --git a/layouts/community/split_3x5_3/bbaserdem/keymap.c b/layouts/community/split_3x5_3/bbaserdem/keymap.c new file mode 100644 index 0000000000..f39a81082e --- /dev/null +++ b/layouts/community/split_3x5_3/bbaserdem/keymap.c @@ -0,0 +1,117 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * 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 . + */ + +#include QMK_KEYBOARD_H +#include "bbaserdem.h" + +/* D layout + * ┌───┬───┬───┬───┬───┐        ┌───┬───┬───┬───┬───┐ + * │' "│, <│. >│ P │ Y │        │ F │ G │ C │ R │ L │ + * ├───┼───┼───┼───┼───┤        ├───┼───┼───┼───┼───┤ + * │ A │ O │ E │ U │ I │        │ D │ H │ T │ N │ S │ + * ├───┼───┼───┼───┼───┤        ├───┼───┼───┼───┼───┤ + * │; :│ Q │ J │ K │ X │        │ B │ M │ W │ V │ Z │ + * └───┴───┴───┼───┼───┼───┐ ┌───┼───┼───┼───┴───┴───┘ + *            │Del│Tab│Spc│ │Ent│Esc│Bsp│ + *            └───┴───┴───┘ └───┴───┴───┘ + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_split_3x5_3_wrapper( + _BL1_5_,_BR1_5_, + _BL2_5_,_BR2_5_, + _BL3_5_,_BR3_5_, + _BL4_3_,_BR4_3_ + ), + [_CHAR] = LAYOUT_split_3x5_3_wrapper( + _CL1_5_,_CR1_5_, + _CL2_5_,_CR2_5_, + _CL3_5_,_CR3_5_, + _CL4_3_,_CR4_3_ + ), + [_GAME] = LAYOUT_split_3x5_3_wrapper( + _GA1_5_,___5___, + _GA2_5_,___5___, + _GA3_5_,___5___, + _GA4_3_,___3___ + ), + [_MEDI] = LAYOUT_split_3x5_3_wrapper( + ___5___,_ME1_5_, + ___5___,_ME2_5_, + ___5___,_ME3_5_, + ___3___,_ME4_3_ + ), + [_NAVI] = LAYOUT_split_3x5_3_wrapper( + ___5___,_NA1_5_, + ___5___,_NA2_5_, + ___5___,_NA3_5_, + ___3___,_NA4_3_ + ), + [_SYMB] = LAYOUT_split_3x5_3_wrapper( + ___5___,_SY1_5_, + ___5___,_SY2_5_, + ___5___,_SY3_5_, + ___3___,_SY4_3_ + ), + [_NUMB] = LAYOUT_split_3x5_3_wrapper( + _NU1_5_,___5___, + _NU2_5_,___5___, + _NU3_5_,___5___, + _NU4_3_,___3___ + ), + [_FUNC] = LAYOUT_split_3x5_3_wrapper( + _FU1_5_,___5___, + _FU2_5_,___5___, + _FU3_5_,___5___, + _FU4_3_,___3___ + ), + [_MOUS] = LAYOUT_split_3x5_3_wrapper( + _MO1_5_,___5___, + _MO2_5_,___5___, + _MO3_5_,___5___, + _MO4_3_,___3___ + ), + [_MUSI] = LAYOUT_split_3x5_3_wrapper( + _MU_10_, + _MU_10_, + _MU_10_, + _MUL_3_,_MUR_3_ + ) +}; + +// RGB Matrix configuration +#ifdef RGB_MATRIX_ENABLE + +// crkbd +#ifdef KEYBOARD_crkbd_rev1 +/* This is left-right for crkbd indicator light + * ┌──┬──┬──┬──┬──┐      ┌──┬──┬──┬──┬──┐ + * │23│18│17│10│09│      │33│34│41│42│47│ + * ├02┼──┼01┼──┼00┤      ├24┼──┼25┼──┼26┤ + * │22│19│16│11│08│     │32│35│40│43│46│ + * ├03┼──┼04┼──┼05┤      ├29┼──┼28┼──┼27┤ + * │21│20│15│12│07│     │31│36│39│44│45│ + * └──┴──┴──┼──┼──┼──┐┌──┼──┼──┼──┴──┴──┘ + *          │14│13│06││30│37│38│ + *          └──┴──┴──┘└──┴──┴──┘ + */ + +// End of differentiations +#endif // KEYBOARD_crkbd_rev1 + +// End of code for the RGB_MATRIX setup +#endif // RGB_MATRIX_ENABLE diff --git a/layouts/community/split_3x5_3/bbaserdem/readme.md b/layouts/community/split_3x5_3/bbaserdem/readme.md new file mode 100644 index 0000000000..30cacd85ea --- /dev/null +++ b/layouts/community/split_3x5_3/bbaserdem/readme.md @@ -0,0 +1,18 @@ +This folder contains my [split\_3x5\_3](../../../default/split_3x5_3) board layouts +Check out the [user readme](../../../../users/bbaserdem/readme.md) for more info. + +# Crkbd + +Using a no 6th column crkbd (rev 2.1 choc) as a mobile keyboard. + +This version uses ProMicro as controllers; can't have OLED and RGB at the same time. + +## Build + +QMK cli commands no longer works with Archlinux (2021 Sep.) on my PC for flashing promicro. +In the past; I used to flash Pro Micro explicitly using the following line, for referance. + +``` +sudo avrdude -p atmgea34u4 -P "$(ls /dev/ttyACM*)" -c avr109 -D -U flash:w:.hex +``` + diff --git a/layouts/community/split_3x5_3/bbaserdem/rules.mk b/layouts/community/split_3x5_3/bbaserdem/rules.mk new file mode 100644 index 0000000000..047629b401 --- /dev/null +++ b/layouts/community/split_3x5_3/bbaserdem/rules.mk @@ -0,0 +1,22 @@ +# Copyright 2021 Batuhan Başerdem +# @bbaserdem +# +# 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 . + +# Corne keyboard +ifneq (,$(findstring crkbd/rev1,$(KEYBOARD))) + RGBLIGHT_ENABLE = no + RGB_MATRIX_ENABLE = yes + OLED_ENABLE = no +endif diff --git a/layouts/community/split_3x6_3/bbaserdem/chconf.h b/layouts/community/split_3x6_3/bbaserdem/chconf.h new file mode 100644 index 0000000000..4c6d15441f --- /dev/null +++ b/layouts/community/split_3x6_3/bbaserdem/chconf.h @@ -0,0 +1,23 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * 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 . + */ + +// Code pertaining the ARM crkbd version +#ifdef KEYBOARD_crkbd_rev1 +# define CH_CFG_ST_RESOLUTION 16 +# define CH_CFG_ST_FREQUENCY 10000 +# include_next "chconf.h" +#endif // KEYBOARD_crkbd_rev1 diff --git a/layouts/community/split_3x6_3/bbaserdem/config.h b/layouts/community/split_3x6_3/bbaserdem/config.h new file mode 100644 index 0000000000..adf707d1ba --- /dev/null +++ b/layouts/community/split_3x6_3/bbaserdem/config.h @@ -0,0 +1,77 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * 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 . + */ +#pragma once +// Split definition; use the following to flash; +// pro-micro: avrdude-split-left/right +// elite-c: dfu-split-left/right + +// Code pertaining to Corne ARM; from Waffle's keymap +#ifdef KEYBOARD_crkbd_rev1 + // Use EE_HANDS to determine handedness +# define EE_HANDS + + // Rebrand the PCB +# undef PRODUCT +# define PRODUCT Protorne Keyboard +# undef MANUFACTURER +# define MANUFACTURER Waffles + + // Remove OLED definitions? +# undef USE_I2C +# undef SSD1306OLED + + // Audio output on pin A5 (actualy will be output on B1 using keymap init) +# ifdef AUDIO_ENABLE +# define AUDIO_PIN A5 +# define MUSIC_MAP +# endif + + // Set serial pin as D3 for sure +# undef SOFT_SERIAL_PIN +# define SOFT_SERIAL_PIN D3 +# define SERIAL_USART_SPEED 921600 +# define SERIAL_USART_DRIVER SD1 +# define SERIAL_USART_TX_PAL_MODE 7 + + // Things to make RGB matrix work on the waffle board +# undef RGBLED_NUM +# define RGBLED_NUM 54 +# undef RGB_DI_PIN +# define RGB_DI_PIN B5 +# ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 100 +# define RGB_MATRIX_SPLIT { 27, 27 } +# endif +# define WS2812_PWM_DRIVER PWMD3 +# define WS2812_PWM_CHANNEL 3 +# define WS2812_PWM_PAL_MODE 2 +# define WS2812_DMA_STREAM STM32_DMA1_STREAM3 +# define WS2812_DMA_CHANNEL 3 + + // OLED related code +# ifdef OLED_ENABLE +# define OLED_UPDATE_INTERVAL 100 +# endif + + // Encoder definitons +# define ENCODERS_PAD_A { B2 } +# define ENCODERS_PAD_B { B6 } +# define ENCODER_RESOLUTIONS { 4 } +# define ENCODERS_PAD_A_RIGHT { B2 } +# define ENCODERS_PAD_B_RIGHT { B6 } +# define ENCODER_RESOLUTIONS_RIGHT { 2 } +#endif diff --git a/layouts/community/split_3x6_3/bbaserdem/halconf.h b/layouts/community/split_3x6_3/bbaserdem/halconf.h new file mode 100644 index 0000000000..f3978c4175 --- /dev/null +++ b/layouts/community/split_3x6_3/bbaserdem/halconf.h @@ -0,0 +1,24 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * 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 . + */ +#pragma once + +#ifdef KEYBOARD_crkbd_rev1 + // #define HAL_USE_DAC TRUE +# define HAL_USE_PWM TRUE +# define HAL_USE_SERIAL TRUE +# include_next +#endif diff --git a/layouts/community/split_3x6_3/bbaserdem/keymap.c b/layouts/community/split_3x6_3/bbaserdem/keymap.c new file mode 100644 index 0000000000..589b8eda0c --- /dev/null +++ b/layouts/community/split_3x6_3/bbaserdem/keymap.c @@ -0,0 +1,191 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * 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 . + */ +#include QMK_KEYBOARD_H +#include "bbaserdem.h" + +#ifdef KEYBOARD_crkbd_rev1 +# include "bb-oled-extra.h" +#endif // KEYBOARD_crkbd_rev1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_split_3x6_3_wrapper( + BB_ENC0,_BL1_5_,_BR1_5_,BB_ENC1, + _BL2_1_,_BL2_5_,_BR2_5_,_BR2_1_, + _BL3_1_,_BL3_5_,_BR3_5_,_BR3_1_, + _BL4_3_,_BR4_3_ + ), + [_CHAR] = LAYOUT_split_3x6_3_wrapper( + _______,_CL1_5_,_CR1_5_,_______, + XXXXXXX,_CL2_5_,_CR2_5_,XXXXXXX, + XXXXXXX,_CL3_5_,_CR3_5_,XXXXXXX, + _CL4_3_,_CR4_3_ + ), + [_GAME] = LAYOUT_split_3x6_3_wrapper( + _______,_GA1_5_,___6___, + _GA2_1_,_GA2_5_,___6___, + _GA3_1_,_GA3_5_,___6___, + _GA4_3_,___3___ + ), + [_MEDI] = LAYOUT_split_3x6_3_wrapper( + ___6___,_ME1_5_,_______, + ___6___,_ME2_5_,xxx1xxx, + ___6___,_ME3_5_,xxx1xxx, + ___3___,_ME4_3_ + ), + [_NAVI] = LAYOUT_split_3x6_3_wrapper( + ___6___,_NA1_5_,_______, + ___6___,_NA2_5_,xxx1xxx, + ___6___,_NA3_5_,xxx1xxx, + ___3___,_NA4_3_ + ), + [_SYMB] = LAYOUT_split_3x6_3_wrapper( + ___6___,_SY1_5_,_______, + ___6___,_SY2_5_,xxx1xxx, + ___6___,_SY3_5_,xxx1xxx, + ___3___,_SY4_3_ + ), + [_NUMB] = LAYOUT_split_3x6_3_wrapper( + _______,_NU1_5_,___6___, + xxx1xxx,_NU2_5_,___6___, + xxx1xxx,_NU3_5_,___6___, + _NU4_3_,___3___ + ), + [_FUNC] = LAYOUT_split_3x6_3_wrapper( + _______,_FU1_5_,___6___, + xxx1xxx,_FU2_5_,___6___, + xxx1xxx,_FU3_5_,___6___, + _FU4_3_,___3___ + ), + [_MOUS] = LAYOUT_split_3x6_3_wrapper( + _______,_MO1_5_,___6___, + xxx1xxx,_MO2_5_,___6___, + xxx1xxx,_MO3_5_,___6___, + _MO4_3_,___3___ + ), + [_MUSI] = LAYOUT_split_3x6_3_wrapper( + _MU_12_, + _MU_12_, + _MU_12_, + _MUL_3_,_MUR_3_ + ) +}; + +// crkbd +#ifdef KEYBOARD_crkbd_rev1 +#ifdef AUDIO_ENABLE +const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_split_3x6_3( + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 0, 0, 0, 0, 0, 0 +); +#endif // AUDIO_ENABLE +void keyboard_pre_init_keymap(void) { +# ifdef AUDIO_ENABLE + //thank you to @sigprof for this + // Set audio pins to analog mode + palSetLineMode(A5, PAL_MODE_INPUT_ANALOG); + palSetLineMode(B1, PAL_MODE_INPUT_ANALOG); +# endif // AUDIO_ENABLE +# ifdef RGB_MATRIX_ENABLE + // Led locations are different on protorne; need to be fixed + g_led_config = (led_config_t) { { + // Logical Layout + // 0 1 2 3 4 5 COLS + // -LEFT ROWS + // 16 17 18 19 20 21 0 + // 15 14 13 12 11 10 1 + // 04 05 06 07 08 09 2 + // 03 02 01 3 + // -Right + // 21 20 19 18 17 16 4 + // 10 11 12 13 14 15 5 + // 09 08 07 06 05 04 6 + // 01 02 03 7 + { 15, 16, 17, 18, 19, 20}, + { 14, 13, 12, 11, 10, 9 }, + { 3, 4, 5, 6, 7, 8 }, + { NO_LED, NO_LED, NO_LED, 2, 1, 0 }, + { 47, 46, 45, 44, 43, 42 }, + { 36, 37, 38, 39, 40, 41 }, + { 35, 34, 33, 32, 31, 30 }, + { NO_LED, NO_LED, NO_LED, 27, 28, 29 } + }, { + // Physical Layout + // LEFT RIGHT + // 16 17 18 19 20 21 16 17 18 19 20 21 + // 24 23 22 24 23 22 + // 15 14 13 12 11 10 15 14 13 12 11 10 + // 25 27 + // 04 05 06 07 08 09 04 05 06 07 08 09 + // 26 27 25 26 + // 03 02 01 03 02 01 + { 95, 63 }, { 80, 58 }, { 60, 55 }, + { 0, 41 }, { 16, 42 }, { 33, 37 }, { 50, 35 }, { 68, 37 }, { 85, 39 }, + { 85, 21 }, { 68, 19 }, { 50, 13 }, { 33, 20 }, { 16, 24 }, { 0, 24 }, + { 0, 7 }, { 16, 7 }, { 33, 3 }, { 50, 0 }, { 68, 2 }, { 85, 4 }, + { 85, 16 }, { 50, 13 }, { 16, 20 }, { 16, 38 }, { 50, 48 }, { 85, 52 }, + { 164, 55 }, { 144, 58 }, { 129, 63 }, + { 139, 39 }, { 156, 37 }, { 174, 35 }, { 191, 37 }, { 208, 42 }, { 224, 41 }, + { 224, 24 }, { 208, 24 }, { 191, 20 }, { 174, 13 }, { 156, 19 }, { 139, 21 }, + { 139, 4 }, { 156, 2 }, { 174, 0 }, { 191, 3 }, { 208, 7 }, { 224, 7 }, + { 208, 20 }, { 174, 13 }, { 139, 16 }, { 139, 52 }, { 174, 48 }, { 208, 38 } + }, { + // (x---)8 stands for indicator + // (-x--)4 stands for per-key led + // (--x-)2 stands for underglow led + // (---1)1 stands for modifier key + 12, 12, 12, + 4, 4, 5, 4, 4, 4, + 4, 5, 5, 5, 5, 4, + 4, 4, 4, 4, 4, 4, + 10, 10, 10, 10, 10, 10, + 12, 12, 12, + 4, 4, 4, 5, 4, 4, + 4, 5, 5, 5, 5, 4, + 4, 4, 4, 4, 4, 4, + 10, 10, 10, 10, 10, 10 + } }; +# endif // RGB_MATRIX_ENABLE +} + +// Enable OPAMP1 as A5 → B1 follower +#ifdef AUDIO_ENABLE +void keyboard_post_init_keymap(void) { + OPAMP3->CSR = OPAMP3_CSR_VMSEL_1 | OPAMP3_CSR_VMSEL_0 | OPAMP3_CSR_VPSEL_0 | OPAMP3_CSR_OPAMP3EN; +} +#endif // AUDIO_ENABLE + +#ifdef OLED_ENABLE +// Flip the display on the right half +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_left()) { + return OLED_ROTATION_180; + } + return rotation; +} + +bool oled_task_keymap(void) { + if (is_keyboard_left()) { + render_status_left(0, 0); + } else { + render_status_right(0, 0); + } + return false; +} +#endif // OLED_ENABLE +#endif // KEYBOARD_crkbd_rev1 diff --git a/layouts/community/split_3x6_3/bbaserdem/mcuconf.h b/layouts/community/split_3x6_3/bbaserdem/mcuconf.h new file mode 100644 index 0000000000..bde80b316f --- /dev/null +++ b/layouts/community/split_3x6_3/bbaserdem/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * 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 . + */ +#pragma once + +#ifdef KEYBOARD_crkbd_rev1 +# include_next +# undef STM32_PWM_USE_TIM3 +# define STM32_PWM_USE_TIM3 TRUE +# undef STM32_SERIAL_USE_USART1 +# define STM32_SERIAL_USE_USART1 TRUE +#endif diff --git a/layouts/community/split_3x6_3/bbaserdem/readme.md b/layouts/community/split_3x6_3/bbaserdem/readme.md new file mode 100644 index 0000000000..c3dea2882f --- /dev/null +++ b/layouts/community/split_3x6_3/bbaserdem/readme.md @@ -0,0 +1,15 @@ +This folder contains my [split\_3x6\_3](../../../default/split_3x6_3) board layouts +Check out the [user readme](../../../../users/bbaserdem/readme.md) for more info. + +# Crkbd + +Using [this](https://github.com/ItsWaffIe/waffle_corne) Proton-C compatible PCB. + +Applying the similar keymap to [@waffle](https://github.com/ItsWaffIe/waffle_corne); +using their `crkbd:rev1:arm` build. + +## Build + +Build commands; + +* For ARM: `CFLAGS="-Wno-error=deprecated" qmk flash -kb crkdb/rev1 -km bbaserdem -bl dfu-util-split-{left,right}` diff --git a/layouts/community/split_3x6_3/bbaserdem/rules.mk b/layouts/community/split_3x6_3/bbaserdem/rules.mk new file mode 100644 index 0000000000..09619936da --- /dev/null +++ b/layouts/community/split_3x6_3/bbaserdem/rules.mk @@ -0,0 +1,47 @@ +# Copyright 2021 Batuhan Başerdem +# @bbaserdem +# +# 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 . + +# Corne keyboard; with ARM +ifneq (,$(findstring crkbd/rev1,$(KEYBOARD))) + # Proton C conversion + MCU = STM32F303 + CTPC = yes + # BOARD = QMK_PROTON_C + # BOOTLOADER = stm32-dfu + # My usual features + AUDIO_ENABLE = yes + BACKLIGHT_ENABLE = no + ENCODER_ENABLE = yes + RGB_MATRIX_ENABLE = yes + OLED_ENABLE = yes + # Features that take otherwise too much space + WPM_ENABLE = yes + NKRO_ENABLE = yes + # Config + SERIAL_DRIVER = usart + WS2812_DRIVER = pwm + AUDIO_DRIVER = dac_basic + SPLIT_KEYBOARD = yes + # These are from waffle + DEBUG_MATRIX_SCAN_RATE_ENABLE = no # output matrix scan rate in qmk console/qmk toolbox + QUANTUM_LIB_SRC += i2c_master.c #drivers/chibios/i2cmaster.h needs patch - see lines 27/28 + VIA_ENABLE = no + # COMMAND_ENABLE = no + # CONSOLE_ENABLE = no + # BOOTMAGIC_ENABLE = lite + # LTO_ENABLE = yes + # PIMORONI_TRACKBALL = no +endif diff --git a/layouts/community/split_3x6_3/bbaserdem/ssd1306.c b/layouts/community/split_3x6_3/bbaserdem/ssd1306.c new file mode 100644 index 0000000000..4983248555 --- /dev/null +++ b/layouts/community/split_3x6_3/bbaserdem/ssd1306.c @@ -0,0 +1,16 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * 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 . + */ -- cgit v1.2.3