GithubHelp home page GithubHelp logo

sandy's Introduction

Sandy(サンディ)

Sandy keyboard

Sandy is a keyboard with key height optimization.

Layered PCB will make height differences for each key. This covers the lack of optimization to physical key layout that only adjust x-y direction in a plane.


Sandyは、スイッチの配置を立体的にして高さ方向への最適化を加えた、左右対称レイアウトの60%キーボードです。

平面上のキーレイアウトだけでは最適化しきれない部分を、キーの位置に応じてスイッチを配置する高さを変えることで補っています。

名前の由来は、立体的、つまり3Dという意味を込めて…

3D → スリーディー → さんディー → サンディ → Sandy

という言葉遊びで、Sandy(サンディ)に決まりました。


お知らせ

2023-11-04

キー割り当て書き換えツールRemapがQMKファームウェアのバージョン 0.22.2以降に対応したことに伴い、新しくビルドしたSandyのファームウェアを公開しました。
参考:Remap supports QMK Firmware 0.22.2 or higher

今すぐファームウェアを更新する必要はありませんが、ロータリーエンコーダへのキー割り当てを変更したい場合は、ファームウェアを更新するとよいでしょう。

Remapによる旧バージョンのサポート終了後は、ファームウェアを更新してください。

詳しくは、ビルドガイドの「Sandy関連ファイル」等をご覧ください。

特徴

  • 左右対称のキーレイアウト
    Jonesと同様の、2行目と3行目にずれのない、左右対称な、シンメトリカル ロースタッガードのレイアウトです。 左右対称のキーレイアウト

  • キースイッチを立体的に配置
    3段階の高さで、キースイッチを立体的に配置しています。 キースイッチの高さ

    平面上のキー配置だけでは最適化しきれない部分を、キーの位置に応じて高さを変え、立体的に配置することで補っています。
    Jonesに比べて、ホームポジションから遠いキーへの打鍵しやすさが向上しています。

  • 60%ケースと組み合わせられる
    GH60型ケース互換のネジ穴を用意してあるので、市販のケースと組み合わせて使用できます。
    ※詳しくはビルドガイドを参照

  • RemapVIAによるキー割り当て変更
    プログラミング等の知識がなくても、ブラウザ上で簡単にキー割り当てを変更することができます。

  • 外部EEPROM搭載
    Remapでたくさんのレイヤーを使用できます。

  • オプション機能
    以下のオプション機能を使用できます。

    • ロータリーエンコーダ
    • インジケータLED
    • アンダーグローLED

レイアウト

バリエーション

キーのバリエーションを含むレイアウトは以下の通りです。
Ctrl(左)とEnter(右)にはキーサイズのバリエーションがあり、最下行の**にはロータリーエンコーダを配置できます。 Keyboard Layout Editor: Sandy (DN0030)
Keyboard Layout Editor: Sandy (DN0030)

キーの高さ

キーの高さはLow(0mm), Middle(3.6mm), High(8.6mm)の3段階で、以下のように配置されます。
キーの高さ

推奨キーマッピング

このレイアウトは、左右の手の運指を同じにするため、SemiErgo Layoutに準ずるキーマッピングで使用することを念頭に設計されています。
つまり、一般的なロースタッガードレイアウトから、アルファ部の左手側Z行を左へ1キー、数字行の右手側を右側へ1キーずらしたものが、推奨キーマッピングとなります。

以下にSemiErgoを適用した推奨キーマッピングの例を示します。
枠で囲った部分が、一般的なロースタッガードからの変更箇所です。 SemiErgoを適用した推奨キーマッピング例 💡ヒント:このキーマッピング例ではスペースキーをSandS(Space & Shift)にしているので、左右端のシフトキーを取り除いています。

ビルドガイド

SNSタグ

#Sandy_kbd

ギャラリー

Sandy keyboard, v.0.1
v.0.1, Cherryプロファイルキーキャップ使用

Sandy keyboard, 試作2号機
v.0.1, KATプロファイルキーキャップ使用

Sandy keyboard, キーの段差(Cherryプロファイル)
キーの段差(Cherryプロファイル)

Sandy keyboard, キーの段差(KATプロファイル)
キーの段差(KATプロファイル)

