ラベル 自作キーボード の投稿を表示しています。 すべての投稿を表示
ラベル 自作キーボード の投稿を表示しています。 すべての投稿を表示

2025年9月25日木曜日

QMK開発環境構築メモ

2025年4月13日日曜日

三回目の改名

 元々、「Tijuana LP」として製造したキーボードを「esAlice」に改名。
しかし、物理配列はAliceとは関係のないものなので「Woorden」に再改名。
しかししかし、この配列が完全なエンドゲームということで、「終了」を強調して言い切るというスラングの「Periodt」(ピリオット)に再々改名。

おそらくこれでもう変えることはないかな。

2025年3月30日日曜日

Tijuana LP改め、esAlice改め、Woorden

もともとは「Tijuana」のロープロファイル版を作ろうとして作ったので「Tijuana LP」と呼んでいたけど、Alice配列っぽくもあるので「esAlice」(似非Alice)って名前にいったん落ち着いた。

しかし、Alice配列は曲線配列にはなってなくて、キー配列のブロックが真ん中でまとまった形で折れているので、ちょっとこの名前は体を表してないなぁ〜、と思い、再び「Woorden」に改名した。

pidcodesにはプルリクを送ってはいるけど、まだマージされていないのでキーボード名称を変更してコミット/プッシュしておいた。

で、名前はこのままいくとして、「Tijuana LP」としてJLCPCBに製造してもらったPCBは、一回所だけ配線ミスがあり、ジャンパを飛ばさないと動かない状態だった。最初はピンヘッダを短く切り配線を削り露出させたパターン間をジャンパした。

ピンヘッダでジャンパ


しかし、これは見た目も悪いし厚みもあるし、なんかのきっかけで引っ掛けたりすると取れそうだったので、アルミ箔を幾重にも折りたたみハンダで固定し、上から紫外線硬化レジンでコーティングした。

アルミホイルでジャンパ

そして、このPCBの設計に使ったRP2040-Zeroのフットプリントが、以前に使ったことのなかったもので、ピンを刺すスルーホール径が1mmになっていて、コンスルー未対応になってしまった。とりあえず自分の使う分は自分でジャンパを飛ばして、RP2040-Zeroはピンヘッダでハンダ付けした。

MCUをピンヘッダでハンダ付け
 

ケースは最初、ミントグリーンのフィラメントで印刷した。スイッチプレートを白にして、白を基調としたイメージでまとめようと思っていたので、合うかなと思ってAmazonでポチっておいた。最近は、ケースを印刷する時に水平方向に印刷するのではなく、垂直になるように印刷している。

ケースを3Dプリンタで印刷

こうするとビルドプレートから簡単に剥がせるのと、ほとんどサポート材が要らないので造形が綺麗になるというメリットがある。このミントグリーンのケースに装着するとこんな感じ。

ケースを装着

光らせるとこんな感じ

LED点灯

しかし、やはり白いケースのほうが似合うような気がして、マットホワイトのフィラメントでケースを印刷してみた。

マットホワイトのケース

しかし、しかし、半透明好きの嗜好がうずうずしてきて、半透明フィラメントを買ってしまったので、同じくケースを印刷してみた。ついでにロータリーエンコーダーノブも印刷した。

半透明フィラメントのケース

なんか、かなり迷走しているが、今のところこのケースで落ち着いている。ロータリーエンコーダーノブはマットホワイトのものに戻している。

FR4のスイッチプレートそのままだと、なんか見た目がショボく感じるので、半透明フィラメントでデコレーションプレートを印刷してみた。デコレーションプレートは縦では印刷出来ないので、左右分割印刷になる。固定方法はケースにデコレーションプレート用のネジ穴はないので、スイッチプレート固定用の穴を流用する。

デコレーションプレートを装着

使っているキースイッチはChoc v2なので、CherryMX互換用のNPプロファイルキーキャップだと、盛大に底打ちをしてしまう。なので、XVXロープロファイルのキーキャップに交換した。
(デコレーションプレートがちょっと厚かったのか、ロープロファイルキーキャップでも底打ちしてしまう…)

XVXロープロファイルキーキャップ

この状態で頒布しようと思ったが、

  • ジャンパが必要
  • コンスルー非対応
  • ケースを印刷しないといけない
などの関係でBOOTHには出せていない。ジャンパを解消し、コンスルー対応のフットプリントに修正した設計は終わっているが、まだ製造には出せていない。
修正版


