アーカイブ

月別アーカイブ: 12月 2014

クリスタル実装

ケーブルができた勢いに乗ってファームの書き換えと行きたいところだが,その前にクリスタルを実装しておく。
実はHP-30bにはリアルタイムクロック回路が用意してあるが,クリスタルが実装されていない。そこにクリスタルを実装して対応版のファームを使えば,時刻関係のコマンドやストップウオッチ機能が有効になるのだ。
電卓で時刻や日付を調べたり,ストップウオッチ代わりにすることがあるのだろうか,などという冷静な意見はひとまず脇に置いておいて,クリスタルを取り付けよう。

用意するのは,時計用でおなじみの32.768Khzのクリスタル1つと18pFのコンデンサー(1608サイズ)2つだけど,18pFを店頭に置いている店が見つからなかったので,手持ちの22pFで代用した。水晶発振子につなげるコンデンサーは22pFというのが日本の常識(ほんとか?)なので,問題ないだろう。

xtal1
写真はケースを空けた状態を内側から写したもので,右側のケースの丸印がネジのある所,左の基板の丸印が水晶とコンデンサーを取り付けるところだ。

hpcalc.orgの人のYouTube動画を見ると,HP-30bをWP34sにする過程がわかりやすい。

ただ,ケースをあけるときに工具を使わないで,指の力だけでパキパキと爪を外していくのは難しい。真似をしてみたけど,最初の1か所を開くことに成功しただけで後は全然外れなかった。怪力アメリカ人とは言わないが,力持ちにしかできない芸当だ。
しかたがないので,最初に外れたところにギターのピックのような薄いプラスチックを差し込んで順に動かしていったら簡単に外れた。

xtal2

水晶とコンデンサー(水晶の足の両脇のC3・C4)を実装したのがこの写真。ハンダを盛りすぎたり,基板を固定しているプラスチックを焦がしたりで,恥ずかしい仕上がりだけど,まあ,これでも動いています。

フラッシュ

ここまで順調に進んでいたので,調子に乗ってそのままファームの書き換えも開始した。

しかし,その前に,Mac OSX10.10 (Yosemte)からは,署名のないドライバーを読み込まなくなったのでFTDIのドライバーが動かず,その代わりのはずのApple製FTDI用ドライバーの出来も今ひとつという問題があるので,その対策をしておく。

cd /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/
sudo mv AppleUSBFTDI.kext AppleUSBFTDI.disabled

で,Apple製ドライバーを無効化。やってることはファイル名を変えているだけなのでFinder操作でも可能だ。

sudo nvram boot-args="kext-dev-mode=1"

で,起動時に無署名のドライバーも読み込むように設定(あまりほめられた設定じゃないので,ソフトウェアアップデートの時に戻されるらしい)した後に再起動する。
再起動後,HP-30bを自家製ケーブルとUSB-シリアルアダプターを介してMacに接続してMac用フラッシュツールのwp34sflash.appを起動し,ポートとダウンロードするファームを指定する。

flash0

コネクターがずれないようにテープで軽く固定。

書き換え時は,片手で軽く本体を押さえてコネクターを接触させながら,もう一方の手で操作をする。上下が逆になっているのはON/CEボタンを押しやすくするため。

書き換え時は,片手で軽く本体を押さえてコネクターを接触させながら,もう一方の手で操作をする。上下が逆になっているのはON/CEボタンを押しやすくするため。

今回はクリスタル実装済みなのでファームはcalc_xtal_full.binにした

今回はクリスタル実装済みなのでファームはcalc_xtal_full.binにした

 

マニュアルの手順に従ってオリジナルのHP-30bのファームを消去後,wp34sflash.appの「Flash」のボタンを押すとプログレスバーが伸びて,簡単にファーム書き換えが終了。

