1
0
Fork 0

Userspace and keymap update for user bbaserdem. (#14484)

This commit is contained in:
Batuhan Baserdem 2022-07-02 11:09:04 +00:00 committed by GitHub
parent f439fe6055
commit fd44341cbf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
74 changed files with 4723 additions and 1300 deletions

View file

@ -0,0 +1,21 @@
/*
Copyright 2019 Batuhan Başerdem <baserdem.batuhan@gmail.com> @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 <http://www.gnu.org/licenses/>.
*/
#pragma once
// Gherkin specific
#ifdef KEYBOARD_40percentclub_gherkin
#define MUSIC_MAP
#define RGB_DI_PIN F6
#define DRIVER_LED_TOTAL 10
#endif

View file

@ -0,0 +1,98 @@
/*
Copyright 2019 Batuhan Başerdem <baserdem.batuhan@gmail.com> @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 <http://www.gnu.org/licenses/>.
*/
#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

View file

@ -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" <FILL-IN-LATER>`

View file

@ -0,0 +1,23 @@
# Copyright 2019 Batuhan Başerdem <baserdem.batuhan@gmail.com> @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 <http://www.gnu.org/licenses/>.
# 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

View file

@ -0,0 +1,26 @@
/* Copyright 2021 Batuhan Başerdem
* <baserdem.batuhan@gmail.com> @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 <http://www.gnu.org/licenses/>.
*/
#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

View file

@ -0,0 +1,88 @@
/* Copyright 2021 Batuhan Başerdem
* <baserdem.batuhan@gmail.com> @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 <http://www.gnu.org/licenses/>.
*/
#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___)
};

View file

@ -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.

View file

@ -0,0 +1,26 @@
# Copyright 2021 Batuhan Başerdem
# <baserdem.batuhan@gmail.com> @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 <http://www.gnu.org/licenses/>.
# 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

View file

@ -0,0 +1,35 @@
/* Copyright 2021 Batuhan Başerdem
* <baserdem.batuhan@gmail.com> @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 <http://www.gnu.org/licenses/>.
*/
#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

View file

@ -0,0 +1,117 @@
/* Copyright 2021 Batuhan Başerdem
* <baserdem.batuhan@gmail.com> @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 <http://www.gnu.org/licenses/>.
*/
#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
*  
*            DelTabSpc EntEscBsp
*             
*/
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
*      
* 2318171009      3334414247
* 020100      242526
* 2219161108     3235404346
* 030405      292827
* 2120151207     3136394445
*
*          141306303738
*          
*/
// End of differentiations
#endif // KEYBOARD_crkbd_rev1
// End of code for the RGB_MATRIX setup
#endif // RGB_MATRIX_ENABLE

View file

@ -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:<hexfile>.hex
```

View file

@ -0,0 +1,22 @@
# Copyright 2021 Batuhan Başerdem
# <baserdem.batuhan@gmail.com> @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 <http://www.gnu.org/licenses/>.
# Corne keyboard
ifneq (,$(findstring crkbd/rev1,$(KEYBOARD)))
RGBLIGHT_ENABLE = no
RGB_MATRIX_ENABLE = yes
OLED_ENABLE = no
endif

View file

@ -0,0 +1,23 @@
/* Copyright 2021 Batuhan Başerdem
* <baserdem.batuhan@gmail.com> @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 <http://www.gnu.org/licenses/>.
*/
// 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

View file

@ -0,0 +1,77 @@
/* Copyright 2021 Batuhan Başerdem
* <baserdem.batuhan@gmail.com> @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 <http://www.gnu.org/licenses/>.
*/
#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

View file

@ -0,0 +1,24 @@
/* Copyright 2021 Batuhan Başerdem
* <baserdem.batuhan@gmail.com> @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 <http://www.gnu.org/licenses/>.
*/
#pragma once
#ifdef KEYBOARD_crkbd_rev1
// #define HAL_USE_DAC TRUE
# define HAL_USE_PWM TRUE
# define HAL_USE_SERIAL TRUE
# include_next <halconf.h>
#endif

View file

@ -0,0 +1,191 @@
/* Copyright 2021 Batuhan Başerdem
* <baserdem.batuhan@gmail.com> @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 <http://www.gnu.org/licenses/>.
*/
#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

View file

@ -0,0 +1,25 @@
/* Copyright 2021 Batuhan Başerdem
* <baserdem.batuhan@gmail.com> @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 <http://www.gnu.org/licenses/>.
*/
#pragma once
#ifdef KEYBOARD_crkbd_rev1
# include_next <mcuconf.h>
# undef STM32_PWM_USE_TIM3
# define STM32_PWM_USE_TIM3 TRUE
# undef STM32_SERIAL_USE_USART1
# define STM32_SERIAL_USE_USART1 TRUE
#endif

View file

@ -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}`

View file

@ -0,0 +1,47 @@
# Copyright 2021 Batuhan Başerdem
# <baserdem.batuhan@gmail.com> @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 <http://www.gnu.org/licenses/>.
# 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

View file

@ -0,0 +1,16 @@
/* Copyright 2021 Batuhan Başerdem
* <baserdem.batuhan@gmail.com> @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 <http://www.gnu.org/licenses/>.
*/