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

El Cantor HS keyboard. 44 key diodeless split keyboard with support for hotswap sockets. Based on diepala/cantor. #22531

Merged
merged 42 commits into from
Dec 14, 2023
Merged
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
6679236
Initial upload.
azhizhinov Nov 22, 2023
ea3e169
Update readme.md
azhizhinov Nov 22, 2023
fd88601
Delete keyboards/elcantorhs/keymaps/zeromist directory
azhizhinov Nov 22, 2023
6fdc789
Adding folder for VIA.
azhizhinov Nov 22, 2023
805c3e1
Update readme.md
azhizhinov Nov 22, 2023
0228367
Update readme.md
azhizhinov Nov 22, 2023
9a9be33
Update readme.md
azhizhinov Nov 22, 2023
1eba38c
Update readme.md
azhizhinov Nov 22, 2023
5fb1ddb
Update readme.md
azhizhinov Nov 22, 2023
f9516b1
Update keymap.c
azhizhinov Nov 22, 2023
cbef8fe
Update info.json
azhizhinov Nov 22, 2023
c9b13af
Update info.json
azhizhinov Nov 22, 2023
185e28a
Update info.json
azhizhinov Nov 22, 2023
6792458
Update info.json
azhizhinov Nov 22, 2023
c2232db
Update keymap.c
azhizhinov Nov 22, 2023
080b2f0
Update keymap.c
azhizhinov Nov 22, 2023
4834cf2
Update keymap.c
azhizhinov Nov 22, 2023
6f9bbec
Update config.h
azhizhinov Nov 22, 2023
a7b6dc8
Update halconf.h
azhizhinov Nov 22, 2023
5b231bf
Update mcuconf.h
azhizhinov Nov 22, 2023
70f88ba
Create keymap.c
azhizhinov Nov 22, 2023
45dd419
Update info.json
azhizhinov Nov 22, 2023
396cf4c
Update keyboards/elcantorhs/readme.md
azhizhinov Nov 22, 2023
acd9f67
Update keyboards/elcantorhs/info.json
azhizhinov Nov 22, 2023
1c1681b
Update keyboards/elcantorhs/info.json
azhizhinov Nov 22, 2023
d4bb686
Update keyboards/elcantorhs/info.json
azhizhinov Nov 22, 2023
4d53a99
Update keyboards/elcantorhs/rules.mk
azhizhinov Nov 22, 2023
ed3bd55
Update keyboards/elcantorhs/info.json
azhizhinov Nov 22, 2023
4802011
Update keyboards/elcantorhs/config.h
azhizhinov Nov 22, 2023
687242b
Update readme.md
azhizhinov Nov 22, 2023
51751b1
Update keyboards/elcantorhs/info.json
azhizhinov Nov 22, 2023
03ac7e0
Update config.h
azhizhinov Nov 22, 2023
7b8a11c
Update halconf.h
azhizhinov Nov 22, 2023
c5a9e3a
Update keymap.c
azhizhinov Nov 22, 2023
b846d72
Update keymap.c
azhizhinov Nov 22, 2023
0793b50
Update mcuconf.h
azhizhinov Nov 22, 2023
64f5b02
Update keyboards/elcantorhs/readme.md
azhizhinov Nov 23, 2023
9f24796
Merge branch 'master' into elcantorhs-qmk
azhizhinov Nov 28, 2023
3b64143
Update readme.md
azhizhinov Nov 29, 2023
b567c94
Merge branch 'master' into elcantorhs-qmk
azhizhinov Nov 29, 2023
6e5a6e9
Update keyboards/elcantorhs/config.h
azhizhinov Dec 12, 2023
a899292
Merge branch 'master' into elcantorhs-qmk
azhizhinov Dec 12, 2023
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
34 changes: 34 additions & 0 deletions keyboards/elcantorhs/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/*
Copyright 2023 azhizhinov (@azhizhinov)
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

#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
#define SERIAL_USART_TX_PIN B6 // USART TX pin
#define SERIAL_USART_RX_PIN B7 // USART RX pin
azhizhinov marked this conversation as resolved.
Show resolved Hide resolved

/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/

/* disable debug print */
//#define NO_DEBUG

/* disable print */
//#define NO_PRINT

