fc2ブログ

You are not Logged in! Log in to check your messages.

Check todays hot topics

Search for Services:

Please Log in

[親指シフト]エスリルキーボードを作る

エスリルキーボードは、キー配列、回路図、ファームウェアソースが公開されています。
で、作ってみました。
左右の鍵盤部を蝶番で繋いで傾斜角度を変えられるようにしました。
スライド式のキーボードテーブルの隙間に合わせて、オリジナルよりは緩やかな傾斜にしていますが、
快適に打鍵できます。
USBコネクタはミニタイプBにL型コネクタをつけケーブルが横に引き出せるようにしました。
00 完成00 完成(背面)
キースイッチはリニアタッチのALPS緑軸です。手持ちのすぐに使える緑軸が不足したのでFキーは黄軸を使いました。
制御基板と鍵盤部基板は直付です。
01 配線(全体)02 配線(制御基板)
制御基板は汎用基板で作りました。
下2行を鍵盤部との接続端子にし、マイコンのピンの並びを制御基板部でマトリクス順にそろえました。
03 制御基板04 エスリル自作制御基板配置図
05 お盆表06 お盆品名ラベル◆ALPS軸のマウント板を作ります。材料は100均で見かけたお盆を使いました。
08 マウント板カット09 軸穴完成(左)型紙はがし09 軸穴くり抜き◆お盆の縁を切り落とし、モック用に公開されている原寸大のキーレイアウト図を貼り付け型紙にします。
ALPS軸穴をけがきしドリルと小型ヤスリでひとつづつ穴開けしました。
10 ベニア基板作成1◆プリント基板は作りませんが、軸のマウント強度を確保するための板を作りました。穴開けしたマウント板に重ねて軸足を通す穴をあけます。
11 基板外側(右)◆当初はベニア板で作るつもりでしたが、ハンダ付けの熱に耐えられそうに無いので、部品取りして残骸になったキーボードのプリント基板を加工しました。元々のプリント配線でショートしない様に、軸穴の面取りをしています。

マウント板、ALPS軸、プリント基板を組立ます。
12 軸装着(表)13 基板装着
鍵盤部の配線は、反転したキー配置図にマトリクスコードを記入した図面を見ながら、軸足をリード線で繋ぎました。
赤丸は逆流防止用ダイオードです。
配線完了後、左右の鍵盤部を蝶番で結合しました。
14 鍵盤部完成15 鍵盤配線ワーク図
17 筐体展開18 筐体19 筐体斜視◆筐体はベニア板で作りました。真ん中に鍵盤部の傾斜を調整する仕切り板を付けました。

制御基板と鍵盤部を繋いで、動作確認です。
20 完成(キートップ付)
事前にテスターで断線、ショート箇所が無い事を確認しましたが、通電時に勝手にBootloaderが起動してしまう事が多々あり、動作が安定しませんでした。
ハンダ付けの甘さに原因があった様で、何カ所かのハンダ付けを強化する事で正常に動作する様になりました。
スポンサーサイト



[親指シフト]エスリルキーボードのレイアウトを変更(ファームウェアを修正)

エスリルキーボードの標準配列は、文字入力に問題は無いが文章入力するには今まで培ってきた慣習に合わない部分も多いので、ファームウェアソースのレイアウト定義を以下の好みに合うように変更しました。

1 BSが「ん」の右にあるF型が大前提
2 エスリル日本語ON/OFFはFn無しの親指操作で行いたい。
3 左親指ポジションの右は確定キー(Enterキー)にしたい。
4 DeleteキーはFn無しで使いたい。
5 Pの隣は英字が@ かなが読点(、)にしたい。
6 記号はカンマ/ピリオドと句読点の両方をキー入力したい。(IMEの設定変更有り)
7 左手で操作するカーソルキーが欲しい。
8 右Ctrlは今までも使ったことが無いのでいらない。アンダーバーは良く使うので標準キーボードと同じ配置にしておきたい。
9 たまにしか使わないが無変換、かな、半角全角、Capsキーが欲しい。(Fn面に追加)
10 Winキー、Aplキーはめったに使わないのでFn面に追い出したい。
11 IMEはATOKをメインに、時々Google日本語に切替えて使うが操作は同じにしたい。
12 快速親指シフトややまぶきが使える配列も欲しい。
※ ESCキーはブートモードに入る要のキーなので、配置を替えない事にする。

20 Nicolaカスタム
21 快速親指シフト用

