no totem around any longer
This commit is contained in:
parent
07c2dbdb35
commit
6cac2866d8
|
@ -1,58 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2022 GEIST <@geigeigeist>
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
|
||||||
/*#define VENDOR_ID 0x3A3C
|
|
||||||
#define PRODUCT_ID 0x0002
|
|
||||||
#define DEVICE_VER 0x0001
|
|
||||||
#define MANUFACTURER GEIST
|
|
||||||
#define PRODUCT TOTEM
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* key matrix size */
|
|
||||||
// Rows are doubled-up
|
|
||||||
#define MATRIX_ROWS 8
|
|
||||||
#define MATRIX_COLS 5
|
|
||||||
|
|
||||||
|
|
||||||
// wiring of each half
|
|
||||||
#define MATRIX_ROW_PINS { GP26, GP27, GP28, GP29 }
|
|
||||||
#define MATRIX_COL_PINS { GP6, GP7, GP3, GP4, GP2 }
|
|
||||||
#define DIODE_DIRECTION COL2ROW
|
|
||||||
|
|
||||||
|
|
||||||
//#define NO_ACTION_MACRO
|
|
||||||
//#define NO_ACTION_FUNCTION
|
|
||||||
|
|
||||||
#define DEBOUNCE 5
|
|
||||||
|
|
||||||
|
|
||||||
/* Serial settings */
|
|
||||||
#define USE_SERIAL
|
|
||||||
/* serial.c configuration for split keyboard */
|
|
||||||
#define SOFT_SERIAL_PIN GP0
|
|
||||||
//#define SPLIT_LAYER_STATE_ENABLE
|
|
||||||
//#define SPLIT_USB_DETECT
|
|
||||||
#define SERIAL_USE_MULTI_TRANSACTION
|
|
||||||
/* communication between sides */
|
|
||||||
#define SERIAL_PIO_USE_PIO1
|
|
||||||
|
|
||||||
|
|
||||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
|
||||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
|
|
@ -1,7 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#define HAL_USE_I2C TRUE
|
|
||||||
#define HAL_USE_PWM TRUE
|
|
||||||
#define HAL_USE_PAL TRUE
|
|
||||||
|
|
||||||
#include_next <halconf.h>
|
|
|
@ -1,54 +0,0 @@
|
||||||
{
|
|
||||||
"keyboard_name": "TOTEM",
|
|
||||||
"url": "https://github.com/GEIGEIGEIST/TOTEM",
|
|
||||||
"manufacturer": "GEIST",
|
|
||||||
"usb": {
|
|
||||||
"vid": "0x3A3C",
|
|
||||||
"pid": "0x0002",
|
|
||||||
"device_version": "0.3.0"
|
|
||||||
},
|
|
||||||
"layouts": {
|
|
||||||
"LAYOUT_split_3x5_3_1": {
|
|
||||||
"layout": [
|
|
||||||
{"x": 0.776, "y": 1.519, "w": 1.059, "r": -10},
|
|
||||||
{"x": 1.964, "y": 0.605, "w": 1.059, "r": -4},
|
|
||||||
{"x": 3.175, "y": 0, "w": 1.059},
|
|
||||||
{"x": 4.234, "y": 0.496, "w": 1.059},
|
|
||||||
{"x": 5.292, "y": 0.656, "w": 1.059},
|
|
||||||
{"x": 8.682, "y": 0.656, "w": 1.059},
|
|
||||||
{"x": 9.741, "y": 0.496, "w": 1.059},
|
|
||||||
{"x": 10.8, "y": 0, "w": 1.059},
|
|
||||||
{"x": 12.007, "y": 0.606, "w": 1.059, "r": 4},
|
|
||||||
{"x": 13.199, "y": 1.52, "w": 1.059, "r": 10},
|
|
||||||
{"x": 0.95, "y": 2.504, "w": 1.059, "r": -10},
|
|
||||||
{"x": 2.033, "y": 1.602, "w": 1.059, "r": -4},
|
|
||||||
{"x": 3.175, "y": 1, "w": 1.059},
|
|
||||||
{"x": 4.234, "y": 1.496, "w": 1.059},
|
|
||||||
{"x": 5.292, "y": 1.656, "w": 1.059},
|
|
||||||
{"x": 8.682, "y": 1.661, "w": 1.059},
|
|
||||||
{"x": 9.741, "y": 1.496, "w": 1.059},
|
|
||||||
{"x": 10.8, "y": 1, "w": 1.059},
|
|
||||||
{"x": 11.937, "y": 1.603, "w": 1.059, "r": 4},
|
|
||||||
{"x": 13.026, "y": 2.505, "w": 1.059, "r": 10},
|
|
||||||
{"x": 0, "y": 3.231, "w": 1.059, "r": -10},
|
|
||||||
{"x": 1.124, "y": 3.489, "w": 1.059, "r": -10},
|
|
||||||
{"x": 2.103, "y": 2.6, "w": 1.059, "r": -4},
|
|
||||||
{"x": 3.175, "y": 2, "w": 1.059},
|
|
||||||
{"x": 4.234, "y": 2.496, "w": 1.059},
|
|
||||||
{"x": 5.292, "y": 2.656, "w": 1.059},
|
|
||||||
{"x": 8.682, "y": 2.661, "w": 1.059},
|
|
||||||
{"x": 9.741, "y": 2.496, "w": 1.059},
|
|
||||||
{"x": 10.8, "y": 2, "w": 1.059},
|
|
||||||
{"x": 11.868, "y": 2.601, "w": 1.059, "r": 4},
|
|
||||||
{"x": 12.852, "y": 3.49, "w": 1.059, "r": 10},
|
|
||||||
{"x": 13.973, "y": 3.231, "w": 1.059, "r": 10},
|
|
||||||
{"x": 3.938, "y": 3.714, "w": 1.059},
|
|
||||||
{"x": 5.11, "y": 3.878, "w": 1.059, "r": 15},
|
|
||||||
{"x": 6.195, "y": 4.329, "w": 1.059, "r": 30},
|
|
||||||
{"x": 7.781, "y": 4.329, "w": 1.059, "r": -30},
|
|
||||||
{"x": 8.866, "y": 3.878, "w": 1.059, "r": -15},
|
|
||||||
{"x": 10.037, "y": 3.714, "w": 1.059}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
// our shared config parts
|
|
||||||
#include "/home/cullmann/data/qmk/christoph-cullmann/common/config.h"
|
|
||||||
|
|
||||||
// The way how "handedness" is decided (which half is which), see https://docs.qmk.fm/#/feature_split_keyboard?id=setting-handedness for more options.
|
|
||||||
#define MASTER_LEFT
|
|
|
@ -1,40 +0,0 @@
|
||||||
/*
|
|
||||||
▀▀▀▀▀ ▀▀▀▀▀ ▀▀█▀▀
|
|
||||||
▄▀▀▀▄ ▄ ▄▀▀▀▄ ▄ ▄▀▀▀▄ █ ▄▀▀▀▄
|
|
||||||
█ █ █ █ █ █ █ █ █ █ █
|
|
||||||
▀▀▀ █ ▀▀▀ █ ▀▀▀ ▀ ▀▀▀
|
|
||||||
█ ▄▄▄█▄▄▄ █ █
|
|
||||||
▀ █ █ █ █▄█
|
|
||||||
▀▀▀▀▀ █ █ █ ▀
|
|
||||||
▀ ▀ ▀ D E F A U L T
|
|
||||||
|
|
||||||
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
|
||||||
|
|
||||||
#include "totem.h"
|
|
||||||
|
|
||||||
// Returns true if `pos` on the left hand of the keyboard, false if right.
|
|
||||||
static bool on_left_hand(keypos_t pos) {
|
|
||||||
// works not really on planck for bottom row, but we handle that differently
|
|
||||||
return pos.row < MATRIX_ROWS / 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
// layout helper macro, we just use 34 keys
|
|
||||||
#undef LAYOUT
|
|
||||||
#define LAYOUT(\
|
|
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\
|
|
||||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\
|
|
||||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\
|
|
||||||
K30, K31, K32, K33\
|
|
||||||
)\
|
|
||||||
LAYOUT_split_3x5_3_1(\
|
|
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\
|
|
||||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\
|
|
||||||
KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_NO,\
|
|
||||||
KC_NO, K30, K31, K32, K33, KC_NO\
|
|
||||||
)
|
|
||||||
|
|
||||||
// our shared 34 keys keymap
|
|
||||||
#include "../../../common/keymap.h"
|
|
|
@ -1,6 +0,0 @@
|
||||||
# include common settings
|
|
||||||
include /home/cullmann/data/qmk/christoph-cullmann/common/rules.mk
|
|
||||||
|
|
||||||
# build
|
|
||||||
# qmk compile -kb totem -km default
|
|
||||||
# qmk flash -kb totem -km default
|
|
|
@ -1,9 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include_next <mcuconf.h>
|
|
||||||
|
|
||||||
#undef RP_PWM_USE_PWM4
|
|
||||||
#define RP_PWM_USE_PWM4 TRUE
|
|
||||||
|
|
||||||
#undef RP_PWM_USE_TIM1
|
|
||||||
#define RP_PWM_USE_TIM1 TRUE
|
|
|
@ -1,18 +0,0 @@
|
||||||
```
|
|
||||||
▀▀▀▀▀ ▀▀▀▀▀ ▀▀█▀▀
|
|
||||||
▄▀▀▀▄ ▄ ▄▀▀▀▄ ▄ ▄▀▀▀▄ █ ▄▀▀▀▄
|
|
||||||
█ █ █ █ █ █ █ █ █ █ █
|
|
||||||
▀▀▀ █ ▀▀▀ █ ▀▀▀ ▀ ▀▀▀
|
|
||||||
█ ▄▄▄█▄▄▄ █ █
|
|
||||||
▀ █ █ █ █▄█
|
|
||||||
▀▀▀▀▀ █ █ █ ▀
|
|
||||||
▀ ▀ ▀
|
|
||||||
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
|
|
||||||
|
|
||||||
```
|
|
||||||
# TOTEM split keyboard
|
|
||||||
|
|
||||||
TOTEM is 34 keys column-staggered split keyboard made by @geigeigeist. It uses the Seeed XIAO RP2040.
|
|
||||||
|
|
||||||
You can use this command to compile the firmware
|
|
||||||
`qmk compile -kb totem -km default`
|
|
|
@ -1,31 +0,0 @@
|
||||||
# MCU name
|
|
||||||
MCU = RP2040
|
|
||||||
|
|
||||||
# Bootloader selection
|
|
||||||
BOOTLOADER = rp2040
|
|
||||||
|
|
||||||
# Ignore some warnings during the build, likely to be fixed before RP2040 PR is merged
|
|
||||||
ALLOW_WARNINGS = yes
|
|
||||||
|
|
||||||
# LTO must be disabled for RP2040 builds
|
|
||||||
LTO_ENABLE = no
|
|
||||||
|
|
||||||
SPLIT_KEYBOARD = yes
|
|
||||||
SWAP_HANDS_ENABLE = yes
|
|
||||||
|
|
||||||
# PIO serial/WS2812 drivers must be used on RP2040
|
|
||||||
SERIAL_DRIVER = vendor
|
|
||||||
WS2812_DRIVER = vendor
|
|
||||||
|
|
||||||
#SPACE SAVING
|
|
||||||
EXTRAKEY_ENABLE = no
|
|
||||||
AUDIO_ENABLE = no
|
|
||||||
MUSIC_ENABLE = no
|
|
||||||
LTO_ENABLE = no
|
|
||||||
CONSOLE_ENABLE = no
|
|
||||||
COMMAND_ENABLE = no
|
|
||||||
MOUSEKEY_ENABLE = no
|
|
||||||
SPACE_CADET_ENABLE = no
|
|
||||||
GRAVE_ESC_ENABLE = no
|
|
||||||
MAGIC_ENABLE = no
|
|
||||||
|
|
|
@ -1,56 +0,0 @@
|
||||||
/* Copyright 2022
|
|
||||||
* GEIST @geigeigeist
|
|
||||||
*
|
|
||||||
* 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 "totem.h"
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef SWAP_HANDS_ENABLE
|
|
||||||
|
|
||||||
__attribute__ ((weak))
|
|
||||||
const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] =
|
|
||||||
// The LAYOUT macro could work for this, but it was harder to figure out the
|
|
||||||
// identity using it.
|
|
||||||
|
|
||||||
// This is the identity layout.
|
|
||||||
/*
|
|
||||||
{ \
|
|
||||||
{ {0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0} }, \
|
|
||||||
{ {0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1} }, \
|
|
||||||
{ {0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2} }, \
|
|
||||||
{ {0, 3}, {2, 3}, {3, 3}, {4, 3} }, \
|
|
||||||
\
|
|
||||||
{ {0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4} }, \
|
|
||||||
{ {0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5} }, \
|
|
||||||
{ {0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6} }, \
|
|
||||||
{ {0, 7}, {1, 7}, {2, 7}, {4, 7}, \
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
|
|
||||||
// This is the mirror, q <-> p, w <-> o, etc...
|
|
||||||
{ \
|
|
||||||
{ {4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4} }, \
|
|
||||||
{ {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5} }, \
|
|
||||||
{ {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6} }, \
|
|
||||||
{ {4, 7}, {2, 7}, {1, 7}, {0, 7} }, \
|
|
||||||
\
|
|
||||||
{ {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0} }, \
|
|
||||||
{ {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1} }, \
|
|
||||||
{ {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2} }, \
|
|
||||||
{ {4, 3}, {3, 3}, {2, 3}, {0, 3} }, \
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif //SWAP_HANDS_ENABLE
|
|
|
@ -1,56 +0,0 @@
|
||||||
/* Copyright 2022
|
|
||||||
* GEIST @geigeigeist
|
|
||||||
*
|
|
||||||
* 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"
|
|
||||||
|
|
||||||
/* This a shortcut to help you visually see your layout.
|
|
||||||
*
|
|
||||||
* The first section contains all of the arguments representing the physical
|
|
||||||
* layout of the board and position of the keys.
|
|
||||||
*
|
|
||||||
* The second converts the arguments into a two-dimensional array which
|
|
||||||
* represents the switch matrix.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// readability
|
|
||||||
#define ___ KC_NO
|
|
||||||
|
|
||||||
// |SW01|SW02|SW03|SW04|SW05| |SW05|SW04|SW03|SW02|SW01|
|
|
||||||
// |SW06|SW07|SW08|SW09|SW10| |SW10|SW09|SW08|SW07|SW06|
|
|
||||||
// |SW16|SW11|SW12|SW13|SW14|SW15| |SW15|SW14|SW13|SW12|SW11|SW16|
|
|
||||||
// |SW17|SW18|SW19| |SW19|SW18|SW17|
|
|
||||||
|
|
||||||
#define LAYOUT_split_3x5_3_1( \
|
|
||||||
L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \
|
|
||||||
L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \
|
|
||||||
L30, L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, R34,\
|
|
||||||
L32, L33, L34, R30, R31, R32 \
|
|
||||||
) \
|
|
||||||
{ \
|
|
||||||
{ L00, L01, L02, L03, L04 }, \
|
|
||||||
{ L10, L11, L12, L13, L14 }, \
|
|
||||||
{ L20, L21, L22, L23, L24 }, \
|
|
||||||
{ L30, ___, L32, L33, L34 }, \
|
|
||||||
{ R04, R03, R02, R01, R00 }, \
|
|
||||||
{ R14, R13, R12, R11, R10 }, \
|
|
||||||
{ R24, R23, R22, R21, R20 }, \
|
|
||||||
{ R34, ___, R32, R31, R30 }, \
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#define LAYOUT LAYOUT_split_3x5_3_1
|
|
Loading…
Reference in a new issue