2024年4月20日土曜日

キーボードファームウェアのVial化

キーボードのファームウェアをVial化するための大きなポイントを記録に残しておく。
  1. 「keymap/vial/rules.mk」に下記を記述する。
    VIAL_ENABLE = yes
  2. 「keymap/vial/vial.json」を作成する。
    テンプレートは下記。
    {
      "lighting": "none",
      "matrix": {
        "rows": (row数),
        "cols": (col数)
      },
      "layouts": {
        "keymap": [
          (KLEからダウンロードしたJSONの「name」以外のデータを貼り付ける)
        ]
      }
    }
  1. 下記コマンドでキーボードGUIDを生成し、「keymap/vial/config.h」に追記する。
    $ python3 util/vial_generate_keyboard_uid.py
  2. 「keymap/vial/config.h」に下記アンロック設定を追記する。
    数字を変更すると、アンロックするキーコンビネーションが変わる。
    #define VIAL_UNLOCK_COMBO_ROWS { 1, 0 }
    #define VIAL_UNLOCK_COMBO_COLS { 1, 1 }

2022年7月11日月曜日

キーボード近況

最近使っているキーボードの紹介

GPK60-46SGR
GPK60-46SGR

まず最初が、配列が逆ハの字になっている、いわゆる「Alice配列」のキーボード「GPK60-46SGR」。
キーピッチは19.05mmで、標準ピッチ。
特徴としては、ProMicroに直接USBケーブルを挿すのではなく、USB-Cドーターカードを接続する。
本来はProMicroをPCBに直付するということになっているが、前回それでProMicroが逝って、取り外せなくなってPCBを一枚無駄にしているので、この写真の状態では抜き差し出来るコンスルーを使用。
使用しているキースイッチは、Gateron Silent Clear。
本当は、Kailh BOX Silent Pinkが欲しかったが、ディスコンになり市場がら消えているので、同じ特性のスイッチを探してこれに辿り着いた。
キーの重さは同じ35gfで、キー特性はリニア。
キーキャップはNPプロファイルの無刻印。




Nora FW

次が見るからに薄そうな「Nora FW」。
もともと同じ作者が「Johns」というキーボードを出していて、それの狭ピッチバージョンで、「Narrow Johns」→「Nora Johns」→「Nora」というダジャレとのこと。
これはウリが「狭ピッチにして60%ケースに可能な限りキーを詰め込んだ」というもの。
私は中央にスペースを設けて左右分離にする「FW」レイアウトにしている。
本来のFWレイアウトよりもキーを少なくして、ポリプロピレン板にカーボン柄ラッピングシートを貼って使っていないキースイッチ穴を塞いでいる。
使っているスイッチは、Kailh Choc v1 RedPro。
キーキャップは、人気の高いMBK Legend glow。




BROOKTEN

最後は、テンキーと磁石でドッキングする「BROOKTEN」。
テンキー部分は置き場所がないので使っていないが、4極の端子を持っていてI2Cで通信出来る磁気ポゴピンで合体することの出来るテンキーが付いてくる。
このテンキーのProMicro部分がかなりトリッキーなので、電子工作初心者にはちょっとオススメ出来ない。
このBROOKTENは、私の理想にかなり近く、右手側の上から二段目のキーが6個だったらエンドゲームしていたかもしれないキーボード。
なにがいいって、60%よりも若干小さいサイズと、2つのロータリーエンコーダが付けられること。
手元で音量を変えられるのは、かなり便利。
使っているスイッチは、Kailh BOX Silent Pink。
キーキャップは、GPK60-46SGRと同じNPプロファイル。

2021年12月15日水曜日

キーボード作りデビュー

 この記事は キーボード #3 Advent Calendar 2021 の16日目の記事です。


2021年の私の最大のトピックは、キーボード作りデビューをしたことです。なのでこのアドベントカレンダーでは、私が最初のキーボードを組んだ経緯・感想を書きたいと思います。

以前から趣味と仕事両方に使うキーボードにはかなりこだわっていて、2000年代始め頃から良さそうなキーボードを探しては購入し、気に入らなければまた探して…を繰り返してきました。Cherry社のいろんな軸や、静電容量無接点方式のキーボードの存在は小耳に挟んではいましたが、静電容量無接点は高価で、Cherryには納得の行く軸がありませんでした。

