2016年8月13日土曜日

ジャンクレシートプリンタを動かす その2

 
こないだの冬に末広町の若松通商が閉店しました。細長いビルね。3Dプリンタとか、CNCルータとか実演状態でおいてあって面白かった店です。
閉店前にはいろいろと投げ売りが行われまして、わたくしも6Pの配線付きコネクタ10組み10円を40セットとか、10円の端子台とか買いました。その中で一番高価(笑)だったのがジャンクレシートプリンタです。なんと1000円もしました。
以前よりレシートプリンタには興味をもっております。スピードの速さ、ちょうどいい出力用紙のサイズ。ちょっとした買い物メモや一日のToDoリストなどを出力するのに最適です。
「スマホでいいやんけ」というこえは当然あると思いますが、紙の利点は今更言うまでもないことです。つか、いろいろ言ってますが、要はなんかかっこいいじゃないですか。




前回とりあえず通電してメカが正常に動いているっぽいところまでは確認しましたが印刷はできておりません。付属のケーブルが24pinD-SUB⇔RJ45というPOSっぽいもので、結線がまったくわからなかったのです。




CELAというこのプリンタの発売元にも全く情報がありません。何とかオークションの残骸からセットアップ情報を探し出しました。


シリアルであることは間違いないですね。
この辺りまでが前回の復習。

ではジャンクならではの面白いパズルを解いていくような楽しいひと時の始まりです。
まず情報を探します。
世界中にレシートプリンタの会社なんてそうありませんからCELAという会社が自社でプリンタハードウェアを開発しているなんてことはまず考えられません。おそらくブラザーかStarかEpsonのOEM品です。ということでこの辺りから探っていきます。
「Star レシートプリンタ」などという検索ワードでGoogle先生に聞いてみますと、最初のプリンタなんかよく形が似てますね。


Brotherや、


Epsonの画像検索と比較すると一目瞭然です。


この手のデザインはメーカーごとの特徴がよく表れますし、業務用機器なのでそうそうデザイン変更なんてしないものです。
強いて言うならEpsonのデザインも似てなくもないですが、操作系が上部に集まっているところが違いますよね。

もう一度比較します。

Starのやつ
ジャンク



操作系の位置がぴったりです。ボタンの順番も左からパワー、エラー、Feedとまったく同じ。
おそらくStarで正解でしょう。
これでまず一つ目のカギが手に入りました。謎解きゲームでもやっている感じです。

お次。ケーブルの結線です。RJ45側が4本しか来ておりませんのでまずシリアルであることは間違いないと思います。昔のプリンタにありがちです。メーカーとしても出荷台数の少ないレシートプリンタごときにわざわざオリジナルのインターフェースを開発するはずはないのです。後は「どれがどれか問題」を解いていきます。
「POS RJ45 結線」「DSUB25pin RJ45 結線」「レシートプリンタ コネクタ 結線」といった検索ワードで調べていきます。が、何もヒントが出てきません。これはなかなか手ごわいです。
やむなく基板を見ます。


上の写真の外したI/F基板、Dsubコネクタのそばに見えているICが二つ。これを調べます。おそらくRS232CとCMOSのレベル変換ICと思われます。こ奴のピン配置がわかれば結線情報が出てくるはずです。
見てみますと、シルクにはL296とあります。なんかSTマイクロのフルブリッジドライバを思い出すような型番ですが、STではありません。知らないメーカーのシルクです。ということで「L296 datasheet」などと調べてみますが、何も出てきません。
しばらく格闘しておりましたが、この線はあきらめのようです。

が、「そもそも何ピン使っているんだろう」と思ってDsubに伸びたパターンを追っているときに「そういや昔のモデムはDsub25pinだったじゃん」と思い出しました。Dsub25pinのシリアル結線規格があるかもしれません。これは一筋の光なのか?
早速Google先生に聞きます。これはすぐに教えてくれます。ありますね。Dsub9pinとの結線データまで出てきました。そういえばPC側はDsub9pinですからその変換は必ず行われるわけです。
たとえばこれ。


なんか近づいてきた感じがします。
これをヒントに25pin側の基板パターンを追うと、確かに2,3,7,20番ピンに接続があります。一方で8,15,17,24番あたりには何もつながっていません。おそらくこれでビンゴでしょう。
まともな設計者なら添付する標準ケーブル以外のDsub25pinケーブルが挿し込まれることを考慮するはずです。その場合動作はしなくてOKだとしても、最低限接続された機器は壊れないようにすることが要求されます。そのために一番良い方法は標準規格に合わせておくことです。
パターンの数もピン番号もほぼ同じということであれば、上記の結線がなされている可能性が非常に高いと思われます。これで二つ目のカギが手に入りました。