のはずだったのだが,ファームの消去後に「Flash」のボタンを押すと,USB-シリアルアダプターの赤LED(TX)が数回点滅した後,プログレスバーが伸びる代わりに「Cannot connect to WP34s」と赤字で表示された。

macfail

Debugにチェックを入れて実行してみるとWP34sからの応答がないといった意味のことが表示される。応答があればRXの緑LEDが点灯するはずだから納得できることだけど,納得したからといってどうなるものでもない。

USB-シリアルアダプターを取り替えたりしながら,何回か繰り返してみたけど状況は変わらない。それならとVMWare上のWindows7でWindows版のwp34sflashを動かしてみるがやはりアウト。MySambaでもやはり同じだ。
OSが新しいのが原因かも知れないので,Mac OSX10.7のMacBookに舞台を移してやってみてもダメ。Mac OSX10.7上のVMWare上のWindowsXP(ああ,ややこしい)でもダメだ。WindowsXP+MySambaは鉄板だと思っていたのでショックだ。

その後も,同じことを何回も繰り返したあげく,わざわざCP2102を使ったアダプターを買ってきたり,CH340Tという珍しいUSBシリアル変換ICを使ったArduino互換機(びんぼうでいいの)のUSBシリアルブリッジ部分だけを使って試したりしたが,状況は何も変わらない。
そうこうしているうち,もしかしたら壊してしまったのではないかという疑惑が少しずつ頭をもたげてくる。

壊れるようなことは何もしていないし,元のファームを消すまではきちんと動いていたから,問題ないはずなのだが,一旦,不安になるとどうしようもない。そんな状況でAmazon(日本)をのぞいてみると,HP-30bが3250円で売られていた。
1ドル120円の今となってはアメリカのAmazonより日本のAmazonの方が安く買える。これもアベノミクスの偉大な成果というべきか(残念,今見たら4000円になっていた。アベノミクスもはかないものだ)。ということで,うっかりもう一台新しいのを買ってしまった。

その後,こわれた(?)1台はあきらめて,新しい1台では失敗しないようにとケーブルの信号ラインに過電流防止用の抵抗を入れたり,HP-30bとUSB-シリアルアダプターのVccを結ぶ(=書き換え時にHP-30bの電池を使わない)ようにしたり,少しでも安定するようにとCTSをGNDにつないだりとやらなくてもいい改修をした結果,ケーブルはこんな感じになった。

前回の2枚目の図のままでも大丈夫のはず。特にFTDIのTTL-232R-3V3のようにVccに5Vが供給されるアダプターの場合,この図のようにアダプターのVccとHP30bのVccを直結してはいけない。

前回の2枚目の図のままでも大丈夫のはず。特にFTDIのTTL-232R-3V3のようにVccに5Vが供給されるアダプターの場合,この図のようにアダプターのVccとHP30bのVccを直結してはいけない。

 

抵抗がついただけで,回路らしく見えるのが面白い。

抵抗がついただけで,回路らしく見えるのが面白い。

 

ケーブルの改修が終わったところで,こわれた(?)1台とMacでケーブルの試運転をやってみるが無反応のままだ。やはりこわれていたと安心(おいっ)するが,念のためにWindows7でも試運転しておこうと,MySambaの「Send File」ボタンを押す。
と,いきなりUSB-シリアルアダプターの赤と緑のLEDが点滅を始めた。画面ではプログレスバーが少しずつ伸びて行って,右端まで行ったところでLEDの点滅も止まった。

Win
もしかして,ファームの書き換えが成功したのだろうかと不安にかられながら(おい),Resetボタンを押し,ON/CEボタンを押すとHP-30bの液晶に何やら文字が表示された。試しに

Amort(WP34sのキー割り当てではCPX}
=   (同じく,R/S)

と入力してみると,ストップウオッチになる。もしかして,これはWP34sではないだろうか。
困った。アマゾンの注文はもうどうしようもない。まあ,3250円だからいいか。もう1台WP34sを作ってしまえばいいだけだ。

