Skip to content

Commit

Permalink
Initial Commit
Browse files Browse the repository at this point in the history
  • Loading branch information
rngcntr committed Dec 29, 2024
1 parent 51ad37f commit ae24b25
Show file tree
Hide file tree
Showing 12 changed files with 26,100 additions and 2 deletions.
37 changes: 35 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,35 @@
# armadillo1
A 36 key wireless split keyboard
# Armadillo1

![Image of the fully assembled keyboard](img/banner.jpg)

It all started with a [Talk by ink](https://media.ccc.de/v/gpn22-498-tastaturen-ein-drama-mit-10-fingern) at GPN22, which inspired me to build my own customized split keyboard. This one is fitted to the exact size of my hands and features a 36 key layout.

## Layout

I used [ergopad](https://pashutk.com/ergopad/) to determine the exact poitions of my fingertips that feel most comfortable. Then, I replicated the resulting layout manually using [ergogen](https://ergogen.ceoloide.com/).

## Keymap

![Alpha Layer Keymap](keymap/img/alpha-layer.png)

For more details, see the [keymap README](keymap/README.md).

## Switches

Kailh MX Jade. They're clicky switches with an above-average activation force.

## Keycaps

Smolo Keycaps from [BeeKeeb](https://shop.beekeeb.com/product/smolo-low-profile-keycap/).

## Risers

Self-printed. The design is available on [MakerWorld](https://makerworld.com/en/models/809248#profileId-750244).

## Case

Self-printed. I'm not yet fully satisfied by the design, so it's not yet published. If you're actually interested to print one yourself, please poke me.

## Stands

Two [MagSafe Stands](https://de.ugreen.com/products/45378?_pos=28&_sid=3c43091c2&_ss=r) by Ugreen.
Binary file added img/banner.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions keymap/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Armadillo Keymap

## How to use

### armadillo.keymap

The keymap configuration to include in your zmk config.

### armadillo-keymap-layout.json

You can import this file along with `armadillo.keymap` to [nickcoutsos.github.io](https://nickcoutsos.github.io/keymap-editor/) for a nice visualization of the layout. However, this tool doesn't pick up key combos. I visualized them by hand in the `symbols` layer by adding an icon between two keys. The combos are available in any layer.

![Alpha Layer Layout](img/alpha-layer.png)
![Symbols Layer Layout](img/symbols-layer.png)
![Controls Layer Layout](img/controls-layer.png)

The full `zmk` config can be found over at [rngcntr/zmk-config](https://github.com/rngcntr/zmk-config).
**WARNING**: The pin config differs from the one defined by the PCB by *one pin*, because the pin in question was damaged on my controller. I only noticed this once the PCB was already produced. Flashing this version without modification will cause one column to be ignored.
47 changes: 47 additions & 0 deletions keymap/armadillo-keymap-layout.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{
"layouts": {
"LAYOUT": {
"layout": [
{ "row": 0, "col": 0, "x": 0.057, "y": 0.893, "r": -7, "rx": 0.557, "ry": 1.393 },
{ "row": 0, "col": 1, "x": 1.238, "y": 0.212, "r": -2, "rx": 1.738, "ry": 0.712 },
{ "row": 0, "col": 2, "x": 2.358, "y": 0 },
{ "row": 0, "col": 3, "x": 3.484, "y": 0.583, "r": 3, "rx": 3.984, "ry": 1.083 },
{ "row": 0, "col": 4, "x": 4.633, "y": 0.701, "r": 6, "rx": 5.133, "ry": 1.201 },
{ "row": 0, "col": 5, "x": 8.585, "y": 0.701, "r": -6, "rx": 9.085, "ry": 1.201 },
{ "row": 0, "col": 6, "x": 9.734, "y": 0.583, "r": -3, "rx": 10.234, "ry": 1.083 },
{ "row": 0, "col": 7, "x": 10.86, "y": 0 },
{ "row": 0, "col": 8, "x": 11.98, "y": 0.212, "r": 2, "rx": 12.48, "ry": 0.712 },
{ "row": 0, "col": 9, "x": 13.161, "y": 0.893, "r": 7, "rx": 13.661, "ry": 1.393 },

{ "row": 1, "col": 0, "x": 0.179, "y": 1.885, "r": -7, "rx": 0.679, "ry": 2.385 },
{ "row": 1, "col": 1, "x": 1.273, "y": 1.211, "r": -2, "rx": 1.773, "ry": 1.711 },
{ "row": 1, "col": 2, "x": 2.358, "y": 1 },
{ "row": 1, "col": 3, "x": 3.432, "y": 1.582, "r": 3, "rx": 3.932, "ry": 2.082 },
{ "row": 1, "col": 4, "x": 4.528, "y": 1.696, "r": 6, "rx": 5.028, "ry": 2.196 },
{ "row": 1, "col": 5, "x": 8.69, "y": 1.696, "r": -6, "rx": 9.19, "ry": 2.196 },
{ "row": 1, "col": 6, "x": 9.786, "y": 1.582, "r": -3, "rx": 10.286, "ry": 2.082 },
{ "row": 1, "col": 7, "x": 10.86, "y": 1 },
{ "row": 1, "col": 8, "x": 11.945, "y": 1.211, "r": 2, "rx": 12.445, "ry": 1.711 },
{ "row": 1, "col": 9, "x": 13.039, "y": 1.885, "r": 7, "rx": 13.539, "ry": 2.385 },

{ "row": 2, "col": 0, "x": 0.301, "y": 2.878, "r": -7, "rx": 0.801, "ry": 3.378 },
{ "row": 2, "col": 1, "x": 1.308, "y": 2.211, "r": -2, "rx": 1.808, "ry": 2.711 },
{ "row": 2, "col": 2, "x": 2.358, "y": 2 },
{ "row": 2, "col": 3, "x": 3.379, "y": 2.581, "r": 3, "rx": 3.879, "ry": 3.081 },
{ "row": 2, "col": 4, "x": 4.424, "y": 2.69, "r": 6, "rx": 4.924, "ry": 3.19 },
{ "row": 2, "col": 5, "x": 8.795, "y": 2.69, "r": -6, "rx": 9.295, "ry": 3.19 },
{ "row": 2, "col": 6, "x": 9.839, "y": 2.581, "r": -3, "rx": 10.339, "ry": 3.081 },
{ "row": 2, "col": 7, "x": 10.86, "y": 2 },
{ "row": 2, "col": 8, "x": 11.91, "y": 2.211, "r": 2, "rx": 12.41, "ry": 2.711 },
{ "row": 2, "col": 9, "x": 12.917, "y": 2.878, "r": 7, "rx": 13.417, "ry": 3.378 },

{ "row": 3, "col": 2, "x": 2.808, "y": 3.592, "r": 4, "rx": 3.308, "ry": 4.092 },
{ "row": 3, "col": 3, "x": 3.971, "y": 3.835, "r": 20, "rx": 4.471, "ry": 4.335 },
{ "row": 3, "col": 4, "x": 5.161, "y": 4.194, "r": 36, "rx": 5.661, "ry": 4.694 },
{ "row": 3, "col": 5, "x": 8.057, "y": 4.194, "r": -36, "rx": 8.557, "ry": 4.694 },
{ "row": 3, "col": 6, "x": 9.247, "y": 3.835, "r": -20, "rx": 9.747, "ry": 4.335 },
{ "row": 3, "col": 7, "x": 10.41, "y": 3.592, "r": -4, "rx": 10.91, "ry": 4.092 }
]
}
}
}
81 changes: 81 additions & 0 deletions keymap/armadillo.keymap
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
#include <behaviors.dtsi>
#include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/keys.h>

/ {
behaviors {
bhml: balanced_homerow_mod_left {
compatible = "zmk,behavior-hold-tap";
label = "Balanced Homerow Mod Left";
bindings = <&kp>, <&kp>;

#binding-cells = <2>;
tapping-term-ms = <200>;
quick-tap-ms = <0>;
hold-trigger-key-positions = <5 6 7 8 9 15 16 17 18 19 25 26 27 28 29 33 34 35>;
flavor = "balanced";
};

bhmr: balanced_homerow_mod_right {
compatible = "zmk,behavior-hold-tap";
label = "Balanced Homerow Mod Right";
bindings = <&kp>, <&kp>;

#binding-cells = <2>;
tapping-term-ms = <200>;
quick-tap-ms = <0>;
flavor = "balanced";
hold-trigger-key-positions = <0 1 2 3 4 10 11 12 13 14 20 21 22 23 24 30 31 32>;
};

moto: momentary_or_to_layer {
compatible = "zmk,behavior-hold-tap";
label = "Momentary when held, to when tapped";
bindings = <&mo>, <&to>;

#binding-cells = <2>;
tapping-term-ms = <200>;
quick-tap-ms = <0>;
};
};

keymap {
compatible = "zmk,keymap";

ALPHA {
bindings = <
&kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P
&bhml LGUI A &bhml LEFT_ALT S &bhml LSHFT D &bhml LCTRL F &kp G &kp H &bhmr RCTRL J &bhmr RSHFT K &bhmr RALT L &bhmr RGUI SEMICOLON
&kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH
&moto 2 2 &moto 1 1 &kp TAB &kp SPACE &kp ENTER &kp BACKSPACE
>;
};

NUMERIC {
bindings = <
&kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0
&trans &trans &trans &trans &trans &trans &kp N4 &kp N5 &kp N6 &kp BACKSPACE
&trans &trans &trans &trans &trans &trans &kp N1 &kp N2 &kp N3 &kp DELETE
&moto 3 3 &moto 0 0 &kp TAB &kp SPACE &kp KP_N0 &kp KP_DOT
>;
};

SYMBOLS {
bindings = <
&kp EXCL &kp AT_SIGN &kp HASH &kp DLLR &kp PRCNT &kp CARET &kp AMPS &kp STAR &kp LPAR &kp RPAR
&kp GRAVE &trans &trans &trans &trans &kp MINUS &kp EQUAL &kp BACKSLASH &kp LEFT_BRACKET &kp RIGHT_BRACKET
&trans &trans &trans &trans &trans &trans &trans &trans &trans &kp SINGLE_QUOTE
&moto 0 0 &moto 3 3 &kp TAB &kp SPACE &kp CAPSLOCK &trans
>;
};

CONTROLS {
bindings = <
&kp C_BACKLIGHT_TOGGLE &kp K_MUTE &kp C_PLAY_PAUSE &trans &trans &kp INSERT &kp PRINTSCREEN &kp SCROLLLOCK &kp PAUSE_BREAK &bt BT_CLR
&kp C_BRIGHTNESS_INC &kp C_VOL_UP &kp C_NEXT &trans &trans &kp LEFT &kp DOWN &kp UP_ARROW &kp RIGHT &bt BT_NXT
&kp C_BRIGHTNESS_DEC &kp C_VOL_DN &kp C_PREV &trans &trans &kp HOME &kp PAGE_DOWN &kp PG_UP &kp END &bt BT_PRV
&moto 0 0 &moto 0 0 &kp ESC &kp ESC &trans &bootloader
>;
};
};
};
Binary file added keymap/img/alpha-layer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added keymap/img/controls-layer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added keymap/img/symbols-layer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit ae24b25

Please sign in to comment.