android 用の bluetooth キーボードが気になって調べてたら、aliexpress で、送料込み $7.77 のキーボードを見つけた。随分怪しげなんだが、ものは試しと買ってみることに。

例によって2つ買ったのである。下のやつは違うショップで、カラー版。安い方は 白 or 黒のみ。
最初にかいておこう。$7.7 の方は、AB1112 採用の 新しいタイプ (BT3.0 対応)。F1 に虫眼鏡がマークされている。カラーの方は、RDA5871 採用の 古いタイプ(BT2.1 対応)。虫眼鏡は F2 。裏のアルミがペラい。いずれにしても、剛性が足りない。木板を張り付けて補強することを薦める。


こんなやつ。どうも中華には、このキー配列のものが多い。このタイプが安いが、それ以外に、同じキートップでケースになるやつだとか、いろいろある。

キートップの刻印は3通りあるようだ。Android/Windows 用と iOS用、そして古いタイプ。機能は同じようだが使ってみないことには分からない。カラー版は古いタイプで、中のチップまで違う。
Fn+Q(Android), Fn+W(Windows), Fn+E(iOS) でキーマッピングが変えられる。はやりのマルチデバイス対応ではないと思う。たぶん、一番上の Fn + の機能が変わるだけで、Windows だと ファンクションキーになるのだろう。iOS用キートップは、切り替え機能の刻印がない。固定かも知れない。
このキー配列が好みに合ってそうな気がしてきて欲しくなった。自分に合えば長らく使うことになりそう。
赤札天国でも、売っている。こういうタイプのも。
後で色々調べてみたが、$7.77 だと 1000円弱だが、そう格安というわけでもないようだ。2000円までのものが国内でも結構ある。気になったのは、ポケモンキーボードで、かなり使いやすいらしい。ただ、少し大きいような気もする。また、やたら小さいスマホ用は使いにくいというレビューが多いみたいだ。
同日に申し込んだが、上のやつが先に到着した。10日に注文して 23日に到着だから、まぁ早いほう。
2015-05-20 00:00 Japan Arrive at Japan Airport-(Yanwen's Track End)
Original Country-Yanwen[SZAA008252670] To China Post Air Mail[YC66766xxxxYW]
2015-05-16 00:00 BeiJing Handled by Airline
2015-05-15 00:00 Beijing Internationg Mail Center Prepare to Dispatch
2015-05-14 00:00 BeiJing Arrived at Beijing Internationg Mail Center
2015-05-14 00:00 Beijing Internationg Mail Center Received
2015-05-12 20:00 ShenZhen Despatched from Yanwen ShenZhen Sorting Center
2015-05-12 18:00 ShenZhen Arrived at Yanwen ShenZhen Sorting Center
中国郵政 Small Packet By AIR で、記録上はこうなってる。
充電しつつ 接続しないで、キーを押したりして どんな感じか確かめ。キータッチはそんな悪くない。ただ、非常に軽いんだが、剛性が全然ない。好みではないので、補強とかしてみたいような ... 。
次に接続を試みた。... これが全然つながらない。ちゃんと "Bluetooth 3.0 Keyborad" と名前が出るのだが、PIN コードが正しくないとかなんとか。Android の方をいろいろ変えてもダメだった。
Windows でも試した。最初はランダムな数字を 接続するキーボードで入力せよと出ていたが、後で 入力BOX が出るようになった。何を入力すればよいか分からなかったのだが、ここで入力した数字を接続するキーボードでも入力すれば良いらしい。0 でも良いらしいので試したら、遂に接続できた。
接続してようやく分かった。入力できないキーがやたらにあるのである。数字は、0 と 9 のみ。あとはダメ。アルファベットは、"pgklvbnm" のみ。スペースもダメで、カーソルキーは OK 。
要するに不良品である。早く着いたので、喜んで Confirm 押しちゃったし、最初からワケアリだと思ったし。ここは一回クリーニングしてみようと思う。
さあ、分解。

中にキーボードのモジュールが入っているのではなく、ケースがキーボードの一部。裏側も金属板が入ってないから、底面のアルミ板も剛性確保に必要なパーツとなっているようだ。フィルムケーブルの厚み分を逃がす仕組みはないから、キーによって、打ち味が違うかも知れない。
基板は、ネジで止まっているが、ネジをわざわざ潰してある。あと、見慣れた QC pass のシールはない。裏板がアルミだが、基板との絶縁はされていない。底板を曲げて接触させないよう注意だ。

ラジオペンチで外して、記念撮影。メインのチップが、BT のアンテナと、キーボードにつながってる。キーボードのケーブルはちゃんとコネクタで接続されている。基板の設計は新しい。20141208 と記載されている。
さて、なにが出来るのだろう。ケーブルの抜き差しは、全く効果がなかった。基板から見えているテストパッドのような所を適当にショートさせると 入力できなかった文字が入力された。接触不良がどこかにある。
aliexpress では、Confirm した後もメッセージが書ける。ダメもとで 不良品だったと書いたら返事がきた。進展があるかも知れないので、破壊するような所業はおあづけ。
交換はするつもりはないので、(元には戻せないのを覚悟して)キーボードを止めてるプラスチックを外そうと思っている。マトリックスを記録するのだ。清掃なりして再度トライ。やはりダメとなったら、電子工作で変てこなキーボードを作るかも。その場合、底のアルミ板を(今だ来ていない)もう一つのキーボードの補強に使うつもり。
さらに、カラー版のキートップが iOS用だったら 交換するかも。機能まで iOS専用だったら 基板も交換という手があるか。意外とこのジャンクは役立つかもしれない。
すぐに返事が来た。新しいやつを 送ってくれることになった。ダメなやつは、好きにして良い!

止まっているところを全部切り取って外し、キートップも外したところ。
予想に反して、キーボードはモジュールだった。配線パターンがなにか変、黒いところが所々ある。断線してたりするのかも。
水を少しこぼして放置すれば、パターンが腐食することもあるそうだ。その人は、NICKEL CONDUCTIVE PEN で補修したそうだが ... パターンが複雑だったりしたら絶望的。

ぶっ壊して、マトリックスを記録。上の写真は、裏から撮ったものを左右反転している。右に伸びた線が下の写真の右につながっている。結構複雑な取り回しで、整理するのは大変。

キートップ裏。パンタグラフなのだが、構造が良くわからない。キートップの交換に使えると思ったが、付けたり外したりの練習して経験を積まないと壊してしまうかも知れない。
2つの部品がキートップ裏にきれいに収まっている。一回外れると、この状態にするのにも難儀する。精密な部品だから壊してしまいそう。

これは、iBuffalo のポメラキーボードで宣伝されている、パンタグラフの構造図。まさに、これと同じなんだが、支点がどこにあるかとか、良くわからないのだ。
おまけ


これは基板に載っているチップ。左がメインチップで、Bluetooth のアンテナパターンとキーボードが接続されている。

これを見ると、AB1112 は、キーボード専用のチップ。外付けの EEPROM が付けられる。おそらく右の写真のもの。これに入っているものは、単なるキーマップなのか?それとも ファームウェアなのか? 型番 24C64 から見て 64kbit (8KB) 。たぶん秋月とかで売っている
24LC64の系統なのではないかと。もしそうならば、外して読みだすなんてことも可能。電子工作的には、楽しめそうな素材。
専用チップなので、たぶん上記の性能がちゃんと出る。消費電力的にも優秀な印象。
ちょっと見たが、同じ 8pin で VCC にはコンデンサ、SCL,SDA のところにプルアップ抵抗らしきものが付いている。I2C ROM なのは間違いなさそうだ。
もし、キーマップを自由に設定できれば、さらに楽しめる。気に入ったキーボードを bluetooh 化できるかも知れない。ちなみに、コネクタは 1mm ピッチ 26pin 。信号線は 24 本で、2pin は接続されていない。往年の HPC マシンのキーボードだけ流用するとか..面白そう。
少し近い AB1120 のデータシートは、入手できた。詳細は分からないが、I2C ROM にはまず、config 情報が入る。その config の設定にプログラムを指定するものがあるらしい。汎用OS のドライバのような構造っぽい。
あと、このチップは SPP にも対応してるし、UART も積んでいる。設定方法が分かれば、全く別の使い方ができる。全然情報ないから絶望的だが。
I2C ROM だが、外さなくても読めると思う。多分電源投入時に読み込んでしまうはずだ。その後は空いているから、コマンドを送れるだろう。また、ロジアナなんかがあれば、読みだす場所と順番が分かるかも知れない。そうであれば、解析の情報になる。
キーマップ解析

写真を見て、キーマップを解析しておこう。
まず、信号名を決める。右側の線を上から A,BC,DEF,GHIJ としよう。よく見ると A と F は接続されているだけ。A=F なので注意。右下のケーブルは、数が多い。左の9本を 1-9 、右側は、上記の A-J を除いて abc .. と付けていく。信号線は、上側が BCDEGHIJ と 8本ある。下側は、1-9, a-f,F で 16 本。
ピンとのマップ (+正式信号名)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
1 2 3 4 5 6 7 8 9 a b c d e B C D E F G H I J f
C00 C02 C04 C06 C12 C10 C09 R0 R2 C15 R6 R7
C01 C03 C05 C13 C11 C14 C07 R1 R3 R4 R5 C16
キーマップ
ESC 1 2 3 4 5 6 7 8 9 0 - =
B5 C5 C6 C7 C8 B8 B9 C9 Ca Cb Cc Bc Ba
TAB Q W E R T Y U I O P DEL
E5 D5 D6 D7 D8 E8 E9 Db Da D9 Dc Ee
CAPS A S D F G H J K L ; ENTER
E6 G5 G6 G7 G8 I8 I9 G9 Ga Gb Hc Gc
LSFT Z X C V B N M , . RSFT
E3 H5 H6 H7 J8 J9 H9 Ha Hb Jc He
FN CTRL ALT WIN SPACE / \ UP
G1 B4 E2 I1 IF Ec Ea Id
LEFT DOWN RIGHT
Jd JF Jf
C00 C01 C02 C03 C04 C05 C06 C13 C12 C11 C10 C14 C09 C07 C15 C16
1 2 3 4 5 6 7 8 9 a b c d e F f
R0 B CTRL ESC 5 6 = -
R1 C 1 2 3 4 7 8 9 0
R2 D Q W E R O I U P
R3 E ALT LSFT CAPS T Y \ / DEL
R4 G FN A S D F J K L ENTER
R6 H Z X C N M , ; RSFT
R5 I WIN G H UP SPACE
R7 J V B . LEFT DOWN RIGHT
1 2 3 4 5 6 7 8 9 a b c d e F f
C00 C01 C02 C03 C04 C05 C06 C13 C12 C11 C10 C14 C09 C07 C15 C16
(目視でのみ作成:未チェック)
まとめ
格安ではあるが、不良品をつかまされた。分解したところキーボードのフィルムに断線もしくはショートがある模様。再送してくれることになったが、同じロットならこの部分の品質が悪そうだ。良品でもすぐにダメになるかも知れない。
ジャンクとして見れば、基板は使えそうだし興味深い。300円なら良かったんだが。
ただ、まとめるにはまだ早い。2つ目も到着してないし、再送品も受け取ってない。到着しだい追記予定。
2つめ
Number: FTL0045xxxxMY
Status: Transit
Destination: Japan
Origin: China
2015-05-28 16:52 MPC PMIH (KLIA), Item Arrived at Japan
2015-05-26 18:58 MPC PMIH (KLIA), Item Sent to JAPAN
2015-05-26 16:45 MPC PMIH (KLIA), Item Posted Over The Counter to Japan
2015-05-25 16:31 MPC PMIH (KLIA), Dispatch PreAlert to Japan
2015-05-20 06:08 FLYTEXPRESS-CN, Processed Through Sort Facility
2015-05-20 06:08 FLYTEXPRESS-CN, Processed Through Sort Facility
2015-05-19 15:16 FLYTEXPRESS-CN, Acceptance
2015-05-11 16:39 Customer, Shipping information recieved
======================================
Powered by www.17track.net
適当なトラッキング番号しか載ってなかったんで、メッセージを送ったら、土曜にも関わらず返事が来た。FLYT というところ。昨日日本に到着したようだ。速攻で手続きはしたようだが、送付まで時間がかかっている。
6/3 到着。普通は3週間みとかないとダメそうだ。

写真と違って、キーは黒。キートップは 上の2種類とも違う。
とりあえずは、Windows でペアリング。"bluetooth keyboad" と表示される。3.0 がないから、最初のものとは中身が違う。ちょっと古いバージョンかも知れない。
そして、重要なことは刻印どおりでないキーがいくつかある。詳細にしらべないと。
... これは、Windows の罠であった。多分英語キーボードの設定かなにかしないとダメなんだろう。Android で接続してみたところ、刻印どおり。
どう刻印どおりかというと ... Winモードでは Fn+数字は、ESC, F1 - F12。
Android モードでは刻印と同じ。
KeyTest.apkで確認したところ。
ESC ホーム
F1 ESC
F2 SEARCH (84 217)
F3 ctrl A
F4 ctrl C
F5 ctrl V
F6 ctrl X
F7 MEDIA_PREVIOUS (88 165)
F8 MEDIA_PLAY_PAUSE (85 164)
F9 MEDIA_NEXT (87 163)
F10 VOLUME_DOWN (25 114)
F11 VOLUME_UP (26 115)
F12 電源OFF
(keycode scancode)
こういう結果であった。iOS モードは、Androidモードと少し違うだけのようだ。F3 で電卓が起動し、F4 で連絡帳が起動した。
その後、電源が入らなくなった。充電ランプは付くが動作しない。前のやつで経験したがバッテリーのケーブルが外れると同じ症状になる。本当に品質が悪い。
中身を空けたところ、バッテリーの電源はちゃんと来ている。壊れた?
バッテリーの電圧は、4.1v あって問題ないのだが、電源をON すると 0v になる。一度動いた基板が突然壊れるなど信じがたいが、4.1v あるバッテリーが弱っているとも思えない。どうしたものか。
しょうがないので、ダメだったキーボードとのニコイチ作戦に出た。基板そのものは、大分違うのだが、互換性がある。あと、バックパネルがペラペラなので、これも入れ替え。ペアリングして、チェックしたが全部キー認識した。OK。
FN キーの部分が刻印と違ってしまったが、気にしない。
再送分が来る!
2015-06-03 00:00 Japan Arrive at Japan Airport-(Yanwen's Track End)
Original Country-Yanwen[SZAA008359148] To China Post Air Mail[YC69146xxxxYW]
2015-05-30 00:00 BeiJing Handled by Airline
2015-05-29 00:00 Beijing Internationg Mail Center Prepare to Dispatch
2015-05-28 00:00 BeiJing Arrived at Beijing Internationg Mail Center
2015-05-28 00:00 Beijing Internationg Mail Center Received
2015-05-26 20:00 ShenZhen Despatched from Yanwen ShenZhen Sorting Center
2015-05-26 18:00 ShenZhen Arrived at Yanwen ShenZhen Sorting Center
これ、Arrive at Japan になって初めて出た。安心は出来るが意味ない。
キーボード台

黄色のキーボードを買った理由は、これ。
クラムシェルもどきのキーボード台を作ってみたかったのである。

まだ、試行錯誤中ではあるが、こうなってる。プラスチックのものは、ダイソーのスマホスタンド。これを曲げてこんな形にした。で、レールのようなアルミのアングルを付けて、3mm 厚のアルミ板に取り付けた。一応、キーボードを乗せれば後ろに倒れないようだ。
タブレットの取り付けは、ダイソーのマジックテープ。十分強力でテープの方がはがれそうになる。レールのようなものは、コの字型で、8mm x 5.5mm 。 3mm 厚のアルミ板に溝を切って差し込んでみた。
このアルミパーツをキーボードに貼り付けようかと思っている。そのためには、段差をなくす必要がある。また、これではキーボードの補強にはなってない。もう少し検討しないと。
ちなみに、このスマホスタンドは、かたさにばらつきがある。バネだかなんだかが弱いものがある。

結局補強は、木でやることにした。簡単に曲がらなきゃなんでも良いのである。とりあえず、ホムセンに行ったら、ファカルタ集成材というのがあった。120mm幅、5mm 厚のを購入。すごく柔らかいが、補強という点では、これでも十分だろう。アルミパーツの段差問題は、木に埋める方針。アルミパーツなしなら塗装などしないのだが、はがれて来そうなぐらい柔らかい。で、ウレタンニスとかいうのを塗ることに。結局高くついたのだが、趣味の品だから良いのだ。
他に、3mm厚 アガチス材 も買ってみた。これは、えんぴつなどに使われているそうだ。加工してみたが、すこし無理をすると割れそうな材質。まぁ、えんぴつと同じ。アルミパーツを付けるのは、1つだけなので、別のやつに使ってみる。
正確に加工されていて、曲がってないやつは、この2つだけだった。あ、MDF もあったか。 MDF では補強にならないと思って外した。
ちょっと重さを測定。本体 130g に対して 5mm厚 ファカルタ集成材が 37g。アルミパーツも 38g で プラスチックの スマホ台も 38g 。全部で 243g。 3mm厚 アガチス材 は 31g 。
その後:スマホ台のヒンジがゆるゆるになって、すぐ後ろに倒れるようになってしまった。交換可能なようにはしたが、思いのほか早かった。
スマホ台を破壊して中をみたところ、バネが入っていて、溝と出っ張りを押さえつけている。で、溝が摩耗してゆるゆるに。元には戻せないが、修理することは可能かも知れないのでやってみる。
黄色キーボード基板

電源が入らなくなったので、入れ替えた 黄色キーボードの基板。基板自体は、しっかりしている。I2C ROM (L24C64) の信号線がコネクタとして出ている。キーのマトリックスも信号名が載っている。さらに、TXD/RXD のテストパッドまで。
なかなか面白そうではあるが、チップは RDA5871 であった。にも関わらず、基板には AB1107 とかなんとかのシルクがある。

信号名を記録。C00 とか R0 とかになっている。
ところで、 RDA5871 だが、ググると色々と出てくる。こっちの方が改造とかしやすいかも知れない。このチップは、bluetooth 2.1 対応と少し古い。16KB までの I2C ROM に対応していて、そこに入れたコードで、機能をカスタマイズするタイプ。AB1112 と同じ仕組み。
改造するツールなども見つかった。
・
https://code.google.com/p/rda5871-sdk/これなど興味深い。HID にしか対応していないはずだが、SPP のファームウェアがある。リンク先には、ソースコードまである。
エレコム TK-FBI033BK
送料込み、1200円と安価なので、iPhone 4s 用のキーボードを買ってみた。pigu で使ってみたいのと、中身に興味がある。

スライドじゃなくて、パンタグラフのような構造。ケース部分を外すとこんな感じ。ダイキャストの金属部品が使われている。ケース部分を取って pigu を直付けしようかと思ったが、意外にもほとんど薄くならない。1mm ぐらいしか稼げないので、方針変更。ケースのホールドする部分を切り取って pigu のバックパネルを直接張り付ける。

分解したところ。基板の上に、タクトスイッチの接点が幅広のテープのようなもので、張り付けてある。上は micro USB の コネクタ。ちなみに、白い部分は何かちゃんと見てない。位置決め用のマスクのようにも見えるが、基板のシルクかも。
タクトスイッチの接点と言ってもわからないかも知れない。皿のような形状で押すとぺこぺこ凹む。内側にポッチがあって、そこと、皿の周囲が接点となる。これはタクトスイッチを分解しても出てくる。

基板の裏、バッテリーは 95mAH 。この基板一枚が主要部品で、見慣れたモジュールが載っている。AB1112 が載ってないかと、期待してたが違った。日付は 2011/11/17 で結構古い設計。
再度分解して、シール下の型番を確認したが、BCM20780 らしい。シリアルROM らしきチップも載っているが、型番見てもサッパリ。
一応レビュー。クリック感があるし、キーの中央は凸になってて、押しやすいかな。キー配列は慣れればなんとかなりそうな感じ。安く手に入れたとはいえ、高級感はある。ただ、常用するかどうかは分からない。
謎のセットぽちった

黄色キーボードを買ったショップを覗いたらこんなのがあった。値段は、$10.98 。
ハンドルリモコン と IRリモコン、時代遅れっぽい本体 ... という妙な組み合わせのセット。一応 MP3 プレイヤーだそうだ。
お目当ては、ハンドルリモコン。これは、bluetooth なのだそうだ。0000 でペアリングと書いてあった。これだけが欲しい。ただ、本体も bluetooth に対応しているわけで、ちょっと分解してみたい。
良くみたら、なんか違う。ハンドルリモコンは、多分 IR でしかも左ハンドル向け。本体が bluetooth でスマホと A2DP で接続できる。FM トランスミッタで、音をカーオーディオに飛ばすことが出来て、本体のマイクでハンズフリー会話も出来る。そういうものっぽい。予定が外れたが、まぁ面白そうだ。
"Headset Button ControllerTrial"とかいうアプリはあった。が、ハンドルリモコンのキーをフルカスタマイズできるようなものなのだろうか?やりたいことは、多分 Tasker に渡せるイベントを発生させること。で、Tasker で、アプリを起動したりしたい。
電子工作的には、例の余った基板を使い、IR リモコンの信号を受けたら、アナログスイッチで キーマトリックスの該当ボタンを押す .. みたいなものを作れば純粋な HIDキーボードになりそうだ。
3週間みておかないといけないから、忘れたころにレビュー予定。
ちょっとメモ
CScanCodeを確認する
Key Testというアプリで、変更したいキーのScanCodeを確認してメモっておくScanCode: 数字の部分)
ただし、fnキーとの同時押しがShiftとの同時押しと同じかどうかで扱いが違うので省略
DベンダーID、プロダクトIDを確認する
要するにデバイスを区別するためのIDを確認する
自分で確認しても良いけどBoxwave5sはVendor ID:05ac Product ID:023c
別のデバイスとかならググってくれ
Eキーレイアウトを変更する
E-1 .klファイルを作る
一から作ることも可能だけどめんどいので、デフォルトのをコピーする
多分どの機種も同じだろうけどZ1fだったら/system/usr/keylayoutにアクセスしてGeneric.klをコピーする
ファイル名を"Vendor_○○_Product_△△.kl"に変更する
○○のとこはVendor IDで、△△のとこはProduct IDね
Boxwave5sなら"Vendor_05ac_Product_023c.kl"
OSは4.2でやったけど、この辺4.4だと処理違うかも
E-2 .klを弄る
ファイルの内容が"key ScanCode(数値) KeyCode(キーの名前、AとかMENUとか)"
になってるから、Cで確認したキーScanCodeのところのKeyCodeを変更したいキーに変える
ただし、fn同時押しが元々割り当てられてないところに新たに割り当てるとかは出来ない
注意が必要なのはfn同時押しの操作がShift同時押しと同じもので、こっちを変更したい場合後で.kcmを弄る(今は省略)
あと、アクサングラーブ"`"はアプリによっては全角半角に割あて出来る
E-3 .klを設置する
/system/usr/keylayoutにE-2で作ったファイルをコピーする
これでキーを無駄なく利用できる
自分が設定して便利だったのは
ZENKAKU_HANKAKU(日本語切り替え)
MUHENKAN(無変換、日本語入力アプリによるかも知れなけど英数カナ変換として使える
PAGE_UP,PAGE_DOWN とかかな
ここまでやれば、ハンドルリモコンの全キーをカスタマイズできるはず。
これなんだが、Mediatek の場合、言語と入力の設定で、"MTK BT HID" としか認識されない。複数のキーボードは接続できるのだが、システムには疑似キーボード1台と認識される。上の方法も使えそうだが、切り替えが相当に面倒。
・
https://github.com/y10g/android_user-keymap_jp109keyboard言語と入力の設定には、キーボード・レイアウトを設定する機能がある。(4.1 以上らしいが)。このレイアウトを追加するアプリのソースコードを提供してくれた人がいる。これを変更して独自のレイアウトを作るとかしても、好きな設定が出来るようだ。自動というわけには行かないが、こうすれば切り替えは出来る。
追記1 (2015/7/1)


現在のキーボード台(作成中) −2号機と3号機。
スマホ台がどうも弱いということで、ダイソーの竹製まな板とスマホ台2個を使って2号機を作った。まな板にスリットを切って、スマホ台を差し込んである。
だが、スマホ台がだんだん弱くなることが分かったので、全部木で作ったのが3号機。かたさを調節するためにEVAを差し込んでみようと思っている。
どちらも、ニスを塗ったのだが、まだベトつき感が残っているので使えない状態。
それはともかく、どちらも重いタブレットだと後ろに倒れるおそれがある。ウェイトを付ける必要があるかも知れない。