Lambdaカクテル

集団への盲従を激しく嫌う

Kinesis Triple Action Foot Switch(RJ11タイプ)のピンアサインを調べた

同僚からKinesisのフットスイッチをもらった.

TL;DR

  • 緑がコモン
  • 左ペダルは黒
  • 中ペダルは赤
  • 右ペダルは白

あらすじ

f:id:Windymelt:20181006234733j:plain
かっこいい

f:id:Windymelt:20181006234743j:plain
新旧で仕様が違うらしいので,裏の写真を貼っておく

ところがこのフットスイッチはRJ11コネクタ(いわゆる電話のモジュラー端子)で接続するタイプで,手持ちのPCでは使うことができない.おそらくKinesisキーボードに接続する仕組みなのだろう.

f:id:Windymelt:20181006234850j:plain
RJ11端子.ツメ側から見ると左から順に白,緑,赤,黒になっている.電話線でおなじみだが,電話のインレットに刺しても動かないし,刺してはいけない

電子工作の機運

インターネットで調べていたところ,この端子は単純に各フットスイッチx3と,共通端子との4つの端子になっているらしい.そしてちょうど手元にはDa Vinciという,USB HIDとして認識させられるArduino的なAVRマイコンボードが落ちていた.うまく電子工作すれば,このフットスイッチをマウスやキーボードとして認識させることができそうだ.そのために,このモデルではどのピンがどういった役割になっているかを調べてみることにした.

さて,「この端子は単純に各フットスイッチx3と,共通端子との4つの端子になっている」というのは,つまり以下のような挙動をするということだ.

  • 左スイッチを踏むと,共通端子とどれかの端子が導通する.
  • 中央スイッチを踏むと,共通端子とどれかの端子が導通する.
  • 右スイッチを踏むと,共通端子とどれかの端子が導通する.

あまりにアバウトだが今はこれしか分からない.これらの端子が,RJ11端子の白,緑,赤,黒のどれに対応しているのか*1を調べるのが今回の目標である.

線をバラして導通確認できるようにする

さて,どのピンがどのピンにあたるか,つまりピンアサインは,適当な端子を2つ選び,各フットスイッチを踏んだときにその2端子が導通するかを,すべての組合せ(実際はそこまでしなくともわかるが)で調べればわかることである.

RJ11端子のまま導通を確認するのは専用の器具が必要になりそうで手間なので,コネクタを切断してケーブル内部のワイヤを露出させ,それぞれに電圧をかけて調べることになる.

しかし製品側のケーブルを切断すると,後から戻したくなったときにとりかえしがつかないし,商品価値を下げてしまう.だからここでは一旦延長ケーブルを挟み,その延長ケーブルを加工することで導通確認を行うこととする.

そういうわけなのでAmazonでいろいろ便利なやつを買った.

f:id:Windymelt:20181006234938j:plain
電話線を延長するやつ.便利のために色配置をアルファベットで書いた

普通の電話線(25cm)の片側のコネクタを切り落とし,ニチフの圧接型中継コネクタ(NDC2420)*2に取り替える(ここが一番大変だった!!!).そして電話線を延長する箱みたいなやつ(正式名称不明)と装着することで,「電話線の各端子を取り出す奴」を作成した.

f:id:Windymelt:20181006235003j:plain
このコネクタは横に並べて軽く固定できるし,はんだ付けが要らないので便利.接続先のコネクタの色は適当なので気にしないでほしい.

さて,この手のちょっとした電子工作には一般的にブレッドボードを使うのだが,圧接型中継コネクタはブレッドボードに刺さらない.そこで,圧接型中継コネクタ・ピンヘッダ・ピンソケットを相互変換する奴を作った.

f:id:Windymelt:20181006235014j:plain
人間は愚かにもピンの雄雌を取り違える生き物なので,あらかじめどっちにも対応させておく.手前はピンヘッダ,奥がコネクタとピンソケットになっている

ブレッドボードで導通確認

ブレッドボードとは,穴がたくさん穿たれた基板であり,パーツを突き刺して保持できるグッズである.ブレッドボードの横の並びは内部で導通していて,電気が流れるようになっている.京都で例えると,堀川御池に電圧をかけると河原町御池にも電圧がかかる感じ.あとはそれぞれの穴をワイヤでつなぐことで,簡単に回路を作ることができる.はんだも不要で自由に抜き差しできることから,主に電子工作の試作や実験に使われる道具だ.

f:id:Windymelt:20181006235028j:plain
左にDaVinciが,奥にはなんかの気圧計が載っているが,今回使うのは右下のLEDと抵抗

ブレッドボードにLED(緑色,定格20mA)と抵抗器(220Ω)が直列になるように配置し,部品の両端をプラス極とマイナス極につなげると,光る.あとはこの回路の中にフットスイッチの端子2つが挟み込まれるようにすれば,導通したときに光るようにできる.電源をどうするか悩んだが,Da VinciにはUSB mini B端子があり,あるピンから5Vを出力してくれたのでこれを使った.

ピンアサイン判明

f:id:Windymelt:20181007005240g:plain
よかったですね

いろいろピンをとっかえひっかえした結果,以下のピンアサインであることがわかった.

  • 共通端子は緑
  • 左ペダルは黒
    • 踏むとこの端子と共通端子が導通する
  • 中ペダルは赤
    • 踏むとこの端子と共通端子が導通する
  • 右ペダルは白
    • 踏むとこの端子と共通端子が導通する

そのうちDa Vinciを使ってキーボード入力をエミュレートしてみたい.

困ったこと

今回の電子工作では,Amazonの適当な電話線を買って使ったのだが,内部線を取り出すのがとても大変だった.4つの被覆ケーブルが1つの大きな被覆に覆われている,という加工しやすい感じではなく,4つの被覆ケーブルを融けた外部素材に通して作ったような状態で,どこまで切り込みを入れてよいかわからなかったので何度も内部の導体を傷付けてしまった.

*1:RJ11はコードの色までは特に指定していないようなので,すべてのRJ11端子がこのような色配置になっているとは限らない.

*2:この端子はAWG24までしか対応しない.今回は電話線内のワイヤの細さがぎりぎりだったので,より細い線に対応したNDC2824を使うことをおすすめする.