/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
azhizhinov marked this conversation as resolved.
Show resolved Hide resolved
18 changes: 18 additions & 0 deletions keyboards/elcantorhs/halconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/*
Copyright 2023 azhizhinov (@azhizhinov)
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

#define HAL_USE_SERIAL TRUE

#include_next <halconf.h>
95 changes: 95 additions & 0 deletions keyboards/elcantorhs/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
{
"manufacturer": "azhizhinov",
"keyboard_name": "EL-CANTOR-HS",
"maintainer": "azhizhinov",
"bootloader": "stm32-dfu",
azhizhinov marked this conversation as resolved.
Show resolved Hide resolved
"features": {
"bootmagic": true,
"command": false,
"console": false,
azhizhinov marked this conversation as resolved.
Show resolved Hide resolved
"extrakey": true,
"mousekey": true,
"nkro": true
},
"processor": "STM32F401",
"board": "BLACKPILL_STM32_F401",
azhizhinov marked this conversation as resolved.
Show resolved Hide resolved
"url": "https://github.com/diepala/cantor",
azhizhinov marked this conversation as resolved.
Show resolved Hide resolved
"usb": {
"device_version": "1.0.0",
"pid": "0x0001",
"vid": "0x415A"
},
"matrix_pins": {
"direct": [
["B1", "B10", "A8", "B15", "B14", "B13"],
["B9", "B8", "B5", "B4", "B3", "A15"],
["A3", "A4", "A5", "A6", "A7", "B0"],
["B12","A2", "A1", "A0", null, null]
]
},
"split": {
"bootmagic": {
azhizhinov marked this conversation as resolved.
Show resolved Hide resolved
"matrix": [4, 5]
},
"matrix_pins": {
"right": {
"direct": [
["B13", "B14", "B15", "A8", "B10", "B1"],
["A15", "B3", "B4", "B5", "B8", "B9"],
["B0", "A7", "A6", "A5", "A4", "A3"],
["A0", "A1", "A2", "B12", null, null]
]
}
}
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.25},
{"matrix": [0, 1], "x": 1, "y": 0.25},
{"matrix": [0, 2], "x": 2, "y": 0.125},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0.125},
{"matrix": [0, 5], "x": 5, "y": 0.25},
{"matrix": [4, 0], "x": 8, "y": 0.25},
{"matrix": [4, 1], "x": 9, "y": 0.125},
{"matrix": [4, 2], "x": 10, "y": 0},
{"matrix": [4, 3], "x": 11, "y": 0.125},
{"matrix": [4, 4], "x": 12, "y": 0.25},
{"matrix": [4, 5], "x": 13, "y": 0.25},
{"matrix": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"matrix": [1, 2], "x": 2, "y": 1.125},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1.125},
{"matrix": [1, 5], "x": 5, "y": 1.25},
{"matrix": [5, 0], "x": 8, "y": 1.25},
{"matrix": [5, 1], "x": 9, "y": 1.125},
{"matrix": [5, 2], "x": 10, "y": 1},
{"matrix": [5, 3], "x": 11, "y": 1.125},
{"matrix": [5, 4], "x": 12, "y": 1.25},
{"matrix": [5, 5], "x": 13, "y": 1.25},
{"matrix": [2, 0], "x": 0, "y": 2.25},
{"matrix": [2, 1], "x": 1, "y": 2.25},
{"matrix": [2, 2], "x": 2, "y": 2.125},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2.125},
{"matrix": [2, 5], "x": 5, "y": 2.25},
{"matrix": [6, 0], "x": 8, "y": 2.25},
{"matrix": [6, 1], "x": 9, "y": 2.125},
{"matrix": [6, 2], "x": 10, "y": 2},
{"matrix": [6, 3], "x": 11, "y": 2.125},
{"matrix": [6, 4], "x": 12, "y": 2.25},
{"matrix": [6, 5], "x": 13, "y": 2.25},
{"matrix": [3, 0], "x": 2.5, "y": 3},
{"matrix": [3, 1], "x": 3.5, "y": 3.25},
{"matrix": [3, 2], "x": 4.5, "y": 3.5},
{"matrix": [3, 3], "x": 5.5, "y": 3.75},
{"matrix": [7, 0], "x": 7.5, "y": 3.75},
{"matrix": [7, 1], "x": 8.5, "y": 3.5},
{"matrix": [7, 2], "x": 9.5, "y": 3.25},
{"matrix": [7, 3], "x": 10.5, "y": 3}
]
}
}
}
41 changes: 41 additions & 0 deletions keyboards/elcantorhs/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/*
Copyright 2023 azhizhinov (@azhizhinov)
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

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_TAB, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RBRC,
KC_LALT, KC_LSFT, MO(1), KC_BSPC, KC_ENT, MO(2), KC_SPC, RCTL(KC_BSPC)
),
[1] = LAYOUT(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_UP, KC_RGHT, KC_NO, KC_HOME, KC_NO,
KC_LSFT, KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DOWN, KC_NO, KC_NO, KC_END, KC_RALT,
KC_LALT, KC_LGUI, KC_TRNS, KC_ESC, KC_ENT, MO(3), KC_SPC, RCTL(KC_BSPC)
),
[2] = LAYOUT(
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
KC_LCTL, KC_BSPC, KC_C, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_LSFT, KC_X, KC_V, KC_S, KC_L, KC_NO, KC_UNDS, KC_PLUS, KC_PMNS, KC_NO, KC_NO, KC_RALT,
KC_LALT, KC_LGUI, MO(3), KC_ESC, KC_ENT, KC_TRNS, KC_SPC, RCTL(KC_BSPC)
),
[3] = LAYOUT(
KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV,
KC_LSFT, KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_RALT,
KC_LALT, KC_LGUI, KC_TRNS, KC_ESC, KC_ENT, KC_TRNS, KC_SPC, RCTL(KC_BSPC)
)
};
41 changes: 41 additions & 0 deletions keyboards/elcantorhs/keymaps/via/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/*
Copyright 2023 azhizhinov (@azhizhinov)
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

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_TAB, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RBRC,
KC_LALT, KC_LSFT, MO(1), KC_BSPC, KC_ENT, MO(2), KC_SPC, RCTL(KC_BSPC)
),
[1] = LAYOUT(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_UP, KC_RGHT, KC_NO, KC_HOME, KC_NO,
KC_LSFT, KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DOWN, KC_NO, KC_NO, KC_END, KC_RALT,
KC_LALT, KC_LGUI, KC_TRNS, KC_ESC, KC_ENT, MO(3), KC_SPC, RCTL(KC_BSPC)
),
[2] = LAYOUT(
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
KC_LCTL, KC_BSPC, KC_C, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_LSFT, KC_X, KC_V, KC_S, KC_L, KC_NO, KC_UNDS, KC_PLUS, KC_PMNS, KC_NO, KC_NO, KC_RALT,
KC_LALT, KC_LGUI, MO(3), KC_ESC, KC_ENT, KC_TRNS, KC_SPC, RCTL(KC_BSPC)
),
[3] = LAYOUT(
KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV,
KC_LSFT, KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_RALT,
KC_LALT, KC_LGUI, KC_TRNS, KC_ESC, KC_ENT, KC_TRNS, KC_SPC, RCTL(KC_BSPC)
)
};
1 change: 1 addition & 0 deletions keyboards/elcantorhs/keymaps/via/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
VIA_ENABLE = yes
19 changes: 19 additions & 0 deletions keyboards/elcantorhs/mcuconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
Copyright 2023 azhizhinov (@azhizhinov)
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_next <mcuconf.h>

#undef STM32_SERIAL_USE_USART1
#define STM32_SERIAL_USE_USART1 TRUE
30 changes: 30 additions & 0 deletions keyboards/elcantorhs/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# El Cantor HS

![El Cantor HS](https://github.com/azhizhinov/ELCANTORHS/blob/main/Pictures/20231122.AZHIZHINOV.ELCANTORHS.00.png)
azhizhinov marked this conversation as resolved.
Show resolved Hide resolved

The El Cantor HS keyboard is a 43 key diodeless split keyboard with support for hotswap sockets, designed with simplicity in mind. It is based on the popular [cantor](https://github.com/diepala/cantor), which is inspired on the popular [corne](https://github.com/foostan/crkbd), [ferris](https://github.com/pierrechevalier83/ferris) and [sweep](https://github.com/davidphilipbarr/Sweep) keyboards, aiming to provide a more ergonomic (stronger column stagger) corne-like layout with a simple, easy to assemble and cheap design.
azhizhinov marked this conversation as resolved.
Show resolved Hide resolved

* Keyboard Maintainer: [azhizhinov](https://github.com/azhizhinov)
* Hardware Supported: Blackpill STM32F401
* Hardware Availability: https://github.com/diepala/cantor
azhizhinov marked this conversation as resolved.
Show resolved Hide resolved

Make example for this keyboard (after setting up your build environment):

make elcantorhs:default

Flashing example for this keyboard:

make elcantorhs:default:flash

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

## Bootloader

Enter the bootloader in 3 ways:

* **Bootmagic reset**: Hold down the top left key and plug in the keyboard. For the right side, hold the top right key and plug the keyboard.
* **Physical reset button**:
* Press and hold the BOOT0 button.
* Press and release the NRST button.
* Release the BOOT0 button.
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
2 changes: 2 additions & 0 deletions keyboards/elcantorhs/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
SPLIT_KEYBOARD = yes
azhizhinov marked this conversation as resolved.
Show resolved Hide resolved
SERIAL_DRIVER = usart