カテゴリー別アーカイブ: 電子工作

USB2ADB 実験版Firmware 20161224

USB2ADBの実験版ファームウェアを更新しました。以下のリンクからダウンロード可能です (DLパスワード、解凍パスワードとも共通で 「d*******t」 です)

usb2adb 20161224実験版

 

より安定動作が見込めるのはサポートページで公開しているバージョンです。実験版は機能追加等の検証を目的として公開しています。現在の所、Fnキーのワンショットモデファイア化は実験版のみの実装となっています。 (逆に言えばFnキー機能以外の面では安定版との違いは全くありませんので、Fnキーを使わない方は今の所実験版を導入する意味はありません)

20161010版からの変更は、Fnキーを併用した場合にキーが押しっ放しになる不具合に対応しました。なおサポートページで公開している安定板と比べて、実験版ではより踏み込んだ対応を盛り込んでいます。

具体的にはキーが押された際に押されたキーごとにFnキーのON/OFF状態を記憶しておいて、キーが離された際はキーを押した時のFnの状態に従って開放処理を行うべきキーを決定しています。

Tweet about this on TwitterShare on FacebookShare on Google+

SMD水晶発振子のはんだ付け

表面実装タイプ(裏面4隅にパッドが存在するタイプ)の水晶発振子の俺的手はんだ方法。
無論、一番いいのはリフローなんだけど手持ちのペーストはんだが尽きてしまったので。

ターゲットはこれ

xtal_1

サイズは3.2mm×2.5mm。一応4隅のコーナーにもわずかに電極が出てるんだけど、これに期待するはんだ付けは過去に数度不良を起こしてるのでやはりちゃんと底面ではんだ付けしたいのです。

続きを読む

Tweet about this on TwitterShare on FacebookShare on Google+

直近のelecrow発注分

レジストずれ。画像の下方向にずれてる(ちなみに線幅は16mil)

elecrow_regist

こっちはシルクずれ。
ずれてる上にパッドの上に被ってる・・・

elecrow_silk

たいした基板じゃないし値段が値段なので実害が無ければそのまま使うけど。
シルクに関してはずれることを最初から前提にしておけ(あるいは前提にしておかなかった方が悪い)って感じかなぁ。シルクの品質はあまり良くないって言うのは認識してたつもりだったけど・・・

Tweet about this on TwitterShare on FacebookShare on Google+

USB2ADB 実験版Firmware 20161010

USB2ADBの実験版ファームウェアを公開します。ダウンロードは以下からどうぞ(パスワードが掛かっています。DLパスワード、解凍パスワードとも共通の「d*******t」です)

usb2adb_20161010

 

Fnキーをワンショットモデファイアキーとして使えるようにしました。例えばスペースバー左側のGravキーをFnキーとして使う場合

  • 単独で打鍵するとGravキーとして機能
  • 任意のキーと組み合わせて打鍵するとFnキーとして機能

となります。従来どおり、Fnキー専用にして使うことも可能です。

ワンショットモデファイアキーとして使用した場合、以下の制約があります。

  • 単独で打鍵した場合、キーを押しっぱなしにしてもリピートが発生しない
  • 単独で打鍵した場合、キーを「離した」タイミングでPCに「キーON&OFF」が通知される

単独打鍵か否かの判定を「Fnキーが押下されてから開放されるまでの間に他のキーの押下があったか?」という条件でチェックしており、キーが離されるまで単独打鍵か否か判断が出来ないためです。

特に弊害も無いのでFnキーの機能を使用する場合はワンショットモデファイアキーの設定をデフォルトにしてしまって良いかと思います。

なお設定ファイルの記述が少し変更になっています。詳細は設定ファイル冒頭のコメントをご覧ください。

設定の都合上Fnキーは1個しか指定出来なくなります。2個以上指定したいのでこの仕様は困る、と言う方がいましたらコメントで教えて下さい。

Tweet about this on TwitterShare on FacebookShare on Google+

Windows10で98配列USBキーボード

WIndows10をセットアップする機会があったのでついでにNECの98配列USBキーボード、PK-KB011 (VendorID 0x0409、ProductID 0x001A) の動作を確認しましたが、正直なかなか厳しい感じです

※ 2016/11/05 WIndows8.1について末尾に追記しました
※ 2016/12/22 Firefoxに関する記述を修正追記しました