しかし、そこにCherryが静電容量無接点に近い感触の「赤軸」を出します。店舗で試し打ちしてみたところ、なかなかいい感じです。しかし、購入には至りませんでした。

そして、2021年の春頃にAmazonで赤軸のメカニカルキーボードが安く売っているのを見つけました。とりあえずそれを購入してみることにしました。

Havit

20年ぶりくらいのメカニカルキーボードです。キーキャップにOリングも付けてちょっとだけ静音にこだわってみたりもしました。

Oリングを装着

音もいかにもメカニカルキーボードっぽく、オンライン会議などをしていると「メカニカルキーボード使ってます?」などと訊かれることもあり、ドヤっていました。

しばらくはこれを使っていたのですが、どうもキーボードのサイズがちょっと大きいな…と感じてきます。そもそもテンキーはほとんど使わないのと、カーソルキーはホームポジションから手が離れるので、AutoHotKeyで設定している「Alt+Ctrl+h、j、k、l」を使っていました。

そこで、調べてみるとファンクションキーとテンキー部分のない「60%キーボード」というものがあると知りました。Amazonで検索してみると、「RK61」というのがクチコミがいいので、これの赤軸を購入しました。

Royal Kludge 61

一緒にグレーのキーキャップを買いました。

グレーのキーキャップに交換

軸自体はHavitと同じなので打鍵感はほとんど変わらないのですが、キーボード自体のサイズと、打鍵音が違います。Havitもキー入力が楽しかったのですが、より楽しくなりました。

しかし、この配列だとアクサングラーブ(バッククォート)の位置にESCキーが来るのですが、そのままESCキーにFnコンビネーションでバインドされているので、打ちづらくなりました。

あとは、やはり独立したカーソルキーが欲しいのですが、既存のモデルだとほとんどが十字に並んでいるものが多く、vimと同じ形で使える横並びのカーソルキーのものが皆無でした。

それならば、ないのであれば作ってしまおうと調べてみると、自作キーボードというものであれば作れそうだということが分かりました。

まずはPCB。私の作りたい配列だと、右下に1Uを4つと、Ctrlキーを置きたいので、5つキースイッチが設置する必要があります。この配列だと「DZ60 REV3.0」というもので出来そうということが分かりました。「DZ60 RGB V2」という、キースイッチの交換が出来るPCBもあるのですが、このPCBは配列が固定なので使えませんでした。

PCBは「DZ60 REV3.0」と決まったのですが、これはキースイッチをPCBにハンダ付けする必要があります。しかし、私は星の数ほどある(言い過ぎ)キースイッチの種類で、どれがしっくりくるか分からないため、いろいろ交換したいと思い、ソケット化することにします。

まずは、PCB、アルミプレート、キーキャップ、キースイッチ、プラスチックケース、スタビライザーを遊舎工房さんでポチりました。

キースイッチは「Kailh BOX Silent Pink」にしました。キースイッチは交換可能にする予定なので、このキースイッチを使ってみて、気に入らなければまた他のを試してみようと思っていたのですが、結論としては大正解でした。私の好みにドンピシャ!でした。

Kailh BOX Silent Pink

そして、ソケット化するためのMil-Maxソケットをマルツさん経由でDigi-Keyから130個買いました(これが後々後悔することになります)。

DZ60 REV3.0

これにMil-Maxソケットをハンダ付けしていきます。一般的な60%キーボードだと61キーが多いのですが、私は右下をVimmerカーソルキーにしているので、これは63キーになりMil-Maxソケットが126個必要になります。

そうなんです、130個買ったので4つしか失敗出来ないんです。


ハイ、7つ失敗しました…。


しょうがないので次に作るキーボード用も含めて150個を追加注文しました。それまではキーレイアウトをいろいろ試してワクワクを持続させていました。

アンダーグローテスト

キーレイアウトはこんな感じにしました。

VIAでの設定画面

右に「LCtrl」がありますが、間違いではありません。Windowsの設定で「RCtrl+スペース」で入力言語の切り替えをさせているので、「A」の左にあるCtrlとスペースの組み合わせだけで機能させたいのでした。

そして、追加のMil-Maxが届いたのでハンダ付けし、ソケット化したDZ60 REV3.0が完成しました。このソケット化ですが、実は一番左上のキースイッチの右のソケットだけMil-Maxを使っていません。これは、ここだけMil-Maxが入らないくらい細くなっているのです。なので、まずAmazonで導電ゴムを買いました。

