Browse Source
* Basic Clueboard Californai Macropad shield definition. * New "direct" KSCAN driver that supports non-matrix direct wiring for switches, needed for macropad that doesn't have a matrix at all. * Some renames for existing KSCAN GPIO driver to make the implied "matrix" part explicit.xmkb
Pete Johanson
4 years ago
16 changed files with 129 additions and 11 deletions
@ -1,6 +1,7 @@
@@ -1,6 +1,7 @@
|
||||
# SPDX-License-Identifier: MIT |
||||
|
||||
board_runner_args(jlink "--device=STM32F303VC" "--speed=4000") |
||||
board_runner_args(dfu-util "--pid=0483:df11" "--alt=0" "--dfuse") |
||||
board_runner_args(jlink "--device=STM32F303CC" "--speed=4000") |
||||
|
||||
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) |
||||
include(${ZEPHYR_BASE}/boards/common/dfu-util.board.cmake) |
||||
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) |
||||
|
@ -0,0 +1,14 @@
@@ -0,0 +1,14 @@
|
||||
|
||||
if SHIELD_CLUEBOARD_CALIFORNIA |
||||
|
||||
config ZMK_KEYBOARD_NAME |
||||
default "Clueboard California Macropad" |
||||
|
||||
# Unable to use interrupts as the same pin number is used |
||||
# across A & B controllers, and STM32F303CCT6 can't enable |
||||
# interrutps for multiple controllers for the same "line" |
||||
# for the external interrupts. |
||||
config ZMK_KSCAN_GPIO_POLLING |
||||
default y |
||||
|
||||
endif |
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
# Copyright (c) 2020 Pete Johanson |
||||
# SPDX-License-Identifier: MIT |
||||
|
||||
config SHIELD_CLUEBOARD_CALIFORNIA |
||||
def_bool $(shields_list_contains,clueboard_california) |
@ -0,0 +1,34 @@
@@ -0,0 +1,34 @@
|
||||
/* |
||||
* Copyright (c) 2020 Pete Johanson |
||||
* |
||||
* SPDX-License-Identifier: MIT |
||||
*/ |
||||
|
||||
/ { |
||||
chosen { |
||||
zmk,kscan = &kscan0; |
||||
}; |
||||
|
||||
kscan0: kscan_0 { |
||||
compatible = "zmk,kscan-gpio-direct"; |
||||
|
||||
label = "KSCAN"; |
||||
|
||||
input-gpios |
||||
= <&gpioa 10 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> |
||||
, <&gpioa 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> |
||||
, <&gpioa 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> |
||||
, <&gpiob 8 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> |
||||
, <&gpiob 11 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> |
||||
, <&gpiob 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> |
||||
, <&gpioa 8 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> |
||||
, <&gpioa 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> |
||||
, <&gpiob 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> |
||||
, <&gpiob 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> |
||||
; |
||||
|
||||
}; |
||||
|
||||
// TODO: Per-key LED node(s) |
||||
}; |
||||
|
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
#include <dt-bindings/zmk/keys.h> |
||||
#include <dt-bindings/zmk/matrix-transform.h> |
||||
#include <keymap.h> |
||||
|
||||
/ { |
||||
chosen { |
||||
zmk,keymap = &keymap0; |
||||
}; |
||||
|
||||
keymap0: keymap { |
||||
compatible = "zmk,keymap"; |
||||
label ="Default Kyria Keymap"; |
||||
layers = <&default>; |
||||
}; |
||||
|
||||
layers { |
||||
compatible = "zmk,layers"; |
||||
|
||||
default: layer_0 { |
||||
label = "DEFAULT"; |
||||
keys = <KC_9 KC_8 KC_7 KC_6 KC_5 KC_4 KC_3 KC_2 KC_1 KC_0>; |
||||
}; |
||||
}; |
||||
}; |
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
# Clueboard California Macropad |
||||
|
||||
A small 10-key macropad in the shape of the US state of California, |
||||
|
||||
## Features |
||||
|
||||
* Per key LED. |
||||
* Proton-C compatible, including space for the piezo speaker. |
||||
* Direct GPIO wiring, no GPIO matrix at all. |
||||
|
||||
Will need to set them to be PULL HIGH, and ACTIVE LOW |
||||
|
||||
| Switch | Switch Pin | LED Pin | |
||||
| ------------ | ---------- | ------- | |
||||
| shasta1 | a10 | a2 | |
||||
| modoc1 | a9 | b5 | |
||||
| mendocino1 | a0 | a1 | |
||||
| lassen1 | b8 | b4 | |
||||
| eldorado1 | b11 | b12 | |
||||
| big_sur1 | b9 | b10 | |
||||
| sierra1 | a8 | a15 | |
||||
| los_padres1 | a7 | a6 | |
||||
| mojave1 | b1 | b0 | |
||||
| joshua_tree1 | b2 | b3 | |
Loading…
Reference in new issue