access logger

家庭コンピュータ環境の模索 >WP34sという電卓
最終更新: 2012-02-15


WP34sという電卓

HP-20b/30b はHP電卓の金融向け電卓だが、回路図が公開されていて自由にファームを書き換えることができる。そこに科学技術計算向けのファームを書いて楽しもうという話。オープンソースで開発されており、実用的に使える。

hpmuseum.com のフォーラム、sourceforgewiki4hpは必見。日本語の情報源はA2life さんがほとんど唯一。

HP-35Sは現行の RPN scientific だが、ほとんどの人をがっかりさせるのに十分なデキ(バグ、複素数などの機能、表示など)。スタイリッシュで複素数の扱いが自然なHP-15Cの復活が熱望されてので Limited Edition が発売されたが、キー不良やファームのできはこれまたガッカリ(コレジャナイ)。というわけで、今一番アツいのがWP34s。

Walter さんと Pauli さんが始めたからWP、シフトを除いたキーが34個あることや、シフトキーが3つある HP-34c にあやかって34s ということらしい。

機能的には、HP-42s相当の基本科学技術計算、2,8,10,16の基数変換、数学関数や統計関数の追加、Real Time Clockや時間関数、物理定数や単位変換、f(x)=0のSolveとIntegrate(HP-15C like)など。無い物は、数学表記入力、グラフ、CAS(Computer Algebra System)、Equation solver。EQSLVはHP電卓なら欲しいところ。ハードもオリジナルなDN-15CCというのもある。

必要なもの

6pin cable
ファーム書き換え用のケーブル。
回路図は公開されているので自作も可能だが、コンタクトプローブ部の形状もあるし、安いので入手を推奨。Gene さんにメール→PayPalで$10(米国外)送金→2週間ほどで送られてくる。
HP15CLEの書き換え(現行出荷品のファームはひどいバグがたくさん)にも使えるらしい。
USB-Serial 変換ケーブル
今時のPCはシリアルポートなんて付いていないので。フォーラムではFTDI社のチップが使われた物が推奨されているが理由は不明。仮想COMポートが使えればなんでもいいと思うが。
HP-30b
20b でも30b でも電気的には同じなのでどちらでもいいが。30b のほうが、キータッチ、ケース、外観が優れているので。 15Cと比べたら、ずいぶんともっさりとした大きさ、電源は2xCR2032、キーの数は少ない(39→37)、ディスプレイはドットマトリクス付き。バッテリは並列接続なので、電流さえなんとかなれば1個でも?通常計算では大丈夫だがプログラムを走らせると電圧降下がきつい。
オーバーレイ
機能にあったキー表示にするためのシール。実用的に使うには必須だが、遊ぶには不要。
Ericさんが作ったのはhpcalcで配布されている。
Crystal
HP-20/30b には 32.768kHzの水晶は実装されておらず、時間関係のファンクションで誤差を生じる。32.768kHzの水晶とコンデンサ(18pF 1608 を2個)を入手して空きランドに実装する。

ファームの書き込み方法

ファームのダウンロード

開発成果物は、http://sourceforge.net/projects/wp34s/からダウンロードできる。あるていどまとまったものはZipで置いてあるが、基本は SVN を使う。http://wp34s.svn.sourceforge.net/viewvc/wp34s/trunk/realbuild/から、calc_xtal_full.bin か calc_full.bin(クリスタルを実装していない場合)をダウンロードしてくる。

書き込みツールのダウンロード

http://sourceforge.net/projects/wp34s/files/FlashTool/から MySamBa.zip をダウンロードして展開。すると、MySamba.exe が出てくる。

接続

HP-20b == フラッシュケーブル == USBシリアルケーブル == PC と接続する。PCには自動で FT232 のドライバがインストールされるはず。

消去

  1. ケーブルを接続する。
  2. ケーブルの ERASE を押す(5まで押しっぱなし)
  3. ケーブルの RESET を押して離す。
  4. 本体の ON/CE を押して離す。
  5. ケーブルの ERASE を離す。
  6. ケーブルの RESET を押して離す。
  7. 本体の ON/CE を押して離す。