【ファームウェアソースの修正】

..\new-keyboard-master\firmware\src 配下の3つのファイルを修正します。
 KeyboardCommon.c ‥ Fnキー面の配列修正
 KeyboardJP.c   ‥ esrille日本語モードの配列修正
 KeyboardUS.c   ‥ esrille英語モードの配列修正

エスリルキーボードの配列は8×12のマトリクスに定義されています。
以下はKeyboardUS.cのJIS配列マトリクス定義です。
マトリクスの位置を縦方向はR0~R7、横方向はC0~C11で表現します。
上のレイアウト図の黄色部分に各キーのマトリクスを記載してあります。
たとえば F1キーのマトリクスはR1C1、AキーR5C0です。
以下配列定義は右側が隠れていますが、画像をクリックすると別窓に全体が表示されます。
KeyboardUSマトリクス変更前

カンマの位置をそろえて見やすくしました。
キー配列図でマトリクスを確認し、該当位置のキー定義を修正します。
KeyboardUSマトリクス改

esrille日本語モードの配列定義はひとつのキーに複数のキーを割当てる事ができます。(ローマ字入力なので当然ですね)
ひとつのキーに割当てるキーを{ }で括って定義します。{ }の中に最大3つのキーを指定できます。
かな文字配列は親指シフト配列になっているので修正する部分はありません。
IMEのローマ字変換表に追加した記号キーの読みに合わせて該当キーの指定値を修正します。
これで、[ ] , . ・ -がキー入力できる様になりました。
KeyboardJPマトリクス改

Fnキー面の配列定義も{ }の中に最大4つのキーを指定できます。
緑枠はFn+1のキーです。もともと未使用キーですが、ここにV05の文字を割当てました。修正したHEXファイルのバージョン管理に使っています。
※ {KEY_KANA}, {KEY_OS}, {KEY_DELAY}, {KEY_BASE}はエスリルキーボードの設定処理を動かす重要なキーです。絶対に修正しない様に注意が必要です。
KeyboardCommonマトリクス改
各キーの名前はソースと同じフォルダーにあるKeyboard.hに定義されています。大半は名前を見るだけで何のキーか分ります。見ただけでは分らないキーは以下の通りです。
// [{   KEY_RIGHT_BRACKET
// ]}   KEY_NON_US_HASH
// @`   KEY_LEFT_BRACKET
// -=   KEY_MINUS
// :*   KEY_QUOTE
// ^~   KEY_EQUAL
// _   KEY_INTERNATIONAL1
// かな  KEY_INTERNATIONAL2
// \|   KEY_INTERNATIONAL3
// 変換  KEY_INTERNATIONAL4
// 無変換 KEY_INTERNATIONAL5
//半角全角 KEY_GRAVE_ACCENT
//esrille日本語ON  KEY_LANG1
//esrille日本語OFF  KEY_LANG2

カスタマイズした配列定義は親指シフト用の matrixJIS、matrixNicolaF、matrixNicola、matrixNicolaFでは無く
matrixDvorak、matrixColemak、matrixTron、matrixMtypeを全面的に書替えています。
こうする事で、ファーム入替えせずにオリジナルのNicos配列定義との打鍵比較ができます。
ただしmatrixFnは全配列共通なので、カスタマイズした定義しか使えません。

[エスリル]HID Bootloadrでファームウェアを更新

MPLAB IDEで作成したHEXファイルをエスリルキーボードの制御チップに書込み、ファームウェアを更新する手順です。
以下の画像は全て縮小表示しています。画像をクリックすると別窓に原寸画像が表示されます。
20 HidBootLoarder_Win◆ファームウェアを更新するアプリ(HIDbootLoader)はパソコン側で実行します。
Windowsの場合は、Microchip Libraries for Applications (MLA)をインストールした以下のフォルダにあります。
C:\microchip\mla\v2013_12_20\apps\usb\device\bootloaders\utilities\bin\win
HIDBootloader.exeをダブルクリックして起動します。
21 HidBoot1◆HIDBootloaderの初画面です。
22 esrille123 esrill2◆エスリルキーボードをファームウェア更新モードにします。
1.エスリルキーボードのUSBプラグをパソコンから抜きます。
2.ESCキーを押しながらUSBプラグをパソコンに接続します。
3.NumlockのLEDが点滅していることを確認します。