導電ゴム

さらに、Amazonでゴムを貼り付けられる接着剤を買いました。

接着剤
この接着剤で導電ゴムをスイッチの右足が刺さる穴のところに貼り付けます。その後にピンバイスで小さな穴を空けます。こうすると、キースイッチの右足をほんのりと斜めにしておくと、正しく反応するようになり、キースイッチの交換が出来るようになります。

すべてのパーツが揃い、ソケット化も出来たので、組み立てていきます。



こんな感じで、私の最初のキーボードが完成しました。キーの重さが35gfでかなり軽く、これも狙っていた通りかなり快適で、今後のキーボードは全部35gfにしたいくらいになりました。
ここでエンドゲームかな…とも思ったのですが、このキーボードを組んでる時にすでに「やはりキーボードは薄くないと」という考えが頭から離れなくなり、すぐに次のキーボード作成に取り掛かるのでした。

その話はまたいづれ…。

2021年10月24日日曜日

Outemuロープロファイルキーボード

前回からの続き。

CherryMX互換のキースイッチである「Outemuロープロファイルキースイッチ」を使って、薄型のメカニカルキーボードが作りたい!となって試行錯誤してきましたが、なんとか形になりました。

ちょっと前に、薄いキーキャップを教えてもらい、見た目もロープロファイルキーボードっぽくなり、あとは音だけとなっていましたが、Amazonでチューブタイプのルブ205を買い、全てのキースイッチとスタビライザーをルブりました。
205は粘度が高いので、スタビライザー以外に使う時は出来るだけ薄く塗るようにとアドバイスを貰っていたので、慎重に、慎重に、付け過ぎないようにルブりました。

そして、もうここまで来たら、思いつく限りの静音手段を全てやってしまおうと思い、TALPでキースイッチフォームを2種類買いました。
ここまでやって、静音にならなかったら、またバラして他の静音施策を試そうと思い組み上げたところ…ほぼ無音になりました(笑)
音的には、ほぼほぼ理想的な音になりました。
メカニカルな音がしないので、若干寂しい気はしますが、静音を求めていたので満足です。

次は薄さを追求しようと思います。
キースイッチとしては、KailhのChoc V1か、Gateronのロープロファイルを使おうかな、と思っています。

最後に、Kailh BOX Silent Pinkとの比較動画を載せておきます。




2021年10月6日水曜日

キースイッチの音比較

キーボードタイプ音比較!

Gateron Red

Kailh BOX Silent(Pink)





二種類のキーボードを同じアングルで打鍵し音比較動画を撮ってみました。




最初の黒いキーボードは「Gateron赤軸」のキーボードです。
後半のグレーのキーボードは「Kailh BOX Silent Pink軸」のキーボードです。
このKailh BOX Silent Pink軸が、メカニカルキーボードとは思えないくらいの静音で、キースイッチを分解してみると分かるのですが、BOXの名の通り金属端子部が箱に入っているような感じになっており、さらに金属端子を押す仕組みも小さなパーツになっており、静音にするための努力があちこちに見えます。
私は、可能な限り静かなメカニカルキーボードが好きなので、このキースイッチは私の好みにドンピシャ!でした。

2021年10月3日日曜日

ロープロファイルキースイッチ

ロープロファイルというワクワク

昔ながらのメカニカルキーボードに憧れて、自作キーボードなんていう酔狂な趣味に手を出してしまった人は、キーボード自体のスタイリングに求めるのは重厚さだったり存在感だったりする事が多いと思われ、あまりキーボード自体を薄くしようという事にこだわる人は少ないんじゃないかな~とは思うところではあります。実際、私も一台目に組んだキーボードは、見た目は完全に昔ながらのメカニカルキーボードになっています。

マイファースト自作キーボード

このキーボードで使っている「Kailh BOX Silent Pink」キースイッチは本当に静かで、打鍵音を出来るだけ静かにしたいキーボードを作りたい人には、オススメしたいキースイッチです。キースイッチには一切手を加えておらず、スタビライザーをルブった以外はなにもしないで、極静音キーボードが作れてしまいました。

Kailh BOX Silent Pink


しかし、私はメカニカルキーボードでも、メンブレンやバタフライ、パンタグラフキーボードまでとはいかなくとも、出来るだけ薄くしたい!