この時点で本体は消去されている。失敗したと思っても、ファームは死んでいても、ブートローダの SAM-BA システムは生きている。本体はレンガになっていても、ケーブルやフラッシュライタには反応するはずである。

書き込む

  1. ケーブルを接続する。
  2. MySamba.exe を起動する。
  3. 仮想COMポートを選択する。
  4. ファームのファイルを を選択する。
  5. Send File を押す。進捗が表示されていれば成功。
  6. ケーブルの RESET を押す。
  7. 本体の ON/CE を押す。
  8. 本体の ON/CE を押しながら PMT を押し、PMT を離し ON/CE を離す。

これで書き込みか完了。

オーバレイを貼る

これで完成。

クリスタルの増設

クリスタルを増設すると、時計代わりに使う時に実用的な精度が得られる。

  1. 材料を購入。上の Crystal のところで書いてあるもの。
  2. 電池蓋を開けて、ネジを3本外す。ゴム足の端をめくって、ねじを2本外す。
  3. 側面に3箇所、上下に2箇所のパッチンがあるので、ヘラで外す。
  4. 基板の右上部に、クリスタルとコンデンサ2個を実装する。
基板写真

取り付けたクリスタルを有効にするには、2つの方法がある。

  1. calc_full.bin を使った場合→電源を入れ、ON キーを押しながら、C キーを 2回、押して離す。
  2. calc_xtal_full.bin を使った場合→何もせずにクリスタルが有効になっている。配布されている calc_xtal_full.bin は、クリスタルが起動時に有効になっているだけでなく、ストップウォッチも有効になっている。

情報

回路図
AT91SAM7L128(2KB(backuo)+4KB RAM、128KB PROG Flash) Development Kit ということで、回路図、ファームのソース、エミュレータが公開されている。プロジェクトを走らせるためには、VC++、IARが必要みたいだ。ソースを比べて見ればわかるが、WP34sはHP20bのソースは使わずにフルスクラッチで書かれている。
ファームウエア
基本に忠実で読み易い。バッテリ動作機器のファームウエアの教科書としても適している。たとえば、デバッグモードの入り方、メモリマップの作り方、キー入力処理の方法、電源スイッチとパワーセーブなど。 ブートアップやファーム書き換えには、内部にあるSAM-BAというブートプログラムを使っている。ここの部分は書き換えられないので、レンガ化リスクは小さい。 Cからコンパイルされる部分とアセンブラで書かれたXROMの部分が結合されている。
開発環境
プロジェクトが想定しているのは Windows XP上。コンパイラは AVR向けのGCCだし、アセンブラは perl だし、書き込みツールは wine で動くし、FTDIのシリアルドライバはLinux版もある。Eclipse でデバッガが動けば言うこと無いが、シリアル接続ではなくJTAG接続が必要?エミュレータはROMイメージ内蔵なので開発用ではない感じ。
シリアル通信
UART線は、6pinパッドにつながっているが、トランジスタとレベル変換ICを実装すると、6pinパッドがRS232C互換のシリアルポートになる。PCとの接続や電卓同士の接続してプログラムをのやりとりに使える。というか、本来はそういう目的でケーブルまで用意したが、途中でHPのやる気が無くなった? 内部には汎用I/OやADC入力のランドまである。ポケコン的制御コントローラになるか。
Assembler/Disassembler
perl ベースのツール。Windows 向け.exe もある。ユーザ関数の作成に使えるほか、コンパイル結果は、基本ファームとともに焼き込める。組み込みの solve や integrate などはこのアセンブラで実装されてXROM領域におかれている。
HP-15C
こっちもファーム書き換えできるんちゃう? まだだれも手を付けてないみたいだから、一番乗りのチャンス。 外見的にHP15Cの人気は根強いのでビジネス的にもなんとかなりそう。機能的にはHP15CLEのほうがキーは多いがドットマトリクス2段ディスプレイがないのはビハインド。 KINOMIというのもあるぐらいだし、HP15Cの人気は不滅。DM-15CCは、第一ロットは即完売で入手しそこねた。
大きさ的にも、HP-15Cのほうが長さが短く薄い。

[簡易マニュアル] [How to develop] [E24マクロの作り方] [コレクション]



近藤靖浩
Last modified: Sun Feb 26 11:02:32 JST 2012