日本語106/109キーボードとして認識されてしまう事がある

PCの電源ON→Windows10起動→ログオン
この直後はキーボードは日本語106/109キーボードとして認識されます。テンキーイコール、カンマは入力不可で、Ctrl+XFERでのIMEの切り替えも不可です

で、こちらにあるように一旦サインアウトし、改めてログインしなおすとキチンと98配列キーボードとして認識されるようです。

PC-KB011(NEC PC98 Series Layout USB Keyboard with Bus-Powered Hub)が 106/109キーボードとして動作してしまいます

ただしこれでも一度USBケーブルを抜いて再度挿しなおすとまた106/109キーボードの認識に戻ってしまいます。

ユニバーサルアプリで98配列キーボードとして入力出来ない

Windows10では標準のウェブブラウザEDGEやストアアプリは「ユニバーサルアプリ」という新しい仕組みで動いていますが、ユニバーサルアプリに対しては98配列キーボードとしての入力が出来ません。なぜか106/109キーボード扱いになってしまいます。ちなみにWindowsの検索窓も同様です。 Windows10標準の電卓もユニバーサルアプリのためテンキー=の入力は出来ません。

で、これはユニバーサルアプリを諦めて従来型のアプリを使えば(ブラウザならとりあえずEDGEの代わりにChromeを使うとか、電卓ならフリーのアプリで代用するとか)回避出来る訳ですが・・・

なぜかFirefoxも98配列キーボードとして入力出来ない

少なくともFirefox49も98配列キーボードとして使えず、ただの106/109キーボードとしてしか使えませんでした。Firefoxはユニバーサルアプリじゃないように見えるんですが何故・・・

仕方ないので少し古いバージョンをインストールしてこの問題を回避しています。とりあえずESR45なら98配列キーボードとして使用出来る事を確認しています。

2016/12/22追記
Firefoxの動作について記述に誤りがありましたので訂正します。
Firefox49 (49.0と49.0.2で確認) については98配列キーボードとして認識されるものの、URL欄でテンキー+とテンキー=が出来ませんでした。検索欄や入力フォーム等ではどちらのテンキーも入力出来ました。

Firefox ESR45ではURL欄でもテンキー+、テンキー=は入力出来ました。
2016/12/22時点で最新版のFirefox50.1.0でもURL欄を含めテンキー+、テンキー=とも入力は問題ありませんでした。

という訳でFirefoxについては特別な事情がない限り最新版に更新し続けていれば98配列キーボードでも問題無いようです。

 

このように、Windows10で98配列USBキーボード (VendorID 0x0409、ProductID 0x001A) を使うのはなかなか辛い状況になったと言わざるをえません。今後ストアアプリが幅を利かせるようになってくるとますます厳しい状況になると思われます。

PC-98NXのオプションとして発売されたのが約20年前。20年経過した今現在でも最新Windowsのドライバが98配列キーボード (VendorID 0x0409、ProductID 0x001A) に対応しているというのはむしろMSに感謝なのですが・・・

ユニバーサルアプリの件はもうWindowsの仕様ということで諦めますので、せめて106/109キーボード誤認の問題だけでも修正されませんかね。なんとかお願いします、MSさん

 

2016/11/05追記
Windows8.1でも同様の症状が出るとのご指摘を頂きました。当方Windows8.1環境は評価版ゆえWindowsUpdateを全くあてていないのですが、この環境だと特に問題は生じていません。となるとWindowsUpdateをあてることでWindows10相当になった故かもしれません。

貴重な情報をありがとうございました。

大変残念ですがWindowsOSの 「98配列USBキーボード」 運用は実用上Windows7まで、と言うことになるかも知れません・・・ おのれMicrosoft・・・・

Tweet about this on TwitterShare on FacebookShare on Google+

PCEターボパッド

PCEターボパッドの連射速度測定

PCE連射_noWait

連射速度2で秒62連射 (124変化/秒)、連射速度1で秒31連射はほぼ理論値どおり。

あと通販で買ったTIのバススイッチ。これをaitendoのSSOP-DIP変換基板に乗せてみた。

BUSSW

双方向バスで手っ取り早く5V-3.3V レベル変換を実現するのによさそう。
あと、このaitendoの変換基板は幅300milで抑えられるのが地味にありがたい。

Tweet about this on TwitterShare on FacebookShare on Google+

