Add biantin keyboard

This commit is contained in:
Martin Pander
2026-02-27 22:59:31 +01:00
parent 1eb175cb47
commit 264f0ec8bd
23 changed files with 1144 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
# Enable mouse emulation.
CONFIG_ZMK_POINTING=y
CONFIG_ZMK_POINTING_SMOOTH_SCROLLING=y
# Change idle settings
CONFIG_ZMK_IDLE_TIMEOUT=30000
# Deep sleep settings
CONFIG_ZMK_SLEEP=y
CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=900000
# Custom keyboard name (max. 16 characters)
CONFIG_ZMK_KEYBOARD_NAME="biantin"
CONFIG_ZMK_BATTERY_REPORTING=y
CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_PROXY=y
CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y
CONFIG_ZMK_RGB_UNDERGLOW=n
CONFIG_ZMK_BACKLIGHT=n

View File

@@ -0,0 +1,58 @@
{
"id": "piantor_pro_bt",
"name": "Piantor Pro BT",
"layouts": {
"default_layout": {
"name": "default_layout",
"layout": [
{ "row": 0, "col": 0, "x": 0.0, "y": 1.0 },
{ "row": 0, "col": 1, "x": 1.0, "y": 1.0 },
{ "row": 0, "col": 2, "x": 2.0, "y": 0.25 },
{ "row": 0, "col": 3, "x": 3.0, "y": 0.0 },
{ "row": 0, "col": 4, "x": 4.0, "y": 0.25 },
{ "row": 0, "col": 5, "x": 5.0, "y": 0.35 },
{ "row": 0, "col": 6, "x": 9.5, "y": 0.35 },
{ "row": 0, "col": 7, "x": 10.5, "y": 0.25 },
{ "row": 0, "col": 8, "x": 11.5, "y": 0.0 },
{ "row": 0, "col": 9, "x": 12.5, "y": 0.25 },
{ "row": 0, "col": 10, "x": 13.5, "y": 1.0 },
{ "row": 0, "col": 11, "x": 14.5, "y": 1.0 },
{ "row": 0, "col": 12, "x": 0.0, "y": 2.0 },
{ "row": 0, "col": 13, "x": 1.0, "y": 2.0 },
{ "row": 0, "col": 14, "x": 2.0, "y": 1.25 },
{ "row": 0, "col": 15, "x": 3.0, "y": 1.0 },
{ "row": 0, "col": 16, "x": 4.0, "y": 1.25 },
{ "row": 0, "col": 17, "x": 5.0, "y": 1.35 },
{ "row": 0, "col": 18, "x": 9.5, "y": 1.35 },
{ "row": 0, "col": 19, "x": 10.5, "y": 1.25 },
{ "row": 0, "col": 20, "x": 11.5, "y": 1.0 },
{ "row": 0, "col": 21, "x": 12.5, "y": 1.25 },
{ "row": 0, "col": 22, "x": 13.5, "y": 2.0 },
{ "row": 0, "col": 23, "x": 14.5, "y": 2.0 },
{ "row": 0, "col": 24, "x": 0.0, "y": 3.0 },
{ "row": 0, "col": 25, "x": 1.0, "y": 3.0 },
{ "row": 0, "col": 26, "x": 2.0, "y": 2.25 },
{ "row": 0, "col": 27, "x": 3.0, "y": 2.0 },
{ "row": 0, "col": 28, "x": 4.0, "y": 2.25 },
{ "row": 0, "col": 29, "x": 5.0, "y": 2.35 },
{ "row": 0, "col": 30, "x": 9.5, "y": 2.35 },
{ "row": 0, "col": 31, "x": 10.5, "y": 2.25 },
{ "row": 0, "col": 32, "x": 11.5, "y": 2.0 },
{ "row": 0, "col": 33, "x": 12.5, "y": 2.25 },
{ "row": 0, "col": 34, "x": 13.5, "y": 3.0 },
{ "row": 0, "col": 35, "x": 14.5, "y": 3.0 },
{ "row": 0, "col": 36, "x": 3.8, "y": 3.6, "r": -5.0, "rx": 3.6, "ry": 3.5 },
{ "row": 0, "col": 37, "x": 5.1, "y": 3.5, "r": 5.0, "rx": 5.0, "ry": 3.5 },
{ "row": 0, "col": 38, "x": 6.45, "y": 3.7, "r": 15.0, "rx": 6.5, "ry": 3.5 },
{ "row": 0, "col": 39, "x": 8.1, "y": 3.89, "r": -15.0, "rx": 8.25, "ry": 3.5 },
{ "row": 0, "col": 40, "x": 9.45, "y": 3.6, "r": -5.0, "rx": 9.5, "ry": 3.5 },
{ "row": 0, "col": 41, "x": 10.75, "y": 3.5, "r": 5.0, "rx": 10.75, "ry": 3.5 }
]
}
},
"sensors": []
}

View File

