Compare commits

...

10 Commits

Author SHA1 Message Date
Ryan Rix 05086f246e make the dockerfile work for this 2023-06-17 19:26:42 -07:00
Ryan Rix 54db5907e6 add board merging main zmk repo + paintbrush config 2023-06-17 19:26:24 -07:00
granitrocky 9aa9bc5eb4
Merge pull request #8 from Lykos153/pin-zmk
Pin zmk from 2023-03-25
2023-05-22 07:28:04 -05:00
Silvio Ankermann d34ee2febb Pin zmk from 2023-03-25 2023-05-11 15:25:38 +02:00
KemoNine f93990d264
Fix west.yaml for flip back to upstream zmk 2022-06-10 11:17:27 -04:00
KemoNine 69b5a32344
Flip to official zmk now that key toggle is merged 2022-06-10 11:15:10 -04:00
KemoNine 4e73a2ebeb improve docker dev setups ; add rpi support ; the rpi stuff is compatible with docker and podmon 2022-05-15 11:10:55 -04:00
KemoNine 64aac2a020 add some dev notes 2022-05-03 12:25:17 -04:00
KemoNine 4588f5e3bd fix config for boards w/o oled 2022-05-01 14:52:30 -04:00
KemoNine 154e397333 apply oled update from zmk zephyr 3.0 announcement 2022-05-01 14:09:47 -04:00
36 changed files with 540 additions and 259 deletions

View File

@ -1,4 +1,9 @@
FROM docker.io/zmkfirmware/zmk-dev-arm:stable
RUN useradd -d /home/dev -u 1000 dev
RUN mkdir ~dev
RUN chown dev:dev ~dev
COPY bashrc tmp
RUN mv /tmp/bashrc ~/.bashrc
RUN mv /tmp/bashrc ~/.bashrc
USER dev
WORKDIR /workspaces/zmk-ardux

View File