PC-98×1キーボード用のUSBコンバータ

RDFキーボードを入手したので実験

98KBD2USB

キーボードから送られてくる信号はただのシリアル信号(19200bps)なんで68キーボード用の変換器をベースにして簡単に作れるかと思ったんですが

  • キーを押しっぱなしにした場合の信号の発生がわざわざ
    Make→→→→→Break&Make→→Break&Make→→Break&Make
    という、今となっては(少なくともUSB変換を前提にするなら)あまり嬉しくない仕様。(ただ、コマンドを送ることでこの仕様をキャンセル出来る世代のキーボードもある??)
  • CAPSとカナは押下のトグル状態をキーボード側でいちいち記憶してる。つまり一度押下するとMakeが発生し、離してもBreakは発生しない。もう一度押下するとBreakが発生する。
  • CAPSとカナのLEDも前述の動作にあわせてキーボード内マイコンが制御している。(ただしLEDについてはコマンドを送ることで任意に制御出来る模様)
  • キー押しっぱなしでリピートが発生するキーと発生しないキーがある。(ただ、これについてはUSB変換を行う上では影響は無いけど)

という、キーボード内のMCUがインテリジェントなのが今となっては逆にアダになってます。特に1つ目の仕様はゲームに向かないですね。普通に文章を打つ分には問題ないんですが。

最下段(スペースバーがある段)のキーが今時のキーボードに比べて少ないんですが(スペースバーの左に3つ、右に1つ)これはあまり気になりませんでした。まあ、英語キーボードなんかもっと少ないですし。

Tweet about this on TwitterShare on FacebookShare on Google+

富士通キーボード F6962KB2(その2

備忘録

先日ここに書いた富士通のキーボード、F6962KB2についてもうちょっとまじめに調べた結果をだらだらと記しておきます。

HIROSE_HR12

コネクタ(ヒロセ HR12)のピンアサインは多分以下のとおりです

1 Rx DATA (本体からキーボードへ)
2 Tx DATA (キーボードから本体へ) オープンコレクタ出力
3 GND
4 未使用
5 GND
6 GND
7 Vcc (5V)
8 Vcc (5V)

Tx DATAはオープンコレクタ出力なので適当な抵抗でpull-upする必要があります。 7,8pinがVccという所だけFMR/FM TOWNS系と共通なおかげで助かりました・・・

信号は先日も記述しましたが4800bps、スタートピット1、ストップビット1、データ8bit、パリティODDのシリアル通信です。

キーを押すと3バイトのデータがキーボードから送られてきます。キーを離しても何も送られてきません。

キーを押しっぱなしにした場合、リピートデータが送られてくるキーと、押しっぱなしにしても何も送ってこないキーの2種類があります。リピートデータが送られてくる場合、リピート開始まで500ms、リピート周期は50msです。

押しっぱなしでリピートデータを送ってくるキーは概ねこんなデータです。

  • 最初の押下時: 0x11, 0x00, <スキャンコード>
  • 押しっぱなし: 0x11, 0x01, <スキャンコード>

リピートデータを返さないキー(SHIFTや実行といったキー)の場合は「最初の押下時」のパターンの3byteを送ってきます(2byte目が0x00)。

リピートデータを返すキーを2つ同時に押下した場合、リピートデータは後から押したキーのものしか発生しません。そして、同時押しの状態から片方のキーをリリースした場合

  • 後から押下したキーをリリースした場合、リリース後は何のデータも発生しません(先に押下していたキーが押しっぱなしだとしてもリピートデータは発生しない)
  • 先に押下したキーをリリースした場合は、後から押下したキーのリピートデータが引き続き発生する

となります。

 

これ、SHIFTキー同時押し(SHIFT+Aとか)って一体どうやって判定してるんでしょうね?もしかしたら2バイト目のどこかが装飾キー押下フラグにでもなってるのかと思いましたがそんな事はありませんでした(SHIFT+Aを押下すると単に「SHIFT押下」「A押下」「Aリピート」が順に送られてくるだけ)

それともOS側は「SHIFTキーコードが1回発生したらMake、もう1回発生したらBreak」っていうトグル処理になってるんでしょうか?実機がどうなっているのか興味ありますが残念ながらメインフレームには縁がありません(もしご存知の方がいらっしゃいましたら教えていただけますと幸いです)

Tweet about this on TwitterShare on FacebookShare on Google+