Add Harite v2 keyboard (#24975)

This commit is contained in:
Dane Lipscombe 2025-05-14 20:12:59 +10:00 committed by GitHub
parent e0b037c2cd
commit 59c3612590
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 300 additions and 0 deletions

View File

@ -0,0 +1,20 @@
// Copyright 2024 Dane Lipscombe (@dlip)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1500U
#define SERIAL_USART_FULL_DUPLEX
#define SERIAL_USART_TX_PIN GP1
#define SERIAL_USART_RX_PIN GP0
#define SERIAL_USART_PIN_SWAP
#define EE_HANDS
#define SPI_DRIVER SPID0
#define SPI_SCK_PIN GP2
#define SPI_MOSI_PIN GP3
#define SPI_MISO_PIN GP4
#define POINTING_DEVICE_CS_PIN GP5

View File

@ -0,0 +1,11 @@
// Copyright 2024 Dane Lipscombe (@dlip)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define SPLIT_POINTING_ENABLE
#define POINTING_DEVICE_COMBINED
#define POINTING_DEVICE_ROTATION_90
#define POINTING_DEVICE_ROTATION_90_RIGHT
#define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_ABSOLUTE_MODE
#define POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE

View File

@ -0,0 +1,19 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_split_5x6(
KC_U, KC_U, KC_U, KC_U, KC_U, KC_U, KC_U, KC_U,
KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R,
KC_D, KC_D, KC_D, KC_D, KC_D, KC_D, KC_D, KC_D,
KC_U, KC_U,
KC_L, KC_C, KC_R, KC_L, KC_C, KC_R,
KC_D, KC_D,
KC_U, KC_U,
KC_L, KC_C, KC_R, KC_L, KC_C, KC_R,
KC_D, KC_D
)
};

View File

@ -0,0 +1,39 @@
# Harite v2 (Cirque trackpad version)
5 way switch directional keyboard
![Harite-v2](https://i.imgur.com/v8kUtL3.jpeg)
* Keyboard Maintainer: [Dane Lipscombe](https://github.com/dlip)
* Hardware Supported: Harite v2 (Cirque trackpad version)
* Hardware Availability: <https://github.com/dlip/harite-v2>
Make example for this keyboard (after setting up your build environment):
```bash
make dlip/haritev2/dual_cirque:default
```
Flashing example for this keyboard:
```bash
# For the left half...
make dlip/haritev2/dual_cirque:default:uf2-split-left
# or the qmk cli equivalent:
qmk flash -kb dlip/haritev2/dual_cirque --keymap default -bl uf2-split-left
# For the right half...
make dlip/haritev2/dual_cirque:default:uf2-split-right
# or the qmk cli equivalent:
qmk flash -kb dlip/haritev2/dual_cirque --keymap default -bl uf2-split-right
```
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 key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -0,0 +1,3 @@
POINTING_DEVICE_ENABLE = yes
POINTING_DEVICE_DRIVER = cirque_pinnacle_spi

View File

@ -0,0 +1,10 @@
// Copyright 2023 Dane Lipscombe (@dlip)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define HAL_USE_SPI TRUE
#define SPI_USE_WAIT TRUE
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
#include_next <halconf.h>

View File

@ -0,0 +1,98 @@
{
"manufacturer": "Dane Lipscombe",
"keyboard_name": "haritev2",
"maintainer": "dlip",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["GP11", "GP12", "GP13", "GP14", "GP15", "GP26"],
"rows": ["GP6", "GP7", "GP8", "GP9", "GP10"]
},
"processor": "RP2040",
"split": {
"enabled": true,
"serial": {
"driver": "vendor"
}
},
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x4832",
"vid": "0x444C"
},
"layouts": {
"LAYOUT_split_5x6": {
"layout": [
{"label": "lpu", "matrix": [0, 0], "x": 1, "y": 0},
{"label": "lru", "matrix": [0, 1], "x": 5, "y": 0},
{"label": "lmu", "matrix": [0, 2], "x": 9, "y": 0},
{"label": "liu", "matrix": [0, 3], "x": 13, "y": 0},
{"label": "riu", "matrix": [8, 3], "x": 21, "y": 0},
{"label": "rmu", "matrix": [8, 2], "x": 25, "y": 0},
{"label": "rru", "matrix": [8, 1], "x": 29, "y": 0},
{"label": "rpu", "matrix": [8, 0], "x": 33, "y": 0},
{"label": "lpl", "matrix": [2, 0], "x": 0, "y": 1},
{"label": "lpc", "matrix": [1, 0], "x": 1, "y": 1},
{"label": "lpr", "matrix": [3, 0], "x": 2, "y": 1},
{"label": "lrl", "matrix": [2, 1], "x": 4, "y": 1},
{"label": "lrc", "matrix": [1, 1], "x": 5, "y": 1},
{"label": "lrr", "matrix": [3, 1], "x": 6, "y": 1},
{"label": "lml", "matrix": [2, 2], "x": 8, "y": 1},
{"label": "lmc", "matrix": [1, 2], "x": 9, "y": 1},
{"label": "lmr", "matrix": [3, 2], "x": 10, "y": 1},
{"label": "lil", "matrix": [2, 3], "x": 12, "y": 1},
{"label": "lic", "matrix": [1, 3], "x": 13, "y": 1},
{"label": "lir", "matrix": [3, 3], "x": 14, "y": 1},
{"label": "ril", "matrix": [5, 3], "x": 20, "y": 1},
{"label": "ric", "matrix": [6, 3], "x": 21, "y": 1},
{"label": "rir", "matrix": [9, 3], "x": 22, "y": 1},
{"label": "rml", "matrix": [5, 2], "x": 24, "y": 1},
{"label": "rmc", "matrix": [6, 2], "x": 25, "y": 1},
{"label": "rmr", "matrix": [9, 2], "x": 26, "y": 1},
{"label": "rrl", "matrix": [5, 1], "x": 28, "y": 1},
{"label": "rrc", "matrix": [6, 1], "x": 29, "y": 1},
{"label": "rrr", "matrix": [9, 1], "x": 30, "y": 1},
{"label": "rpl", "matrix": [5, 0], "x": 32, "y": 1},
{"label": "rpc", "matrix": [6, 0], "x": 33, "y": 1},
{"label": "rpr", "matrix": [9, 0], "x": 34, "y": 1},
{"label": "lpd", "matrix": [4, 0], "x": 1, "y": 2},
{"label": "lrd", "matrix": [4, 1], "x": 5, "y": 2},
{"label": "lmd", "matrix": [4, 2], "x": 9, "y": 2},
{"label": "lid", "matrix": [4, 3], "x": 13, "y": 2},
{"label": "rid", "matrix": [7, 3], "x": 21, "y": 2},
{"label": "rmd", "matrix": [7, 2], "x": 25, "y": 2},
{"label": "rrd", "matrix": [7, 1], "x": 29, "y": 2},
{"label": "rpd", "matrix": [7, 0], "x": 33, "y": 2},
{"label": "ltu", "matrix": [0, 4], "x": 13, "y": 3},
{"label": "rtu", "matrix": [5, 4], "x": 21, "y": 3},
{"label": "ltl", "matrix": [2, 4], "x": 12, "y": 4},
{"label": "ltc", "matrix": [1, 4], "x": 13, "y": 4},
{"label": "ltr", "matrix": [3, 4], "x": 14, "y": 4},
{"label": "rtl", "matrix": [7, 4], "x": 20, "y": 4},
{"label": "rtc", "matrix": [6, 4], "x": 21, "y": 4},
{"label": "rtr", "matrix": [8, 4], "x": 22, "y": 4},
{"label": "ltd", "matrix": [4, 4], "x": 13, "y": 5},
{"label": "rtd", "matrix": [9, 4], "x": 21, "y": 5},
{"label": "lt2u", "matrix": [0, 5], "x": 13, "y": 6},
{"label": "rt2u", "matrix": [5, 5], "x": 21, "y": 6},
{"label": "lt2l", "matrix": [2, 5], "x": 12, "y": 7},
{"label": "lt2c", "matrix": [1, 5], "x": 13, "y": 7},
{"label": "lt2r", "matrix": [3, 5], "x": 14, "y": 7},
{"label": "rt2l", "matrix": [7, 5], "x": 20, "y": 7},
{"label": "rt2c", "matrix": [6, 5], "x": 21, "y": 7},
{"label": "rt2r", "matrix": [8, 5], "x": 22, "y": 7},
{"label": "lt2d", "matrix": [4, 5], "x": 13, "y": 8},
{"label": "rt2d", "matrix": [9, 5], "x": 21, "y": 8}
]
}
}
}