@ -0,0 +1,40 @@
FROM ubuntu:latest as base
RUN apt-get update && apt-get install -y \
git \
wget \
autoconf \
automake \
build-essential \
bzip2 \
ccache \
device-tree-compiler \
dfu-util \
g++ \
gcc \
gcc-arm-none-eabi \
libtool \
make \
ninja-build \
cmake \
python3-dev \
python3-pip \
python3-setuptools \
xz-utils \
&& rm -rf /var/lib/apt/lists/* && apt-get clean
FROM base as dev
RUN apt-get update && apt-get install -y nano vim emacs tmux htop tio minicom \
&& pip3 install --user -U west \
&& rm -rf /var/lib/apt/lists/* && apt-get clean
COPY bashrc tmp
RUN mv /tmp/bashrc ~/.bashrc
WORKDIR /workspaces
ENV ZEPHYR_TOOLCHAIN_VARIANT=cross-compile
ENV CROSS_COMPILE=/usr/bin/arm-none-eabi-
CMD ["/bin/bash"]

View File

@ -1,4 +1,5 @@
export LS_OPTIONS='-F --color=auto'
export PATH=~/.local/bin:${PATH}
alias ls='ls $LS_OPTIONS'
if [ "${CODESPACES}" = "true" ]; then
export WORKSPACE_DIR="$HOME/workspace/zmk"

View File

@ -67,6 +67,10 @@ jobs:
shield: cradio_ardux_right
- board: nice_nano_v2
shield: cradio_ardux_thumb_right
- board: nice_nano_v2
shield: boardsource3x4_left
- board: nice_nano_v2
shield: boardsource3x4_right
steps:
- name: Checkout
uses: actions/checkout@v2

19
DEVELOPMENT.md Normal file
View File

@ -0,0 +1,19 @@
# Developing ARDUX for ZMK
## Work In Progress
The below is a work in progress. Don't be surprised if there are quirks in the information provided below. PRs are welcome.
## Misc Notes
```
KiTTY has an auto reconnect option, but it's not fast enough to catch the first few messages
There's a Kconfig setting to delay starting the logging thread.
Set it a tad higher, should let you catch first log messages.
LOG_PROCESS_THREAD_STARTUP_DELAY_MS is the setting.
```

View File

@ -6,9 +6,30 @@
#include <dt-bindings/zmk/matrix_transform.h>
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
label = "DISPLAY";
width = <128>;
height = <32>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <31>;
segment-remap;
com-invdir;
com-sequential;
prechargep = <0x22>;
};
};
/ {
chosen {
zmk,kscan = &kscan0;
zephyr,display = &oled;
};
kscan0: kscan_0 {
@ -28,23 +49,3 @@
;
};
};
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
label = "DISPLAY";
width = <128>;
height = <32>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <31>;
segment-remap;
com-invdir;
com-sequential;
prechargep = <0x22>;
};
};

View File

@ -6,29 +6,6 @@
#include <dt-bindings/zmk/matrix_transform.h>
/ {
chosen {
zmk,kscan = &kscan0;
};
kscan0: kscan_0 {
compatible = "zmk,kscan-gpio-direct";
label = "KSCAN";
input-gpios
= <&pro_micro_d 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_a 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_a 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 15 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
;
};
};
&pro_micro_i2c {
status = "okay";
@ -48,3 +25,27 @@
prechargep = <0x22>;
};
};
/ {
chosen {
zmk,kscan = &kscan0;
zephyr,display = &oled;
};
kscan0: kscan_0 {
compatible = "zmk,kscan-gpio-direct";
label = "KSCAN";
input-gpios
= <&pro_micro_d 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_a 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_a 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 15 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
;
};
};

View File

@ -10,7 +10,7 @@ CONFIG_ZMK_COMBO_MAX_PRESSED_COMBOS=8
CONFIG_BT_MAX_CONN=6
# Enable display (layer in use is helpful)
CONFIG_ZMK_DISPLAY=y
CONFIG_ZMK_DISPLAY=n
# Turn off sleep
CONFIG_ZMK_SLEEP=n

View File

@ -10,7 +10,7 @@ CONFIG_ZMK_COMBO_MAX_PRESSED_COMBOS=8
CONFIG_BT_MAX_CONN=6
# Enable display (layer in use is helpful)
CONFIG_ZMK_DISPLAY=y
CONFIG_ZMK_DISPLAY=n
# Turn off sleep
CONFIG_ZMK_SLEEP=n

View File

@ -0,0 +1,10 @@
# Copyright (c) 2020 The ZMK Contributors
# SPDX-License-Identifier: MIT
if SHIELD_BOARDSOURCE3X4_RIGHT || SHIELDBOARDSOURCE3X4_LEFT
config ZMK_KEYBOARD_NAME
default "Ardux 3x4"
endif

View File

@ -0,0 +1,8 @@
# Copyright (c) 2020 The ZMK Contributors
# SPDX-License-Identifier: MIT
config SHIELD_BOARDSOURCE_LEFT
def_bool $(shields_list_contains,boardsource_left)
config SHIELD_BOARDSOURCE_RIGHT
def_bool $(shields_list_contains,boardsource_right)

View File

@ -0,0 +1,11 @@
file_format: "1"
id: boardsource3x4
name: Boardsource 3x4 Macropad
type: shield
url: https://boardsource.xyz/store/5ecc2008eee64242946c98c1
requires: [pro_micro]
features:
- keys
siblings:
- boardsource3x4_left
- boardsource3x4_right

View File

@ -0,0 +1,3 @@
CONFIG_ZMK_COMBO_MAX_COMBOS_PER_KEY=16
CONFIG_ZMK_COMBO_MAX_KEYS_PER_COMBO=8
CONFIG_ZMK_COMBO_MAX_PRESSED_COMBOS=8

View File

@ -0,0 +1,33 @@
/*
* Copyright (c) 2020 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h>
// Left/Right
#define ARDUX_LEFT 1
// ARTS Row
#define KEY_A 3
#define KEY_R 2
#define KEY_T 1
#define KEY_S 0
// EYIO Row
#define KEY_E 7
#define KEY_Y 6
#define KEY_I 5
#define KEY_O 4
// Define Offsets
#define LEADING_NONES NONE(0,0,0)
#define MIDDLE_NONES NONE(0, 0, 0)
#define TRAILING_NONES NONE(0,0,0)
#define CUSTOM_THUMB &kp ESC &sk LALT &sk LGUI &sk LCTL
// #define TRAILING_NONES NONE(0,0,4)
// Include main ardux.io keymap
#include "../../../ardux.dtsi"

View File

@ -0,0 +1,32 @@
/*
* Copyright (c) 2020 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <dt-bindings/zmk/matrix_transform.h>
/ {
chosen {
zmk,kscan = &kscan0;
};
kscan0: kscan {
compatible = "zmk,kscan-gpio-matrix";
label = "KSCAN";
diode-direction = "col2row";
row-gpios
= <&pro_micro 18 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 19 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 20 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
;
col-gpios
= <&pro_micro 10 GPIO_ACTIVE_HIGH>
, <&pro_micro 16 GPIO_ACTIVE_HIGH>
, <&pro_micro 14 GPIO_ACTIVE_HIGH>
, <&pro_micro 15 GPIO_ACTIVE_HIGH>
;
};
};

View File

@ -0,0 +1,31 @@
/*
* Copyright (c) 2020 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h>
// Left/Right
#define ARDUX_RIGHT 1
// ARTS Row
#define KEY_A 1
#define KEY_R 1
#define KEY_T 2
#define KEY_S 3
// EYIO Row
#define KEY_E 4
#define KEY_Y 5
#define KEY_I 6
#define KEY_O 7
// Define Offsets
#define LEADING_NONES NONE(0,0,0)
#define MIDDLE_NONES NONE(0, 0, 0)
#define TRAILING_NONES NONE(ESC, &sk LALT, &sk LGUI, &sk LCTL)
// Include main ardux.io keymap
#include "../../../ardux.dtsi"

View File

@ -0,0 +1,32 @@
/*
* Copyright (c) 2020 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <dt-bindings/zmk/matrix_transform.h>
/ {
chosen {
zmk,kscan = &kscan0;
};
kscan0: kscan {
compatible = "zmk,kscan-gpio-matrix";
label = "KSCAN";
diode-direction = "col2row";
row-gpios
= <&pro_micro 18 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 19 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 20 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
;
col-gpios
= <&pro_micro 10 GPIO_ACTIVE_HIGH>
, <&pro_micro 16 GPIO_ACTIVE_HIGH>
, <&pro_micro 14 GPIO_ACTIVE_HIGH>
, <&pro_micro 15 GPIO_ACTIVE_HIGH>
;
};
};

View File

@ -6,10 +6,31 @@
#include <dt-bindings/zmk/matrix_transform.h>
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
label = "DISPLAY";
width = <128>;
height = <32>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <31>;
segment-remap;
com-invdir;
com-sequential;
prechargep = <0x22>;
};
};
/ {
chosen {
zmk,kscan = &kscan0;
zmk,matrix_transform = &default_transform;
zephyr,display = &oled;
};
default_transform: keymap_transform_0 {
@ -52,23 +73,3 @@ RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)
// TODO: per-key RGB node(s)?
};
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
label = "DISPLAY";
width = <128>;
height = <32>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <31>;
segment-remap;
com-invdir;
com-sequential;
prechargep = <0x22>;
};
};

View File

@ -6,10 +6,31 @@
#include <dt-bindings/zmk/matrix_transform.h>
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
label = "DISPLAY";
width = <128>;
height = <32>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <31>;
segment-remap;
com-invdir;
com-sequential;
prechargep = <0x22>;
};
};
/ {
chosen {
zmk,kscan = &kscan0;
zmk,matrix_transform = &default_transform;
zephyr,display = &oled;
};
default_transform: keymap_transform_0 {
@ -52,23 +73,3 @@ RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)
// TODO: per-key RGB node(s)?
};
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
label = "DISPLAY";
width = <128>;
height = <32>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <31>;
segment-remap;
com-invdir;
com-sequential;
prechargep = <0x22>;
};
};

View File

@ -6,10 +6,31 @@
#include <dt-bindings/zmk/matrix_transform.h>
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
label = "DISPLAY";
width = <128>;
height = <32>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <31>;
segment-remap;
com-invdir;
com-sequential;
prechargep = <0x22>;
};
};
/ {
chosen {
zmk,kscan = &kscan0;
zmk,matrix_transform = &default_transform;
zephyr,display = &oled;
};
default_transform: keymap_transform_0 {
@ -52,23 +73,3 @@ RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)
// TODO: per-key RGB node(s)?
};
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
label = "DISPLAY";
width = <128>;
height = <32>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <31>;
segment-remap;
com-invdir;
com-sequential;
prechargep = <0x22>;
};
};

View File

@ -6,10 +6,31 @@
#include <dt-bindings/zmk/matrix_transform.h>
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
label = "DISPLAY";
width = <128>;
height = <32>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <31>;
segment-remap;
com-invdir;
com-sequential;
prechargep = <0x22>;
};
};
/ {
chosen {
zmk,kscan = &kscan0;
zmk,matrix_transform = &default_transform;
zephyr,display = &oled;
};
default_transform: keymap_transform_0 {
@ -52,23 +73,3 @@ RC(3,0) RC(3,1) RC(3,2)
// TODO: per-key RGB node(s)?
};
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
label = "DISPLAY";
width = <128>;
height = <32>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <31>;
segment-remap;
com-invdir;
com-sequential;
prechargep = <0x22>;
};
};

View File

@ -6,10 +6,31 @@
#include <dt-bindings/zmk/matrix_transform.h>
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
label = "DISPLAY";
width = <128>;
height = <32>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <31>;
segment-remap;
com-invdir;
com-sequential;
prechargep = <0x22>;
};
};
/ {
chosen {
zmk,kscan = &kscan0;
zmk,matrix_transform = &default_transform;
zephyr,display = &oled;
};
default_transform: keymap_transform_0 {
@ -52,23 +73,3 @@ RC(3,0) RC(3,1) RC(3,2)
// TODO: per-key RGB node(s)?
};
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
label = "DISPLAY";
width = <128>;
height = <32>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <31>;
segment-remap;
com-invdir;
com-sequential;
prechargep = <0x22>;
};
};

View File

@ -6,10 +6,31 @@
#include <dt-bindings/zmk/matrix_transform.h>
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
label = "DISPLAY";
width = <128>;
height = <32>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <31>;
segment-remap;
com-invdir;
com-sequential;
prechargep = <0x22>;
};
};
/ {
chosen {
zmk,kscan = &kscan0;
zmk,matrix_transform = &default_transform;
zephyr,display = &oled;
};
default_transform: keymap_transform_0 {
@ -52,23 +73,3 @@ RC(3,0) RC(3,1) RC(3,2)
// TODO: per-key RGB node(s)?
};
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
label = "DISPLAY";
width = <128>;
height = <32>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <31>;
segment-remap;
com-invdir;
com-sequential;
prechargep = <0x22>;
};
};

View File

@ -10,7 +10,7 @@ CONFIG_ZMK_COMBO_MAX_PRESSED_COMBOS=8
CONFIG_BT_MAX_CONN=6
# Enable display (layer in use is helpful)
CONFIG_ZMK_DISPLAY=y
CONFIG_ZMK_DISPLAY=n
# Turn off sleep
CONFIG_ZMK_SLEEP=n

View File

@ -10,7 +10,7 @@ CONFIG_ZMK_COMBO_MAX_PRESSED_COMBOS=8
CONFIG_BT_MAX_CONN=6
# Enable display (layer in use is helpful)
CONFIG_ZMK_DISPLAY=y
CONFIG_ZMK_DISPLAY=n
# Turn off sleep
CONFIG_ZMK_SLEEP=n

View File

@ -10,7 +10,7 @@ CONFIG_ZMK_COMBO_MAX_PRESSED_COMBOS=8
CONFIG_BT_MAX_CONN=6
# Enable display (layer in use is helpful)
CONFIG_ZMK_DISPLAY=y
CONFIG_ZMK_DISPLAY=n
# Turn off sleep
CONFIG_ZMK_SLEEP=n

View File

@ -10,7 +10,7 @@ CONFIG_ZMK_COMBO_MAX_PRESSED_COMBOS=8
CONFIG_BT_MAX_CONN=6
# Enable display (layer in use is helpful)
CONFIG_ZMK_DISPLAY=y
CONFIG_ZMK_DISPLAY=n
# Turn off sleep
CONFIG_ZMK_SLEEP=n

View File

@ -6,29 +6,6 @@
#include <dt-bindings/zmk/matrix_transform.h>
/ {
chosen {
zmk,kscan = &kscan0;
};
kscan0: kscan_0 {
compatible = "zmk,kscan-gpio-direct";
label = "KSCAN";
input-gpios
= <&pro_micro_a 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_a 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_a 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_a 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 10 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 16 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 15 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
;
};
};
&pro_micro_i2c {
status = "okay";
@ -48,3 +25,27 @@
prechargep = <0x22>;
};
};
/ {
chosen {
zmk,kscan = &kscan0;
zephyr,display = &oled;
};
kscan0: kscan_0 {
compatible = "zmk,kscan-gpio-direct";
label = "KSCAN";
input-gpios
= <&pro_micro_a 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_a 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_a 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_a 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 10 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 16 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 15 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
;
};
};

View File

@ -6,30 +6,6 @@
#include <dt-bindings/zmk/matrix_transform.h>
/ {
chosen {
zmk,kscan = &kscan0;
};
kscan0: kscan_0 {
compatible = "zmk,kscan-gpio-direct";
label = "KSCAN";
input-gpios
= <&pro_micro_a 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_a 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_a 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_a 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 15 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 16 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 10 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
;
};
};
&pro_micro_i2c {
status = "okay";
@ -49,3 +25,28 @@
prechargep = <0x22>;
};
};
/ {
chosen {
zmk,kscan = &kscan0;
zephyr,display = &oled;
};
kscan0: kscan_0 {
compatible = "zmk,kscan-gpio-direct";
label = "KSCAN";
input-gpios
= <&pro_micro_a 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_a 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_a 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_a 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 15 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 16 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro_d 10 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
;
};
};

View File

@ -6,6 +6,26 @@
#include <dt-bindings/zmk/matrix_transform.h>
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
label = "DISPLAY";
width = <128>;
height = <32>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <31>;
segment-remap;
com-invdir;
com-sequential;
prechargep = <0x22>;
};
};
/ {
kscan0: kscan {
compatible = "zmk,kscan-gpio-matrix";
@ -46,25 +66,6 @@
chosen {
zmk,kscan = &kscan0;
zmk,matrix_transform = &default_transform;
};
};
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
label = "DISPLAY";
width = <128>;
height = <32>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <31>;
segment-remap;
com-invdir;
com-sequential;
prechargep = <0x22>;
zephyr,display = &oled;
};
};

View File

@ -6,6 +6,26 @@
#include <dt-bindings/zmk/matrix_transform.h>
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
label = "DISPLAY";
width = <128>;
height = <32>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <31>;
segment-remap;
com-invdir;
com-sequential;
prechargep = <0x22>;
};
};
/ {
kscan0: kscan {
compatible = "zmk,kscan-gpio-matrix";
@ -46,25 +66,6 @@
chosen {
zmk,kscan = &kscan0;
zmk,matrix_transform = &default_transform;
};
};
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
label = "DISPLAY";
width = <128>;
height = <32>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <31>;
segment-remap;
com-invdir;
com-sequential;
prechargep = <0x22>;
zephyr,display = &oled;
};
};

View File

@ -1,13 +1,13 @@
manifest:
remotes:
- name: zmkfirmware
url-base: https://github.com/arduxio
url-base: https://github.com/zmkfirmware
- name: zmk-ardux
url-base: https://github.com/arduxio
projects:
- name: zmk
remote: zmkfirmware
revision: ardux
revision: ae8299edb3d638f1332475b1da0fdf40afa43fe4
import: app/west.yml
self:
path: config

11
docker_dev.sh Executable file
View File

@ -0,0 +1,11 @@
#!/bin/bash
docker run --rm -it \
--name zmk-ardux-dev \
--network host \
--privileged \
-v /dev:/dev \
-v zmk:/workspaces/zmk \
-v $PWD/:/workspaces/zmk-ardux \
-v $PWD/.build:/workspaces/zmk/app/build \
zmk-ardux:latest \
/bin/bash

26
docker_setup_rpi.sh Executable file
View File

@ -0,0 +1,26 @@
#!/bin/bash
docker volume create zmk
cd .devcontainer
docker build --network host -t zmk-ardux:latest -f ./Dockerfile.rpi
docker run --rm \
--network host \
-v zmk:/workspaces/zmk \
zmk-ardux:latest \
/bin/bash -c "git clone https://github.com/zmkfirmware/zmk /workspaces/zmk/"
docker run \
--name zmk-ardux-setup \
--network host \
-v zmk:/workspaces/zmk \
zmk-ardux:latest \
/bin/bash -c "source ~/.bashrc && cd /workspaces/zmk && west init -l app/ && west update && west zephyr-export && pip3 install --user -r zephyr/scripts/requirements-base.txt"
docker commit zmk-ardux-setup zmk-ardux:latest
docker rm -f zmk-ardux-setup
cd ..

3
docker_snapshot.sh Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash
docker commit zmk-ardux-setup zmk-ardux:latest