そして,翌々日。新しいHP-30bが届いた。さて,今度は書き換え成功まで何十回だろうかなどと考えつつMacで作業を開始する。すると1回目からUSB-シリアルアダプターの赤と緑のLEDが点滅を開始した。そして,黒字で作業内容を表示しながらプログレスバーが伸びて行って,「Firmware flashed successfully, You can reset your WP34s」と表示された。この態度(?)の変わり様は何なんだ?

macsuccess
わくわくしながら,リセット,電源ON。しかし,WP34s(になっているはず)の画面には何も現れない。
あ,まだ,クリスタルを取り付けていなかった。急いでクリスタルを実装して電源を入れると,何事もなかったかのように起動した。苦労した1台目とえらい違いだが,もう一度2台のファームを消すところからやり直して何が原因だったのかを実験する気はない。

その後,オーバーレイを貼って2台のWP34sが完成した。

overlay2

失敗を見込んでオーバーレイを2枚買っておいたから助かった…

この写真の翌日,1号機はRPN布教の使命を抱きながら千数百キロの彼方へと旅立っていったのだった…

とりあえず,まとめ

●ファームの書き換えは1回で成功するとは限らない。失敗するときは何回(いや何十回)も失敗が続くが,何かの拍子に成功する。
実は,1号機の書き換え成功から2号機が届くまでの一日,HP Museumのフォーラムを読みふけっていたのだが,同じように何回やっても成功しない人の相談と,それに対する「絶対に壊れていないから大丈夫」との回答がたくさんあった。みんな,同じように苦労しているらしい。さらに何台ものファーム書き換えをやってるらしき人からは,書き換えをいやがるような動きの個体もあるとの書き込みもあった。アナログ的な話だ…。

●ファーム書き換えソフトは定番のMySambaだけでなく,wp34sflashでも大丈夫。Macでも問題なしだ。

 

どうでもいいこと

アメリカのAmazonで買った1号機と日本のAmazonで買った2号機のシリアルナンバーは71番しか違っていなかった。もしかしたら,日本のAmazonの出品者もアメリカAmazonから仕入れているのかもしれない。

広告

WP34sは,RPN(逆ポーランド記法)の電卓だ。RPN電卓というとHP(Hewlett Packard)が有名,というかほとんど唯一のメーカーになっている。しかし,WP34sは型番の「WP」からわかるとおりHP製ではない。と言いたいところだが,HP-30b(あるいはHP20b)というHPの金融電卓にオープンソースで開発されたファームを焼いて科学技術電卓へ変身させたものだ。ちなみに「WP」はプロジェクトの中心人物のPaul DaleさんとWalter Boninさんの名前から来ている。HewlettさんとPackardさんでHPというのと同じようなものである。

WP34sプロジェクトは,けっこう前から始まっているのだが,私が初めて知ったのは3年くらい前だった。そのころはまだ開発途上という感じで,すごいことをやる人がいるものだと感心するだけだったが,最近になって久しぶりにプロジェクトのページを見に行ってみると,いつのまにか開発が進んでファームはバージョン3.3になっている。さらに,Amazonを見てみるとベースになるHP-30bが20ドル! もう,これは買うしかないとポチり,その勢いでキーボードオーバーレイ(キーボードに貼るシール。なにしろキー割付がまったく変わってしまうから,これがないと使えない)とファーム書き換え用のケーブルもオーダーした。

さあ,後は到着を待つばかり。それまでに必要なファイルをダウンロードして,ファーム書き換えの準備をしておこうと思っていると,1時間くらい後にケーブルを配布している人(このケーブルはHPが大量に作ってhpmuseum.orgの人に預け,送料と手数料だけで配布している)からメールが来た。お,金額の連絡かなと思うと,

Sorry, but the cables are all gone. You’ll have to ask on the HP Museum forum site.

だって。いきなり大問題が発生だ。

HPcable