View File

@ -0,0 +1,7 @@
// Copyright 2023 Dane Lipscombe (@dlip)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include_next <mcuconf.h>
#undef RP_SPI_USE_SPI0
#define RP_SPI_USE_SPI0 TRUE

View File

@ -0,0 +1,9 @@
// Copyright 2024 Dane Lipscombe (@dlip)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define PMW33XX_CPI 1000
#define SPLIT_POINTING_ENABLE
#define POINTING_DEVICE_INVERT_X
#define POINTING_DEVICE_RIGHT

View File

@ -0,0 +1,23 @@
{
"features": {
"joystick": true
},
"joystick": {
"axes": {
"x": {
"high": 938,
"input_pin": "GP27",
"low": 25,
"rest": 501
},
"y": {
"high": 942,
"input_pin": "GP28",
"low": 58,
"rest": 474
}
},
"axis_resolution": 10,
"button_count": 32
}
}

View File

@ -0,0 +1,19 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_split_5x6(
KC_U, KC_U, KC_U, KC_U, KC_U, KC_U, KC_U, KC_U,
KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R,
KC_D, KC_D, KC_D, KC_D, KC_D, KC_D, KC_D, KC_D,
KC_U, KC_U,
KC_L, KC_C, KC_R, KC_L, KC_C, KC_R,
KC_D, KC_D,
KC_U, KC_U,
KC_L, KC_C, KC_R, KC_L, KC_C, KC_R,
KC_D, KC_D
)
};

View File

@ -0,0 +1,39 @@
# Harite v2 (Thumbstick + PMW3389 version)
5 way switch directional keyboard
![Harite-v2](https://i.imgur.com/wyrUsjG.jpeg)
* Keyboard Maintainer: [Dane Lipscombe](https://github.com/dlip)
* Hardware Supported: Harite v2 (Thumbstick + PMW3389 version)
* Hardware Availability: <https://github.com/dlip/harite-v2>
Make example for this keyboard (after setting up your build environment):
```bash
make dlip/haritev2/thumbstick_pmw3389:default
```
Flashing example for this keyboard:
```bash
# For the left half...
make dlip/haritev2/thumbstick_pmw3389:default:uf2-split-left
# or the qmk cli equivalent:
qmk flash -kb dlip/haritev2/thumbstick_pmw3389 --keymap default -bl uf2-split-left
# For the right half...
make dlip/haritev2/thumbstick_pmw3389:default:uf2-split-right
# or the qmk cli equivalent:
qmk flash -kb dlip/haritev2/thumbstick_pmw3389 --keymap default -bl uf2-split-right
```
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 key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -0,0 +1,3 @@
POINTING_DEVICE_ENABLE = yes
POINTING_DEVICE_DRIVER = pmw3389
JOYSTICK_DRIVER = analog