Sandy keyboard, キーの段差(横と後ろ
キーの段差(横)

残る課題

Sandyは複数基板を重ねるという手法で製作しているため、その技術的な制限や、製作工程を複雑にしすぎない配慮により、全てのスイッチをなめらかな高さ変化で配置できていません。
そのため、高さ方向へ最適化しきれていない部分が残っています。

参考事例

  • Genesis2.5販売ページ
    行ごとに高さと傾きを変えることができる自作キーボードキット。

  • Thumbs Up!
    カラムスタガをベースに親指や**のキーを高くした設計の自作キーボードキット。

  • Kinesis Advantage series
    ”エルゴノミクス”、”3Dキーボード”と言えばこれが思い浮かぶのはこれ。凹形状にキーが配置されている。

  • Microsoft Sculpt
    ほんのり放射状に並んだキーと、**部が高くなった形状。

  • Dactyl
    3Dプリンタで作る、スイッチを3D配置したキーボード。

  • "3D" キーキャップ
    キーボードはそのままに、キーごとに高さを変えた3D形状のキーキャップ。MXスイッチ用。

  • Gravity Keycaps
    Choc用の3D形状キーキャップ。

開発経緯

元々の計画

当初(2021年1月ごろ)は、Chocスイッチを使用するキーボード、Noraの打鍵しやすさ向上を目的に、スイッチの配置を立体的に改修する計画でした。
Choc用キーキャップには、行ごとに高さの異なるプロファイルのものが存在しません。すべてのキーが同じ形状になっているため、1行目の数字行や、ホームポジションから遠いキーへ指が届きにくくなります。
その状況を改善するための改修計画でしたが、あまりモチベーションも上がらず、手をつけずに放置していました。

Sandy計画の始動

2022年12月の末ごろ、SMKJのアドベントカレンダーを久しぶりに読み返しながら、様々なアイデアや取り組みについて思いをめぐらせていました。 そのとき、ふとした思いつきでJonesのキーキャップを部分的に背の高いものに入れ替えたところ、思いのほか打鍵しやすくなることに気がつきました。

Jonesのキーキャップを部分的に背の高いものに入れ替えたテスト機
奥:通常のJones,手前:一部のキーを入れ替えたJones

Cherryプロファイルをベースにして、T Yは倍ほどの高さのSAプロファイル、GQなどは少しだけ背の高いKATプロファイルに交換しました。
この時点では左右のシフトなどをOEMプロファイルでほんの少し高くしようとしていますが、後にボツとなります。

これをきっかけとして、MXスイッチを使用するキーボード、Jonesを改修する計画として復活することになりました。

ロードテスト

先ほどのテスト機を使い部分的にキーキャップを交換してどのキーを最適化の対象にするかを調べたり、スチレンボードにスイッチをのせたモックアップを作成して最適な高さを探ったりしました。(0+2+2は、ベースの0mmに対して、1段目が2mm、2段目も2mmの段差を意味するメモ)

モックアップ

テスト機は、数字行をSAプロファイルへ、また、T YをSAプロファイル1行目のキーに交換してさらに高くした最終形態になりました。

最終形のテスト機

この形態をロードテストとして3ヶ月ほど使用し、日常的な使用で問題ないことを確認した上で基板の製作に取り掛かりました。

sandy's People

Contributors

jpskenn avatar

Stargazers

Nekoppoi avatar Mikkel Rask avatar blitzbyte avatar  avatar

Watchers

 avatar

sandy's Issues

最下行**2キーを高くする?

REの配線めんどい
コネクタ配置できるの?
とかいうのは置いといて、**2キーは高い方が良かったりしないか?

再検討

ロータリーエンコーダの配置箇所

どこにロータリーエンコーダーを配置するか?

  • 左端
  • 右端
  • その他(候補)
    • 最下行の**2キー
    • 右上

配置したとして、使いやすいの?
レイアウト変更とかまでして、頑張ってRE入れるのとかはナシの方向。

僕の体験上、ボリューム調整をREでおこなうのが直感的で便利に感じているが、左端とかだと、HHKB的なブロッカーをつけると、REがなくなってしまって残念。

ケース高さ(ハイプロ)を超える部分の見た目

子基板をいくつか取り付け、さらにそこへ取り付けるスイッチへのスイッチプレートを追加するため、通常の60%キーボードよりも、上部は10mm程度(キー高さが3-4mmの場合)はみ出すことになる。

調査:どのキーを高くする?

高さ最適化が必要なキーを決める。
とりあえず、基板とかの設計や製造の話は無視して、決定する。

「どこを最適化したいか?」
というのは、つまり、
「素のJones(平面だけ最適化)で打鍵しにくいと感じるキーはどれだ?」
ということ。


「こんなもんかな〜?」
という気分で高さを調整して、YouTubeとか見ながら(聴きながら)、原稿起こししてテスト。


高さ(3種類)

  1. 通常(かさ上げなし)
    アルファ部の大部分。
    素のJonesで特に不満のないキー。
  2. ちょい高
    ホームポジションから、少し遠いところ。
    通常とMAXをつなぐ中間箇所。
  3. MAX
    ホームポジションから、かなり遠いところ。
    1行目や、TYなど。

PCB: Base親基板、ネジ穴付近のカットライン調整

基板にネジ穴をカットするためのガイド穴を設けているが、
スイッチが子基板へ移動した箇所や、バリエーション変更・削除した箇所で、
スイッチ穴がなくなったことによる、穴位置調整をおこなう必要あり。

例:左上。スイッチが子基板へ移動したので、穴が足りて無い。
スクリーンショット 2023-01-09 7 48 33

調査:キーキャップのプロファイルによる、段付き箇所のひっかかり

キーキャップのプロファイルによって、段がついている箇所で指が引っかからないか?

以前、Noraで2段MBKを試したとき、
ただ2段にしたものは、となりのキーから指を滑らせるときに引っかかることがあった。
斜めに削るとスムースな指の動きができた。

Sandyでは、キーキャップは買ってきたそのまま使う(削らない)のを基本としている。
この場合、キーキャップのプロファイルによって、段つき箇所で指のひっかかり具合はどうか?
U→Y、H→Yなどの箇所。

PCB: 左シフトの配置案

Jonesでここらへんがごちゃっとしていた苦肉の策だと思うが、

  • 1+1を逆方向
  • 2を正方向(スタビ穴、上を小さい穴)←ここがポイント
  • 1.75を逆方向(オプション、非ソケット)

配置例:
スクリーンショット 2023-01-04 9 28 37
(2の正方向のガイドラインがないけど)

BOMリスト

基板製造も含めたBOMリストを作成
スペーサーは、中空タイプ(2mm, 2.5mmはこれしかない)、丸型両メネジ(3mm以上)、六角(3mm以上)のどれでもOK。
中空タイプはネジ止めにナットが必要でちょいめんどいけど、最低高はこれでしか作れない。
六角は安定性高そう。
LEDディフューザー用のスペーサーは六角だとはみ出す。

  • D 1n4148 60個
  • コネクタ
  • スペーサー2mm
  • スペーサー3mm
  • ネジ

PCB: 基板間接続パーツ

ピンヘッダとピンソケットを使用すると考えているが、考慮すべき点が多い。

ピンヘッダ

  • 設置場所
    親基板のおもて側
  • 設置高(親基板おもて側から飛び出す高さ)
    ヒロスギだと
    1.5mm(PSS-420156-00)
    2.5mm(PSS-420256-00)https://www.hirosugi-net.co.jp/shop/c/c12102815/
    親基板に子基板のスイッチソケットやスイッチの足を逃す穴を設けない場合は、スイッチソケットの設置高(子基板うら側からのはみ出し高さ)が1.8mmなので、1.5mmのピンヘッダは実質無意味になるが、最も低くする場合(ソケット1.8mm+子基板1.6mm=3.4mm)には必要となる。
  • ピン数、列数
    ピンヘッダとピンソケットで子基板の固定までやるので、しっかりとした固定感を得られること。
    ピンヘッダが基板にきっちり取り付けられるよう、2列が良い。
    ピン数は、キーレイアウトの1列につきrowが2ピン、colは2列で1ピン、隣の列を合わせたり、冗長化させたりを考慮。
  • その他

ピンソケット

  • 設置場所
    子基板のおもて側
    親基板側からのピンが子基板うら側から貫通して、子基板おもて側のソケットの下から刺さってくる。
    ヒロスギだと1種類(FSD-42050-00)しかない。
    https://www.hirosugi-net.co.jp/shop/c/c12111311/
  • サイズ
    ヒロスギのやつは、2列8ピンだと設置高5mm、幅5.08、長さ10mmちょい。
    6ピンだと長さ8mm弱。
    設置高が3.4mmを超えるとスイッチプレートに干渉するため、スイッチプレートに穴あけが必要。
    幅5.08mmはスイッチとスイッチの間にぴったり入る感じ。
    設置はスイッチの横方向の間。縦方向はスイッチの爪があるので、入れられない。
    1列で、貫通型(ボトムエントリー)のソケットを使う方法に変更が必要かも?

パームレスト一体型、ボトムプレート

Glove80を使ったあとに、Sandy(キーキャップ変えただけ)を打鍵すると、パームレストがなくて寂しい感じになる。
ボトムプレートを手前に延長して、横長長方形のプレートをネジどめして、パームレストにならないかな?

パームレストを別で購入せずに一体型にするのは、
キーボードを動かすとき、パームレストを別に動かすのが嫌。(ちょっとどかすときに、ひとつかみで済む)
スクリーンショット 2023-03-25 17 10 27

MCUとマトリクス

MCU:Atmega32u4
マトリクス:総当たり→普通のCOL2ROW(Noraのように)

  • Jonesからの設計変更をやりたくない
  • 新しいMCUへの評価とかがメインじゃなくて、3Dレイアウトがメイン
  • Noraでなんとかなってる
  • Audioなし
  • VIA/Remap前提なので、マトリクスにかかわらず、10レイヤーくらいいけるように、外部EEPROMを積む必要があるかも。

使用ピン数 足りる?→足りる

  • キーマトリクス 18
    15, 14, 14, 15, 12の合計70キー
    rowを10ピンにして、5ピンずつ2つに分けて、colの8ピンをよむ(16列分)
  • I2c 2
  • RE1 2
  • RE2 2
  • LED 1

スイッチプレートのLED窓

jpskenn/Jones#55

Jonesでは、スイッチプレートに穴を開け、プラ板を貼り付けて面発光させていた。
これを、LEDの上のところへレジスト塗らないようにして、スイッチプレート自体を面発光させるアイデア。

e3w2q氏のメリクリ基板とかを参考に、これでいけるか試したい。
https://e3w2q.github.io/13/
https://kou014.hateblo.jp/entry/2022/12/20/233349

心配事

  • PCBに文字?が書いてるときがあるけど、あれが出てしまわないか心配。
  • スイッチプレート(PCB)の透過具合は?
    あんまり眩しいほどは光らせたくないので、暗めのLED光でも上手く見えるのか?
  • 基板とスイッチプレートの間、横方向から光が漏れるので、対策できる?

基板間隔

リファレンス(デフォルト出荷同梱物)となる、基板間隔を決める。
スペーサー + 基板の厚み(1.6mm)が実際の間隔となる。

スペーサーまたはナットの厚み(基板の厚みは含まない)に関連する数値リスト

  • 1.2(ナット3種):スイッチのピン当たるNG
  • 1.6(ナット1種 or 2種):スイッチのピン当たるNG。ピンカットしたらなんとか?
  • 1.7(スイッチのピン3.3から基板の厚み1.6を引いた値):最低ライン
  • 2(中空スペーサー2mm)
  • 2(ナット1種 or 2種 + ワッシャー0.4mm)
  • 2.2(ナット3種 + 中空スペーサー1mm)
  • 2.4(ナット3種 ×2)
  • 2.4(ナット1種 or 2種 + ワッシャー0.4mm ×2)
  • 2.6(ナット1種 or 2種 + 中空スペーサー1mm)
  • 2.7mm (ナット3種 + 中空スペーサー1.5mm)
  • 2.8(ナット1種 or 2種 + ナット3種)
  • 3以上(両メネジスペーサー):0.5mmきざみ

インジケータLEDの新しい配置

Jonesの左右2個ずつはキーに隠れたり、ディフューザーの配置に困るときがある。

これにかわる、新しい配置アイデアは?

基板間からの音漏れ

基板の積層が増えることで基板間の空洞の数も増えるため、打鍵時のスイッチやキーキャップのノイズ(振動から発生するノイズも含める)が増大すると思われる。

対策としては、
KBDfans module foam 静音用ウレタンフォームなどで隙間を埋める方法があるが、厚みが3.5mmで適合するか怪しいとか、基板間接続のピンヘッダとか干渉するところもありそう。

ここは個別に、ポロンシートをいい具合に1-2mmの幅に切ってもらって、貼り付けてもらうようにしたい。
また、それができるように、基板の端から2mmくらいは、何も部品を配置しないようにしておきたい。

PCB: ケースネジ穴をしめる穴のサイズ

子基板で、Base親基板のネジ穴をしめるための穴のサイズを、
太めの普通のドライバーのヘッドサイズ(6.5mm3-5mm)+上下左右への余裕2mmくらい
になるように、調整。

Annexのドライバーセットで、一番細いプラスドライバーが約3mmの直径。

レイアウト

ワイドUS(ANSI)のみ

バリエーション(とりあえず、思いついたもののみ)
R2 左Tab: 1.25 or 1.5 ※40%キット用に1.25あってもいいかな。DSSとか
R3 左Ctrl: 1.25 or 1.5
R3 右Enter: 1.25 or 1.5
R4 左Shift: 2u or 1u + 1u
R4 右Shift: ※USオンリーでバリエーション必要なんだっけ?
R5 分割スペース:
R5 **: 1u + 1u ※2uなしでいいんじゃないか?
R5 左右Mod: 左右とも1.25u + 1.25uでいけないか?(US104とかだとR3へ回すのが足りなくなる?)
R5 RE: Jones同様。右端または左端にREいける。同時もありかな。

PCB: コネクタの予備ピン、スイッチのフットプリントにかぶる

予備ピンがスイッチのフットプリントにかぶっているため、
スイッチを配置するとピンにはんだ付けしにくくなる。

コネクタをスイッチ間に移動できないか?

かなり狭く、スイッチ間へ移動すると、コネクタ抜き差し時にスイッチのソケットに当たってしまうかも。

スイッチの向きは、基本的に正方向で

Jonesでは、

  • MCUの配置付近が窮屈
  • 複数バリエーションを詰め込んでる

などの理由で、逆向きになっているキーがいくつかある。
なるべく正方向になるように配置する。特にZ。
横向きはNG。

スイッチプレート

親基板のスイッチプレートは、子基板部分を切り抜いた感じか?

子基板のスイッチプレートどうしよう?

ソケットだと、プレート無いとぐらつきとか、外れやすいとかの問題あり。
R1は行全体で1枚のプレートになるから、なんとかなりそうな気がする。

RとかGとか、飛び地(?)のキーをどうするか?

ケース

GH60互換を基本とする。

基板に後付けでタブつけたりして、3Dプリントのガスケットケースとかにも対応したい。

キーごとのLED

子基板とかでやってると設計で死にそうだし、使ってたら子基板の配線が死にそうなんで、キーにLEDはつけません。

ロゴ

3Dっぽい感じ。
Sandyの文字と、ドロップシャドーみたいな。

5wayスイッチ

JS5208の5方向(上下左右+押し込み)スイッチに対応。

使用ピン
Row:1
Col:5
または、
Row:5
Col:1
で。

子基板

  • 親基板との配線接続
  • 親基板への固定
    • 調整するキーの高さによっては、親基板のスイッチプレートが子基板になるかも
      →段差は固定しないので、これはなし
  • 子基板の厚さ
    • キーの高さをどれだけにするか? →ピンヘッダで可変。
    • 子基板だけで高さ調整できるか? →ピンヘッダで可変。
    • 間に捨て基板みたいなの挟む? →ピンヘッダで可変。
  • 子基板にした箇所に高さバリエーション
    • マウスバイト切り取りで、高さ調整しないとか(親基板側にソケット必要じゃんか?)
      →アイデアとしては良い。残念ながら設計的に高さ調整のバリエーションはなし。
  • 他の開発者もパクりやすい親子基板の設計

PCB: **と右下のネジ穴、大穴あけとく

GH60互換の**ネジ穴、使用しない方向でどうか?
使用しない → 基板がケースのネジポストに当たるのを避けるため、穴あける。

**ネジは、子基板の**ネジ直上のスイッチ、正方向のソケットにしたいため。
右下

穴あけで基板がたわみすぎる対処として、
ケースのネジポストにポロンスポンジをつけて(下から1cmくらい?)、基板を支える。
これは**ネジのポストだけでよい。右下ネジは穴だけ。

調査:キーキャップセット

レイアウトを、”ワイドANSIのみ”にするとして、キーキャップセットをどうするか?

レイアウトに必要なキーを含むようなセットってあるんか?
できれば、普通の104USとかでなんとかしたい。(右Enterに1.25入れられるようにしとけばいけそう?)
GMKで言うなら、Base+40%でそろう。

特殊キー
R2: 左Tab, 右BS 1.5u
R3: 左Ctrl 1.25 or 1.5u, 右Enter 1.5u
R4: 左右Shift 1u。(SemiErgoにしないバリエーションで左Shift 2u)
R5: 分割スペース2u*2(104USの代用キーは?)

高さ最適化で、Cherryとか当たらんの?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.