写真はWP34sマニュアルより拝借

言われたとおりにHP Museum forumをのぞいてみると,いっぱい書き込みがあってどこに何があるんだかわからない。いずれにせよ,自作するしかないことは確かだから自分で調べた方が早いだろうと,ダウンロードしたドキュメント類を読み始めることにした。

まず,HPオリジナルのケーブルはこれ(←)だ。
パソコン側のコネクターはRS-232Cだが,最近のパソコンにはRS-232CがないのでUSB-RS-232C変換アダプター経由ということになるだろう。一方,HP-30bに接続する側のコネクターは独自のもので入手困難というか,どこにも売ってないと思う。ケーブル中央部のケースにはRESETとERASEのスイッチがあって,内部の基板の写真を拡大して見るとADM3202が入っていた。こいつはRS-232CとTTLのレベル変換をするICだ。

 

回路図(こんなものまで公開されている)やマニュアルの記述も合わせて検討した結果,ケーブルの構成はこんな感じ(赤の点線内)だろうということになった。ADM3202周辺の回路がはっきりしないけど,普通にRS-232CとTTLのレベル変換をやっているだけだから,普通にデータシート通りの回路を作ればなんとかなるだろう。

cable1

TXとRXがクロスになっているのに注意。

connector0

コネクターのピン配列は左の図の通りなので2mmピッチのユニバーサル基板にpogo pin (スプリングコンタクト,スプリングプローブ)を植えてやればなんとかなりそうだ。一時はWP34s化をあきらめて,そのまま金融電卓HP-30bとして使うしかないかと思ったが,なんとかなりそうで一安心。

落ち着いたところで改めてケーブルの構成を見てみると,RS-232Cの部分が不必要なことに気がついた。これならRS-232Cの部分を除いて,どこの家庭にも1枚くらいはあるはず(うちには5枚あった←バカ)のUSB-シリアル変換アダプターで直接HP-30bとパソコンをつなげばいい。USB-シリアル変換アダプターを使えば,下の図(青線内)のようになって工作も簡単になる。
cable2

ということで,さっそく工作開始。これなら回路がどうのといった上等なものでなく,電線をつなぐだけの小学校の工作みたいなものだから,簡単にできあがった(当然だ)。写真のUSB-シリアルアダプターはスイッチサイエン スのFTDI USBシリアル変換アダプターだけど,SparkFunのFTDI Basic Breakoutでも何でもOK。

boardV1

Eraseスイッチは,ONのままホールドしなければならないので,スライドスイッチにした。

 

そのまま調子に乗ってコネクターの製作も開始。
2.0mmピッチのユニバーサル基板の配線は面倒だなと思っていたら,aitendoでフィルムケーブルから2.0mmと2.54mmピッチへの変換ボードを発見した。メインのフィルムケーブルの部分を捨てて,2.0mmピッチの部分にpogo pinを植え,2.54mmの部分からケーブルを引き出せば簡単だし,トラブル(下手なハンダ付けが原因)も少なくなる。ただ,2.0mmの部分の穴がpogo pinより細いので,アクリル板で作ったスペーサーに通したpogo pinの後ろに細いスズメッキ線をハンダ付けし,それを基板にハンダ付けすることにした。

connector1

フィルムコネクター部分を切り取った基板と,pogo pin(上はスズメッキ線をハンダ付けした物,下は無加工の物),アクリル板で作ったスペーサー。スペーサーの左右の出っ張りの巾が違うのは逆指し防止。

 

組み立てたところ。少しピンが曲がっているけど,このくらいなら大丈夫だろう。

組み立てたところ。少しピンが曲がっているけど,このくらいなら大丈夫だろう。

2.54mmの部分にケーブルを付けて,スペーサーも接着剤で固定。これでコネクターが完成だ。
connector5
長くなったので,とりあえず前編はここまで。
後編をお楽しみに。
ああ,眠い。