[自キ]手配線で配列調整できるカラムスタッガードのキーボードFCS42Sを作る

自作キーボード

自作キーボードのキットは様々な配列のものが販売されています。

独自配列のキットが多くありますが、どのくらい列がズレているのが良いのか、合っているのかを調べるためにいくつもの種類の配列を試すのはなかなか大変です。

そこでカラムスタッガードの縦ズレを自由に調節できる分割キーボード「FCS42S」を作ることにします。

設計方針

カラムスタッガードのキーボードを試してみたい。しかしどの配列がいいのか、自分にはどの程度の縦ズレが合うのか分からず迷う。

キットを購入する前にまずは自分に合った配列をみつけようと思い、配列を自由に調整できるキーボードを作ることにしました。

親指は縦横にずらすのではなく回転させるようにしました。

手をグーパーさせると他の指はまっすぐ屈伸しますが小指は内側から外側に開いていくように思えます。アリス配列等の小指が別角度になっているのは合理的なようなので搭載を試みました。

命名は適当にフリーカラムスタッガード42キースプリットです。英語は苦手です。

材料

設計図

elecrowさん(Acrylic Laser Cutting – Order Online (elecrow.com))の200 x 200 mmサイズ2 mm厚で注文しました。

キースイッチの足でレールにしてスライドさせ配列を調整します。

ボトムプレートとスイッチプレートのサンドイッチで4 mm分のスペーサを挟みます。

親指は左のキーを中心に回転、他の指は縦にスライドします。

小指は外側に回転し開くようになっています。

組み立て

手配線かつあまり組み立てを考えずにアクリルを注文したのでめちゃくちゃです。

アクリルカット

細かい部品多数でしたがカットしていただけました。elecrowさんには感謝しかないです。

4 mm分稼ぎたかったので細かくアクリルカットを注文しましたが、今思えば4 mmのスペーサを使えばよかったと思う

キースイッチの固定

両手で42キー分使います。

キースイッチをプレートに嵌め、接着剤で固定し抜けないようにします。

予備はんだとスペーサ仮置き

キースイッチのピンを予備はんだします。

配線時にスペーサを置く部分に干渉しないように気を付けて配線します。

4 mmでちょうどトッププレートから配線したぐらいの深さになります。

親指部分の丸いスペーサは外形が小さなものを用います。

ピンを曲げてから予備はんだした方が良かったかもしれない

ダイオード

ダイオードをはんだ付けします。

row配線

柔らかいリッツ線でダイオード間を配線します。

スライドさせながら余裕を持たせる長さを決定します。

最初はpvc皮膜線でやろうと思っていたのだけど考えていたよりスペースが狭く柔軟性が必要だった

たまたまリッツ線を持っていて助かった

col配線

縦方向と親指パーツをETFE線で配線します。

promicroに接続する部分はpvc皮膜線を引き出します。

だいぶ汚い。

皮膜をはんだごてで溶かしてーというのを初めて行ったのだがなかなか慣れずコツがつかめない……

サンドイッチ

マスキングテープでねじを外れないように固定。

仮置きしていたものをねじに移します。

ポロポロ落ちてめんどくさかった

ボトムプレートを連結します。

スイッチプレートを乗せてネジ止め。

裏側にゴム足を取り付ける。

promicro配線

配線をまとめて2.54XHコンタクトをつけます。

左右のシリアル通信用のケーブルをパラコードに通しXHコンタクトをつけます。左右のvcc、gnd、通信ピン同士を接続します。

付属のピンヘッダをはんだ付けしカットします。

promicroプレートとpromicroにマジックテープを貼りつけます。

promicroのピンヘッダにXHコネクタを挿し、キーボード本体に固定します。

思ってたより高さ必要だったしピンヘッダじゃなくてちゃんとハウジング使った方が良かったと思う  

結局ネジで押さえつける形になった

完成





手前


ファームウェア

rules.mk

# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = caterina
# Build Options
BOOTMAGIC_ENABLE = no      
MOUSEKEY_ENABLE = yes        
EXTRAKEY_ENABLE = yes     
CONSOLE_ENABLE = no         
COMMAND_ENABLE = no         
NKRO_ENABLE = yes            
BACKLIGHT_ENABLE = no       
AUDIO_ENABLE = no           
UNICODE_ENABLE = no         
BLUETOOTH_ENABLE = no       
RGBLIGHT_ENABLE = no       
SWAP_HANDS_ENABLE = no      
SPLIT_KEYBOARD = yes

分割なのでSPLIT_KEYBOARD = yesとする。


config.h

#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED 
#define PRODUCT_ID 0x0005
#define DEVICE_VER 0x0001
#define MANUFACTURER Tsuiha
#define PRODUCT fcs42s

/* key matrix size */
#define MATRIX_ROWS 8
#define MATRIX_COLS 6

#define MATRIX_ROW_PINS { D7, E6, B4, B5}
#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6}
#define MATRIX_ROW_PINS_RIGHT { B1, B3, B2, B6}
#define MATRIX_COL_PINS_RIGHT { D4, C6, D7, E6, B4, B5}

#define DIODE_DIRECTION ROW2COL