※ESCキーを押しながら片手でUSBプラグをパソコンに射すのは、慣れないとスムーズにできないかも知れません。
頻繁にファームウェア更新する場合は、USB切替えスイッチを使うと楽にできます。
24 HidBoot2◆HIDbootloaderは自動的にエスリルキーボードがフェームウェア更新モードになった事を認識します。
フォルダアイコンをクリックします。
25 HidBoot3◆書替えるHEXファイルを指定します。

MPLAB IDEで作成したHEXファイルをそのまま指定することは可能ですが、以下のようにとんでもなく深い階層のパスになります。
..\new-keyboard-master\firmware\third_party\mla_v2013_12_20\apps\usb\device\hid_keyboard\firmware\MPLAB.X\dist\Esrille_New_Keyboard\production\MPLAB.X.production.hex

あらかじめ適当な場所にesrilleHEXなどと名前をつけたフォルダを作成し、そこにMPLAB.X.production.hexをコピーしてファイル名も世代が分かる名前に変更しておくと管理が楽になります。

26 HidBoot4◆HEXファイルがオープンされたら、赤丸のアイコンをクリックします。
青線のメッセージが表示されればファームウェア更新完了です。(数秒で完了します)
※初めてHIDbootloaderを起動したときは、メニューのProgram→Settingsの画面を開いてEEPROMにチェックを入れます。
 
次に緑丸のアイコンをクリックします。
27 HidBoot5◆エスリルキーボードがシステムから切り離されLEDが消灯します。
HIDboogtloaderを終了し、エスリルキーボードのUSBプラグを抜き刺しして完了です。

ファームウェアの更新はWindowsの他のアプリが実行中でも問題なくできます。ただしファームウェア更新処理中エスリルキーボードは使えません。

[親指シフト]エスリルキーボードのファームウェア、HEXファイルの作り方

エスリルキーボードのファームウェアはソースが公開されています。
プログラミングの詳しい知識はありませんが、ものは試しとHEXファイルを作ってみました。
01 GitHub◆ソースのダウンロード
 ソースファイルは
esrille/new-keyboard · GitHub
に公開されています。
画面右下のDownloadZipをクリックするだけで全ソースファイルがダウンロードできました。
ダウンロードされたファイル名はnew-keyboard-master.zipです。
010 esrille_source◆ダウンロードしたnew-keyboard-master.zipを解凍します。
 展開したフォルダの\new-keyboard-Master\firmware\srcにある4つのファイルでキーマトリクスが定義されていました。
 赤枠のフォルダは古いソースが格納されています。そのままでもHEXファイルの作成はできますが、紛らわしいので削除しました。
02 Microchip_Top03 Microchip_Top2◆HEXファイルの作成はマイクロチップ社が無償で提供しているMPLAB IDE環境が必要なので、インストールファイルをダウンロードします。
 MPLAB IDE環境に必要なインストールファイルは以下の3つです。
 ・MPLAB IDE X
 ・XCコンパイラ
 ・Microchip Libraries for Applications

 HPはこちら→MPLAB
 画面をスクロールして、ダウンロード-XC8-Windowsをクリックします。
ダウンロードされるファイル名はMPLABX-v2.05-windows-installer.zipです。

 画面を上スクロールして ソースとサポート-レガシーソフトウェアをクリックして
XC8コンパイラーのダウンロードページに移動します。
04 Microchip_xc805 Microchip_XC82◆画面を下にスクロールしてLanguageToolArchivesのMLAB XC8の列にある
V1.21(Win)をクリックします。
ダウンロードされるファイル名はxc8-v1.21-win.exeです。
06 Microchip_APL07 Microchip_APL2◆Microchip Libraries for Applicationsのダウンロードページは
 こちら→Microchip Libraries for Applications (MLA)
画面を下にスクロールしVersion V2013-12-20のWindows用のDownloardをクリックします。
ダウンロードされるファイル名はmla_v2013_12_20_windows_installer.exeです。

ダウンロードした3つのファイルを順にインストールし、MPLAB環境構築は完了です。
08 MPLAB X IDE v205◆いよいよHEXファイルの作成です。
 MPLAB IDE V2.05を起動します。