一応、メカニカルキーボード用のキースイッチにも「ロープロファイル」という、数ミリだが背の低いキースイッチは販売されています。有名なところでは、Keychronでも使われているGateronのものや、独自キーキャップ規格のKailhの「Choc V1」、「Choc V2」などなど。

しかし、このどちらのキースイッチも、スイッチを薄くするためにCherryMXとの互換性を捨ててしまっています。その代わり、これらのスイッチを使うと、理想的とも言えるほどの薄さのキーボードが実現出来ます。正直、キーボード自体のスタイリングで言えばKeychronはかなり理想に近いです。

とは言うものの、そもそも、キーボードを自作しようとした理由が「使いたいキー配列のキーボードがないから」なので、Keychronなどでお茶を濁すのではこれまた本末転倒。

というわけで、CherryMX互換のロープロファイルキースイッチを探してみると、私が唯一見つけられたのが「Outemu ロープロファイルキースイッチ」でした。キースイッチのピンと、キーキャップがCherryMX互換なので、手元にあるもろもろのパーツがそのまま使えます。当然、CherryMX互換なので、PCBとしてはDZ60 REV3.0がそのまま使えます。

DZ60

このロープロファイルキーボード計画では、ケースも薄めのものが使いたかったので、KBDfansにDZ60 REV3.0とポリカーボネートのプレートと一緒にアルミのロープロファイルケースを注文。1週間くらいで到着しました。

KBDfanから買ったもの

このキーボードで肝になる、Outemuロープロファイルキースイッチは遊舎工房から必要な63個を越えるように70個注文(10個単位なので)。一緒にスタビライザーを2セットと、キーキャップも注文した。こちらも一週間くらいで届きました。

Outemuロープロファイルキースイッチ

届いたのでとりあえず組んでみたのですが、見た目は普通のメカニカルキーボードになり、ちょっと拍子抜け。

ロープロファイルのはずのキーボード

ロープロファイル感は一切ありません。そして、画像をよく見ると分かると思いますが、スタビライザーを使っているキーが、他のキーよりもちょっと高くなっています。実はこの現象は、このキースイッチを使ったという方のblogやYouTubeなどを見ていて分かっていました。スタビライザーを2組注文したのは、この現象を解決する方法を実験するためでもあったりします。

そこで最初にやった施策としては、スタビライザーの上限を制限してみる事でした。こうすることでスタビライザーを使ったキーの高さを低くしてみようという魂胆。


結果から言うと、キーの高さは同じになりました。ところが、キーの戻りを制限したことで、キーが押されたままの状態となってしまい、あえなく失敗。元に戻しました。

そこで、サリチル酸さんの自作キーボードDiscordで質問したところ、CherryMX互換のロープロファイルキーキャップを教えて貰いました。Amazonでも売っていたのですが、Amazon発送ではないので遊舎工房で注文しました。そして無事に到着。

ロープロファイルキーキャップ

これを装着したところ、見た目もロープロファイルキーボードっぽくなりました(見た目はちょっと満足)。

ロープロファイルっぽいキーボード

しかし、スタビライザーを使っているキーが高くなってしまう問題は解決していません。そこでキーを横から見てみると、キーが高くなっている原因としては、キーキャップの脚が長いだけなのではないかと推測。であれば、脚を半分に削ればいいんじゃないかと思い削ってみたところ、他のキーとほぼツライチになりました。これで正真正銘ロープロファイルキーボードになりました(多分)。

脚を半分の長さに削った

スタイリングはいい感じにまとまったのですが、どうしても「Kailh BOX Silent」と比べてしまい、カチャカチャ音が気になります。「Kailh BOX Silent」と比べたら、ほとんどのキースイッチがカチャカチャ音に聴こえてしまう気はしますが…。

そこで、ふたたびDiscordで質問したところ、ルブを205にしてキースイッチもルブったほうがいいと教えて貰いました。なのでで、Amazonで量の多いチューブタイプを注文←イマココ

到着次第、70個のキースイッチをすべて分解しルブってみる予定です。

そして、後編はこちら

QMK開発環境構築メモ

## Ubuntuコンテナイメージ取得 ```bash docker pull ubuntu:24.04 ``` --- ## コンテナ作成 ```bash docker run -it --name qmk_dev -v [マウント元ディレクトリ]:[マウント先ディレクトリ]...