@@ -0,0 +1,114 @@
#include <behaviors.dtsi>
#include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/pointing.h>
/ {
chosen { zmk,physical-layout = &default_layout; };
};
/ {
behaviors {
hrm: hrm {
compatible = "zmk,behavior-hold-tap";
label = "HRM";
bindings = <&kp>, <&kp>;
#binding-cells = <2>;
tapping-term-ms = <150>;
quick-tap-ms = <175>;
flavor = "tap-preferred";
};
backdel: backdel {
compatible = "zmk,behavior-mod-morph";
label = "BACKDEL";
bindings = <&kp BACKSPACE>, <&kp DELETE>;
#binding-cells = <0>;
mods = <(MOD_LSFT)>;
};
};
combos {
compatible = "zmk,combos";
left_bootloader {
bindings = <&bootloader>;
key-positions = <0 12 24 38>;
require-prior-idle-ms = <5000>;
};
right_bootloader {
bindings = <&bootloader>;
key-positions = <11 23 35 39>;
require-prior-idle-ms = <5000>;
};
left_reset {
bindings = <&sys_reset>;
key-positions = <0 12 24 29 17 5>;
require-prior-idle-ms = <5000>;
};
right_reset {
bindings = <&sys_reset>;
key-positions = <35 23 11 6 18 30>;
require-prior-idle-ms = <5000>;
};
};
keymap {
compatible = "zmk,keymap";
base {
display-name = "qwerty";
bindings = <
&kp ESCAPE &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &backdel &kp TAB &hrm LEFT_CONTROL A &hrm LEFT_ALT S &hrm LEFT_GUI D &hrm LEFT_SHIFT F &kp G &kp H &hrm RIGHT_SHIFT J &hrm RIGHT_GUI K &hrm LEFT_ALT L &hrm RCTRL SEMICOLON &kp SQT &kp C_MENU &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp GRAVE &lt 5 ESCAPE &lt 3 SPACE &lt 6 TAB &lt 2 ESCAPE &lt 1 ENTER &lt 4 CAPS
>;
};
numbers {
display-name = "numbers";
bindings = <
&kp LEFT_BRACE &kp RIGHT_BRACE &kp N7 &kp N8 &kp N9 &kp FSLH &trans &trans &trans &trans &trans &kp BACKSPACE &kp LEFT_PARENTHESIS &kp RIGHT_PARENTHESIS &kp N4 &kp N5 &kp N6 &kp MINUS &trans &kp RSHFT &kp RGUI &kp LALT &kp RIGHT_SHIFT &trans &kp LEFT_BRACKET &kp RIGHT_BRACKET &kp N1 &kp N2 &kp N3 &kp EQUAL &trans &trans &trans &trans &trans &trans &kp COMMA &kp N0 &kp DOT &trans &trans &trans
>;
};
symbols {
display-name = "symbols";
bindings = <
&none &none &none &none &none &none &none &none &none &none &none &none &none &none &none &kp GRAVE &kp NON_US_BACKSLASH &none &none &kp RIGHT_SHIFT &kp RIGHT_GUI &kp LEFT_ALT &kp RIGHT_CONTROL &none &none &none &none &none &none &none &none &none &none &none &none &none &none &none &none &none &none &none
>;
};
nav {
display-name = "nav";
bindings = <
&trans &trans &trans &trans &trans &trans &kp HOME &kp PAGE_DOWN &kp PAGE_UP &kp END &trans &trans &trans &kp LCTRL &kp LALT &kp LGUI &kp LSHFT &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
>;
};
fkeys {
display-name = "fkeys";
bindings = <
&kp F18 &kp F15 &kp F7 &kp F8 &kp F9 &kp F12 &none &none &none &none &none &none &kp F17 &kp F14 &kp F4 &kp F5 &kp F6 &kp F11 &none &kp RIGHT_SHIFT &kp RIGHT_GUI &kp LEFT_ALT &kp RIGHT_CONTROL &none &kp F16 &kp F13 &kp F1 &kp F2 &kp F3 &kp F10 &none &none &none &none &none &none &none &none &none &none &none &none
>;
};
media {
display-name = "media";
bindings = <
&bt BT_CLR &none &none &none &none &none &none &kp C_AL_IMAGE_BROWSER &kp C_BRIGHTNESS_INC &none &none &none &none &none &bt BT_SEL 3 &bt BT_SEL 4 &none &none &kp C_PREVIOUS &kp C_VOL_DN &kp C_VOLUME_UP &kp C_NEXT &none &none &studio_unlock &none &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &none &none &kp C_MUTE &none &none &none &none &none &none &none &kp C_STOP &kp C_PLAY &none
>;
};
mouse {
display-name = "mouse";
bindings = <
&none &none &none &none &none &none &msc SCRL_LEFT &msc SCRL_DOWN &msc SCRL_UP &msc SCRL_RIGHT &none &none &none &none &none &none &none &none &mmv MOVE_LEFT &mmv MOVE_DOWN &mmv MOVE_UP &mmv MOVE_RIGHT &none &none &none &none &none &none &none &none &none &none &none &none &none &none &none &none &none &mkp RCLK &mkp LCLK &mkp MCLK
>;
};
};
};

48
biantin/config/west.yml Normal file
View File

@@ -0,0 +1,48 @@
manifest:
remotes:
- name: zmkfirmware
url-base: https://github.com/zmkfirmware
# Additional modules containing boards/shields/custom code can be listed here as well
# See https://docs.zephyrproject.org/3.2.0/develop/west/manifest.html#projects
projects:
- name: zmk
remote: zmkfirmware
revision: v0.3
import: app/west.yml
self:
path: config
# manifest:
# remotes:
# - name: zmkfirmware
# url-base: https://github.com/zmkfirmware
# projects:
# - name: zmk
# remote: zmkfirmware
# revision: ac7f75b8591d39aaf3b66b9d26f26c9ed921a009 # main
# import: app/west.yml
# - name: zephyr
# remote: zmkfirmware
# revision: ec36516990d40355238db3049bc1709191f99b4e # v4.1.0+zmk-fixes
# import:
# name-blocklist:
# - ci-tools
# - hal_altera
# - hal_cypress
# - hal_infineon
# - hal_microchip
# - hal_nxp
# - hal_openisa
# - hal_silabs
# - hal_xtensa
# - hal_st
# - hal_ti
# - loramac-node
# - mcuboot
# - mcumgr
# - net-tools
# - openthread
# - edtt
# - trusted-firmware-m
# self:
# path: config