09 MPLAB X IDE open project◆File-Open Projectをクリックします。
10 esrilleMPLABfolder◆New-Keyboard-Masterフォルダ配下のMPLAB.Xフォルダを指定します。
11 MPLAB X IDE Build project◆MPLAB IDE V2.05の画面に表示されたUSB Device - HID - Keybordをクリックします。
Run-Build Project(USB Device - HID - Keybord)をクリックします。
12 MPLAB X IDE Build end◆画面右下のフレームに多数のメッセージが表示されます。そのまま1分くらい待っているとLoading Completedのメッセージが出て、HEXファイル作成処理が完了します。
13 MPLAB X IDE Build HEX◆作成されたHEXファイルは
\new-keyboard-yuusisatako\firmware\third_party\mla_v2013_12_20\apps\usb\device\hid_keyboard\firmware\MPLAB.X\dist\Esrille_New_Keyboard\production
に格納されます。
ファイル名はMPLAB.X.production.hexです。

レイアウト変更のソース修正方法とエスリルファームウェアの更新方法は後日まとめる予定です。

[親指シフト]エスリルキーボードのレイアウトの選び方(暫定版)

エスリルキーボードは、様々なキーレイアウトを使用者が選択して使える優れものです。
特徴
小さめの手にも合うコンパクトなエルゴノミック デザイン: 336mm x 177.5mm x 57.4mm。
以下の文字配列にはじめから対応しています。特別なデバイスドライバーのインストールは不要です。
英語配列
QWERTY
Dvorak
Colemak

日本語配列
Stickney Next (JIS配列改良版)
親指シフト (Nicola)
TRON
M-type

キーレイアウトの選択方法
キーレイアウトは英語配列と日本語配列の組み合わせで選択します。
準備
メモ帳などのテキストエディタを起動し入力可能状態にします。
英語配列の選択
 Fnキーを押しながらF1キーを押すと、テキストエディタに以下の配列を示す文字が表示されます。
 表示される文字はF1キーを押す毎に変化します。希望の配列が表示されるまでF1キーを押します。
 jp-nが表示された後にF1キーを押すとusに戻ります。
   us
   us-d
   us-c
   jp
   jp-n


日本語配列の選択
 英語配列の選択と同様にFnキーを押しながらF2キーを押して選択します。
 roma以外の日本語配列はエスリルキーボードをかなモード(esrille日本語ON)にして使用します。
 romaを選択したときは、エスリルキーボードのかなモードは使用できません。
   roma
   nico
   nicof
   mtype
   tron
   stick

選択した配列はキーボード内に記憶されます。USBプラグを抜いても消去されません。

Windows環境で親指シフト入力で使用する場合の、各キーレイアウトの特徴をまとめました。
レイアウト図は縮小表示しています。画像をクリックすると別窓に原寸図が表示されます。

エスリルキーボードの日本語かなモードを使用しない場合
 パソコンの擬似エミュレーションアプリで親指シフト入力する場合に選択する配列です。
 エスリルの親指シフトキーはShiftキーの位置になるため、Japanistの快速親指シフトを使用する場合は、
パソコン側でリマップが必要になります。
 やまぶきRを使用する場合は、親指シフトキーにShiftを指定します。
01 US配列(出荷時の配列)
01 US配列 US配列(日本語JIS認識)
04 US配列JIS認識
◆Fn+F1→us、Fn+F2→romaで選択します。
日本語WindowsではUSキーボードをJISキーボードと認識する場合があります。そういう配列だと思えばそのままでも使えますが、アンダーバーのキーはありません。
正しく英語キーボードと認識させるにはWindowsのレジストリ変更が必要です。
02 JIS配列
02 JIS配列
◆Fn+F1→jp、Fn+F2→romaで選択します。
標準形の109キーボードの右下角にあるバックスラッシュ・アンダーバーのキーがありません。バックスラッシュは¥で代用します。アンダーバーはShift+0で入力できます。
変換、無変換、半角/全角、かなキーはありません。
03 JIS配列(Nicola F型)
03 JIS配列Nicola F型
◆Fn+F1→jp-n、Fn+F2→romaで選択します。
Backspaceキーが;キーの右に配置されています。
左親指の位置に無変換キーがあります。
CapsLockキーはFn面に配置される予定です。
アンダーバーはShift+0で入力できます。


