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

[keyboard] bastardkb: restructure folder hierarchy #16778

Merged
merged 34 commits into from
Jul 25, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
7ffa2ae
bastardkb: restructure folder hierarchy ahead of supporting other ada…
0xcharly Apr 3, 2022
80e384c
bastardkb/charybdis: remove broken acceleration implementation
0xcharly Apr 3, 2022
3c8caa1
bastardkb/charybdis: fix debug output
0xcharly Apr 3, 2022
3dce4e7
bastardkb: add support for BastardKb the `v2/elitec` (adapter, mcu) pair
0xcharly Mar 2, 2022
15af488
bastardkb: add Blackpill support
0xcharly Apr 6, 2022
108cf92
bastardkb/charybdis/3x5: add `bstiq` keymap
0xcharly Feb 27, 2022
ddf5089
bastardkb/charybdis: add fake LEDs to the configuration
0xcharly Apr 3, 2022
b09f7f3
bastardkbk/charybdis/readme.md: update build commands
Apr 6, 2022
69caa60
bastardkb/charybdis: fix Via keymap with blackpill
0xcharly Apr 28, 2022
7bc3810
bastardkb/charybdis: add 3x6 configuration
0xcharly Apr 26, 2022
3fcac32
bastardkb/charybdis: remove unnecessary files
0xcharly Apr 28, 2022
2945e28
bastardkb/charybdis: remove obsolete code
0xcharly Apr 28, 2022
1155232
bastardkb/charybdis/3x6: add Via keymap
0xcharly Apr 28, 2022
c697cf4
bastardkb: add support for Splinky (RP2040) board
0xcharly Apr 14, 2022
b5ed75f
bastardkb: initial configuration for the Splinky (SPI not working yet)
0xcharly Apr 16, 2022
34eee1f
bastardkb/charybdis/3x5/v2/splinky: tentative change to enable trackball
0xcharly Apr 26, 2022
1119fbb
bastardkb/charybdis/3x5/v2/splinky: fix SCK, MISO, MOSI pins
0xcharly Apr 26, 2022
e5ad812
bastardkb/charybdis/3x5/v2/splinky: fix SCK, MISO, MOSI pins
0xcharly Apr 27, 2022
79c9612
bastardkb/charybdis/4x6/v2/splinky: add SPI configuration and enable …
0xcharly Apr 27, 2022
2231fbf
bastardkb/charybdis/3x6: add splinky config
0xcharly Apr 28, 2022
006afbd
bastardkb/*/v2/splinky: update drivers to `vendor`
Jun 5, 2022
fd83c7a
bastardkb/dilemma: add new board
Jul 2, 2022
b2d3a33
bastardkb/charybdis: fix infinite loop in `layer_state_set_user(…)` i…
Jul 2, 2022
71a969a
bastardkb/dilemma: add `bstiq` keymap
Jul 4, 2022
41df259
bastardkb: specify blackpill boards
0xcharly Jul 5, 2022
52e6883
bastardkb/charybdis: fix blackpill-specific define syntax
0xcharly Jul 5, 2022
f4ca92d
bastardkb: remove `NO_ACTION_MACRO` and `NO_ACTION_FUNCTION` which ar…
0xcharly Jul 5, 2022
3d6e03e
bastardkb: fix `QK_BOOT` keycodes
0xcharly Jul 5, 2022
127c2ef
bastardkb/dilemma: fix mouse direction on X axis
Jul 5, 2022
ed9033f
bastardkb/charybdis/3x6: adjust CS
Jul 20, 2022
4b73cea
bastardkb/dilemma: adjust trackpad configuration
Jul 20, 2022
55bd457
charybdis: fix `PWM33XX_CS_PIN` defines
Jul 23, 2022
4d0ab1a
bastardkb: remove Vial mentions from `bstiq` keymaps
0xcharly Jul 25, 2022
dc4424e
Cleanup unnecessary comments
0xcharly Jul 25, 2022
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
8 changes: 6 additions & 2 deletions keyboards/bastardkb/charybdis/3x5/3x5.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@
* ╰────────────────────╯ ╰────────────────────╯
* 15 16 17 33 34 XX
* ╰────────────╯ ╰────────────╯
*
* Note: the LED config simulates 36 LEDs instead of the actual 35 to prevent
* confusion when testing LEDs during assembly when handedness is not set
* correctly. Those fake LEDs are bound to the physical top-left corner.
*/
led_config_t g_led_config = { {
/* Key Matrix to LED index. */
Expand Down Expand Up @@ -61,7 +65,7 @@ led_config_t g_led_config = { {
/* index=24 */ { 188, 42 }, { 188, 21 }, { 188, 0 },
/* index=27 */ { 170, 0 }, { 170, 21 }, { 170, 42 },
/* index=30 */ { 152, 0 }, { 152, 21 }, { 152, 42 },
/* index=33 */ { 152, 64 }, { 134, 64 },
/* index=33 */ { 134, 64 }, { 152, 64 }, { 0, 0 },
}, {
/* LED index to flag. */
// Left split.
Expand All @@ -77,7 +81,7 @@ led_config_t g_led_config = { {
/* index=24 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
/* index=27 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
/* index=30 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
/* index=33 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // Thumb cluster
/* index=33 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // Thumb cluster
} };
#endif
// clang-format on
62 changes: 62 additions & 0 deletions keyboards/bastardkb/charybdis/3x5/blackpill/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
/*
* Copyright 2020 Christopher Courtney <[email protected]> (@drashna)
* Copyright 2021 Stefan Kerkmann (@KarlK90)
* Copyright 2021 Charly Delay <[email protected]> (@0xcharly)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Publicw 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

/* Key matrix configuration. */
#define MATRIX_ROW_PINS \
{ A2, B8, A8, B9 }
#define MATRIX_COL_PINS \
{ B1, B10, B3, B4, B5 }

/* Handedness. */
#define SPLIT_HAND_PIN A3 // High -> left, Low -> right.

/* RGB settings. */
#define RGB_DI_PIN A1
#define WS2812_PWM_DRIVER PWMD2
#define WS2812_PWM_CHANNEL 2
#define WS2812_PWM_PAL_MODE 1
#define WS2812_EXTERNAL_PULLUP
#define WS2812_DMA_STREAM STM32_DMA1_STREAM1
#define WS2812_DMA_CHANNEL 3
#define WS2812_PWM_TARGET_PERIOD 800000

/* Serial configuration for split keyboard. */
#define SERIAL_USART_TX_PIN A9

/* CRC. */
#define CRC8_USE_TABLE
#define CRC8_OPTIMIZE_SPEED

/* SPI config for EEPROM and pmw3360 sensor. */
#define SPI_DRIVER SPID1
#define SPI_SCK_PIN A5
#define SPI_SCK_PAL_MODE 5
#define SPI_MOSI_PIN A7
#define SPI_MOSI_PAL_MODE 5
#define SPI_MISO_PIN A6
#define SPI_MISO_PAL_MODE 5

/* EEPROM config. */
#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4

/* PMW3360 settings. */
#define PMW33XX_CS_PIN B14
#define PMW33XX_CS_DIVISOR 64
29 changes: 29 additions & 0 deletions keyboards/bastardkb/charybdis/3x5/blackpill/halconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
* Copyright 2020 Nick Brassel (tzarc)
* Copyright 2021 Charly Delay <[email protected]> (@0xcharly)
*
* 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_PWM TRUE
#define HAL_USE_SERIAL TRUE
//#define HAL_USE_I2C TRUE
#define HAL_USE_SPI TRUE
#define SPI_USE_WAIT TRUE
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
//#define HAL_USE_GPT TRUE

#include_next "halconf.h"
6 changes: 6 additions & 0 deletions keyboards/bastardkb/charybdis/3x5/blackpill/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"keyboard_name": "Charybdis Nano (3x5) Blackpill",
"usb": {
"device_version": "1.0.0",
},
}
61 changes: 61 additions & 0 deletions keyboards/bastardkb/charybdis/3x5/blackpill/mcuconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/*
* Copyright 2020 Nick Brassel (tzarc)
* Copyright 2021 Stefan Kerkmann (@KarlK90)
* Copyright 2021 Charly Delay <[email protected]> (@0xcharly)
*
* 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_I2C_USE_I2C1
#define STM32_I2C_USE_I2C1 TRUE

#undef STM32_I2C_I2C1_RX_DMA_STREAM
#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
#undef STM32_I2C_I2C1_TX_DMA_STREAM
#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1)

#undef STM32_PWM_USE_TIM2
#define STM32_PWM_USE_TIM2 TRUE

#undef STM32_PWM_USE_TIM3
#define STM32_PWM_USE_TIM3 TRUE

#undef STM32_SPI_USE_SPI1
#define STM32_SPI_USE_SPI1 TRUE

#undef STM32_SPI_SPI1_RX_DMA_STREAM
#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0)
#undef STM32_SPI_SPI1_TX_DMA_STREAM
#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3)

#undef STM32_SERIAL_USE_USART1
#define STM32_SERIAL_USE_USART1 TRUE

// #undef STM32_SERIAL_USE_USART2
// #define STM32_SERIAL_USE_USART2 TRUE

// #undef STM32_UART_USART2_RX_DMA_STREAM
// #define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
// #undef STM32_UART_USART2_TX_DMA_STREAM
// #define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)

#undef STM32_GPT_USE_TIM4
#define STM32_GPT_USE_TIM4 TRUE

#undef STM32_ST_USE_TIMER
#define STM32_ST_USE_TIMER 5
3 changes: 3 additions & 0 deletions keyboards/bastardkb/charybdis/3x5/blackpill/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Charybdis Nano (3x5) BlackPill

An ergonomic keyboard with integrated trackball, with BlackPill (STM32F411) mod.
41 changes: 41 additions & 0 deletions keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# MCU name
MCU = STM32F411
BOARD = BLACKPILL_STM32_F411

# Bootloader selection
BOOTLOADER = stm32-dfu

# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output

AUDIO_SUPPORTED = no # Audio is not supported
RGB_MATRIX_SUPPORTED = yes # RGB matrix is supported and enabled by default
RGBLIGHT_SUPPORTED = yes # RGB underglow is supported, but not enabled by default
RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality
RGB_MATRIX_DRIVER = WS2812

# Charybdis nano is a split 3x5 keyboard with a maximum of 3 thumb keys (2 on
# the trackball side).
SPLIT_KEYBOARD = yes
LAYOUTS = split_3x5_3 # Support community layout, in particular Manna-Harbour's Miryoku layout

POINTING_DEVICE_ENABLE = yes # Enable trackball
POINTING_DEVICE_DRIVER = pmw3360
MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint
KEYBOARD_SHARED_EP = yes

EEPROM_DRIVER = spi
WS2812_DRIVER = pwm
SERIAL_DRIVER = usart

DEBOUNCE_TYPE = asym_eager_defer_pk
44 changes: 5 additions & 39 deletions keyboards/bastardkb/charybdis/3x5/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,58 +18,24 @@

#pragma once

#define VENDOR_ID 0xA8F8
#define PRODUCT_ID 0x1832
#define DEVICE_VER 0x0001
#define MANUFACTURER Bastard Keyboards
#define PRODUCT Charybdis Nano
#include "config_common.h"

/* Key matrix configuration. */

// Rows are doubled-up.
#define MATRIX_ROWS 8
#define MATRIX_ROWS 8 // Rows are doubled-up.
#define MATRIX_COLS 5

// Wiring configuration for each half.
#define MATRIX_ROW_PINS \
{ B7, C6, D4, B5 }
#define MATRIX_COL_PINS \
{ C7, F0, D7, E6, B4 }

#define MATRIX_ROW_PINS_RIGHT \
{ F0, C6, D4, B5 }
#define MATRIX_COL_PINS_RIGHT \
{ C7, B7, D7, E6, B4 }

#define DIODE_DIRECTION ROW2COL

/* Handedness. */
#define MASTER_RIGHT

/* Bootmagic Lite configuration. */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
#define BOOTMAGIC_LITE_ROW_RIGHT 4
#define BOOTMAGIC_LITE_COLUMN_RIGHT 0

/* serial.c configuration (for split keyboard) */
#define SOFT_SERIAL_PIN D2

/* Set 0 if debouncing isn't needed. */
#define DEBOUNCE 5

/* PMW33XX settings. */
#define PMW33XX_CS_PIN B0

// Trackball angle adjustment.
/* Trackball angle adjustment. */
#define ROTATIONAL_TRANSFORM_ANGLE -25

/* RGB settings. */

#define RGB_DI_PIN D3
#define RGBLED_NUM 35
#define RGBLED_NUM 36
#define RGBLED_SPLIT \
{ 18, 17 }
{ 18, 18 }

/* RGB matrix support. */
#ifdef RGB_MATRIX_ENABLE
Expand Down
7 changes: 4 additions & 3 deletions keyboards/bastardkb/charybdis/3x5/info.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
{
"keyboard_name": "Charybdis Nano",
"url": "https://www.bastardkb.com",
"maintainer": "Quentin Lebastard",
"url": "https://bastardkb.com/charybdis-nano",
"usb": {
"pid": "0x1832",
},
"layouts": {
"LAYOUT_charybdis_3x5": {
"layout": [
Expand Down
3 changes: 3 additions & 0 deletions keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Charybdis (3x5) @bstiq keymap

Inspired from Miryoku, using home-rows.
Loading