いよいよ詰めです。実際に結線して動かしてみます。
Dsub9pinメスコネクタ持ってきて、


この専用ケーブルを、


切断して、


しかるべき線を上の絵に従って接続します。


プリンタの方も準備です。
レシートプリンタには感熱ロール紙を使いますが、これの残量を検出するセンサがついているのが一般的です。このプリンタにもついております。
感熱ロール紙はとりあえず動作が確認されてから購入しようと思っておりますので、今はありません。ということで、センサをだまして動かします。
やりかたは簡単で、この溝の奥にあるフォトリフレクタを、



こうやって塞げば終わりです。



エラー表示がこの通り消えます。



次はプリンタドライバです。
いずれはRaspberryPiで動かそうと思っていますのでどうでもいいのですが、とりあえず何か入れておかないと面倒なので、Starのサポートからラインプリンタ用のドライバを適当に放り込みます。

で、動かしてみると.....  動きません。やっぱり壊れているのか。ジャンクですしね。
基板上に回路を組むときと違って、ジャンクの問題は「ちゃんと動くはずの状態になっているが、そもそもブツが壊れているから動かない」という可能性があります。これと「実はちゃんと動く状態になっていない」のどちらであるかを見極める目が必要であります。

もう一度よく考えてみます。
ここまでの推論に間違いはないという自信があります。これまで幾多のジャンクをモノにしてきたのです。それなりの経験が蓄積しカンが養われているはずなのです。
そこで、最後のトライとしてシリアルにありがちなベタな問題の可能性を考えてみました。

シリアル接続、RS2332C接続といってもいいかな、のベタな問題は「ストレートクロス問題」と「オスメス問題」に集約されます。ソフト的には「RTSイネーブル問題」とかありますが、ここはプロの書いたファームなのでそんなことはないはずです。よってケーブルに絞ります。
「シリアルケーブル持ってきて」「はい持ってきました」でちゃんとつながる確率は経験的に1/2以下です(笑 経験ある方は同意いただけると思います。
たいていの場合どちらかのオスメスがあっておらず、そもそもケーブルが刺さらない。もし刺さってもストレートケーブルが必要なところにクロスケーブルを持ってきた、などなど順列組み合わせでいろいろな問題があります。ざっと可能性を挙げても、
  • 機器Aオス、機器Bオス ケーブルメスメス、またはオスメス
  • 機器Aメス、機器Bオス ケーブルメスメス、またはオスオス
  • 機器Aメス、機器Bメス ケーブルオスオス、またはオスメス
さらにこれにストレート/クロスの場合が掛け算されます(笑 あと長さが足りないといった超基本的な話が加わって現場は阿鼻叫喚の様相を呈するのであります。

さて、前置きが長くなりましたが、この可能性を最後に検討します。
現状ケーブルは刺さっておりますので、オスメス問題は乗り越えております。残りはストレートクロス問題です。
ということで、Dsub9pinの2/3番を入れ替えます。ストレート結線にするということです。

果たして、



動きました。やっぱりジャンクの神様は私を見放しておりません。素晴らしい。
何やらかいておる様子ですが、ここに入れているのは感熱紙ではなく、普通のコピー用紙です。ロールはまだないのです。

ですが、ここまで動くとちゃんと印刷するのかどうか見たいですよね。ということで、ゴミ箱の中からレシートを拾ってきます。
短いものを何とかセットして動かしてみると、


素晴らしい。ちゃんと書いております。


なんか文字化けだらけですが、そのあたりはドライバを適切にすれば大丈夫でしょう。
ここのポイントは、このプリンタがPCと接続して正常に動作しそうなものであることが分かったことです。とりあえず動いたと言っていいでしょう。
ということで問題はソフトウェアのフェーズに進みました。もう一歩で実用化できそうです。

それにしてもジャンクの面白いこと。
どんなパズルも推理問題もここまで面白くはありません。しかも最終解があるかどうかすらわからないのです。それをひとつづつ解いていく楽しさといったら。
ジャンクはタノシ。

0 件のコメント:

コメントを投稿