エスリルキーボードの日本語かなモードを使用する場合
 Nicola J型、F型、A型の3種類の配列が選択できます。
 パソコン側に擬似エミュレーションアプリは不要です。
 エスリルの動作モード(英字/かな)の切替えは以下のキーで行います。
 ・esrille日本語ON  Fn+Nキーを押します。(CapsLockのLEDが点灯します)
 ・esrille日本語OFF Fn+Bキーを押します。(CapsLockのLEDが消灯します)
 エスリルの動作モード(英字/かな)と同期を取るためのIMEの設定が必要です。
 ローマ字入力の制約でエスリルの標準ファームではかなモードキー入力できない記号があります。
  [ ] , . ・ (配列図の赤丸のキー)
 また、以下の配列図の青丸のキーはIME側で記号読替えする前提でキーコードが定義されてます。
  [→「 ]→」 ,→、 .→。 ・(中点)→/

 IMEのローマ字変換定義に固有の変換文字を登録し、合わせてエスリルファームを個別修正することで対処は可能です。
11 Nicola J型 配列
11 Nicola J型
◆Fn+F1→jp、Fn+F2→nicoで選択します。
JIS配列をベースに親指シフトのかなキーを配置した配列です。
12 Nicola F型 配列12 Nicola F型◆Fn+F1→jp-n、Fn+F2→nicofで選択します。
左親指ポジションに無変換キーがあり、親指シフト専用キーボードに近い操作ができます。
13 Nicola A型 配列13 Nicola A型  Nicola A型 配列(US配列がJIS配列で認識される場合)
14 Nicola A型Jis認識
◆Fn+F1→us、Fn+F2→nicoで選択します。
us配列をベースに親指シフトのかなキーを配置した配列です。
日本語WindowsではUSキーボードをJISキーボードと認識する場合があります。そういう配列だと思えばそのままでも使えますが、アンダーバーのキーはありません。
正しく英語キーボードと認識させるにはWindowsのレジストリ変更が必要です。
14 IME選択99 IME連動キー◆エスリルの動作モード(英字/かな)の切替え操作に連動してIMEをON/OFFさせる為に、esrille日本語ON/OFFキーを押したときにパソコンに送るキーコードを選択します。
Fn+F3キーを押して選択します。
この選択に合わせIMEのキーカスタマイズを行ってください。
選択の目安
MS-IME   → pc
Google日本 → pc
Atok    → 109a
japanist  → 109b


(注)エスリルキーボードはまだ進化途中です。上記のレイアウトを基本にカスタマイズ機能が追加されると思います。

[改造]エスリルキーボードのCherry MX軸をALPS軸に変更

01 キット到着エスリルキーボードの組立キット(スイッチなし)を購入しました。
エスリル ニューキーボード 組み立てガイド

仕様通りに手持ちのMXスイッチを付けるつもりでしたが、鍵盤基板の配線がシンプルなので、ALPS軸を使える様に改造します。
99 エスリル右基板配線面 99 エスリル右基板表
07 ALPS軸仕様07 Cherry軸仕様ALPS軸とMX軸の軸穴位置は右側が0.5mm差なのでそのまま使い、左側は1.5mm差なのでALPS軸用の穴を追加で開けるようにしました。

08 ALPS軸アルミマウント板作成まずは、ALPS軸マウント板を作ります。
エスリルWebページに公開されている原寸大のキーレイアウト図をもとに軸穴レイアウトの図面を書いてアルミ板に貼り付けます。
軸穴のくり抜き
1.3Φの穴を電気ドリルで6個開けます。
2.棒ヤスリで穴と穴を削り、ざっくりとした穴を開けます。
3.平ヤスリで四角い穴に仕上げます。

マウント板と鍵盤基板を重ねて位置合わせし、クリップで固定します。
09 ALPS軸アルミマウント板と基板位置合わせ109 ALPS軸アルミマウント板と基板位置合わせ2

鍵盤基板に合わせてマウント板の周辺を切り取り、再度マウント板と鍵盤基板を重ねて位置合わせし、クリップで固定します。
追加するALPS軸取り付け穴をハンドドリルで開けます。穴位置を正確にケガキするのは難しいので、ALPS軸の下ハウジングをゲージに使い位置決めをしています。
マウント板と鍵盤基板を重ねあわせたまま、ALPS軸がすんなり付けられるか確認し穴位置がずれている場合は棒ヤスリで穴の大きさを補正します。
10 ALPS軸アルミマウント板成形10 ALPS軸スルーホール位置合わせ

鍵盤基板にジャンパー、ダイオード、FFCコネクタをハンダ付け後、ALPS軸をセットし軸足をハンダ付けします。
追加の穴開けで分断された配線の補修をして完了です。
11 ALPS軸配線補正

左側鍵盤基板も同様に加工して完成です。
04 右基板&制御基板05 エスリル完成(キートップ付)

ハウジング筐体は注文中。
« | HOME |  »