no totem around any longer

This commit is contained in:
Christoph Cullmann 2024-06-15 14:42:47 +02:00
parent 07c2dbdb35
commit 6cac2866d8
11 changed files with 0 additions and 342 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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