#define SOFT_SERIAL_PIN D2

#define DEBOUNCE 5

行列の数とピンを指定。

今回はダイオードの向きをROW2COLにした。

シリアル通信するピンを指定。


fcs42s.h

#pragma once

#include "quantum.h"

#define LAYOUT( \
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
               L30, L31, L32, R30, R31, R32                \
){ \
{ L00,	 L01, 	L02, 	L03,	L04,	L05 }, \
{ L10,	 L11, 	L12, 	L13,	L14,	L15 }, \
{ L20,	 L21, 	L22, 	L23,	L24,	L25 }, \
{ KC_NO, KC_NO, KC_NO,  L30,	L31,	L32 }, \
{ R00,	 R01, 	R02, 	R03,	R04,	R05 }, \
{ R10,	 R11, 	R12, 	R13,	R14,	R15 }, \
{ R20,	 R21, 	R22, 	R23,	R24,	R25 }, \
{ R30,   R31,	R32,	KC_NO, KC_NO, KC_NO } \
}

上半分がkeymap.cで使う行列で下半分がconfig.hで指定した行列のようです。


keymap.c

#include QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LAYOUT(
KC_ESC  ,KC_Q ,KC_W ,KC_E ,KC_R   ,KC_T  ,KC_Y   ,KC_U   ,KC_I   ,KC_O   ,KC_P    ,KC_BSPC , \
KC_GRV  ,KC_A ,KC_S ,KC_D ,KC_F   ,KC_G  ,KC_H   ,KC_J   ,KC_K   ,KC_L   ,KC_MINS ,KC_ENT  , \
KC_LGUI ,KC_Z ,KC_X ,KC_C ,KC_V   ,KC_B  ,KC_N   ,KC_M   ,KC_COMM,KC_DOT ,KC_SLSH ,KC_DEL  , \
                     MO(1),KC_LCTL,KC_SPC,KC_LSFT,KC_LALT,KC_LGUI \
),

LAYOUT(
KC_PSCR,LSFT(KC_1),LSFT(KC_2),LSFT(KC_3),LSFT(KC_4),LSFT(KC_5),LSFT(KC_6),LSFT(KC_7),LSFT(KC_8),LSFT(KC_9),LSFT(KC_JYEN),KC_EQUAL, \
KC_TAB,KC_1,KC_2,KC_3,KC_4,KC_5,KC_6,KC_7,KC_8,KC_9,KC_0,KC_F7  , \
KC_F2 ,KC_DOWN ,KC_LEFT  ,KC_UP,KC_RGHT,KC_B,KC_LBRC,KC_RBRC,KC_BSLS,KC_SCLN,KC_QUOT,KC_INT1, \
                    MO(1),KC_LCTL,KC_SPC,KC_LSFT,KC_LALT,KC_LGUI \
)
};

42キーで果たして十分にタイピングできるのだろうか。

ファームウェアの書き込みがなかなかうまくいかなかったのだが今回購入したpromicroは使えてはいるが大丈夫なやつなのだろうか。何か間違ったものを買っている気がしないでもない。

配列調整

格子配列

カラムスタッガード

小指に角度あり

反省点

機能的には欲しかった要素を満たすキーボードを作ることができた。がその完成度はかなりひどい出来なように思える。

配線・組み立ての難易度は低いがめんどくささがすごい。リッツ線は皮膜を溶かすともろくなるしねじがポロポロ落ちるし部品点数多い。

  • 配線をプレート間でなくボトムプレートの裏で行いリッツ線は使わない
  • プレート間をアクリルでなく4 mmのスペーサを使いそれに伴いボトムのネジ止め個所を各1か所に削減できそう

ボトムプレートが分割されているため小指部分がもろい

  • chocを使用しボトムプレートを2枚にする案もあったが裏から直接ドライバーでいじりたいため没になった。結局ネジポロポロでめんどくさいしそれでもよかったのかもしれない。

promicro周りが意味不明

  • ピンヘッダを使わず12ピンのハウジングで作ればよかったかもしれない。
  • 2.54 mmピッチが同じなのでXHコネクタを使ってみたが思っていたより高さがあり嵩張る。

見た目が汚い

  • 配線のことを何も考えずアクリルを注文していた。見た目線だらけで非常に汚い。

おわり

自由に配列を変え試すことができました。配列探しが始まります。

カラムスタッガードを使ってみると使いにくいと思っていたロウスタッガードにもいい部分が発見出来たりなかなか難しい。

トッププレートまでの高さが11 mm程で、ダイソーに売っていた竹のコースターがパームレストに高さがちょうどいい感じで使っています。

使ってみると案外42キーでも足りそうだがマクロパッドか何かあったほうがいい気がした。

分割キーボードは間にイヤホン通したりipad置いたり出来ていい。

あと1.5組分アクリルは余っているが追加で作る気にはなれない。めんどくさい。改善して作り直したいところ。

アクリルデータ↓

Keyboard/handwired/FCS42S at main · Tsuiha/Keyboard (github.com)



前の記事:[キーボード]メルカリでハンドメイド木製のパームレスト買ってみた

次の記事:

コメント

タイトルとURLをコピーしました