コンテンツにスキップ

このWebサイトは、管理人が個人的に書き留めている備忘録です。それ以上でもそれ以下でもありません。
誤記・誤解・誤謬を含め、記述内容の確度を一切保証しません。責任を負いません。問い合わせ等を受け付けません。
This Mediawiki is a personal memorandum written by Administrator, nothing more, nothing less.
Administrator do NOT guarantee accuracy of content, including any errors, misunderstandings, fallacies, take NO responsibility, do NOT accept inquiries anything of the sort.

WP 34S

提供:Memorandum

2003年にHPが電卓業界に再参入後、2014年まで発売していた金融・財務向けプログラム関数電卓であるHP-20bまたはHP-30bの演算用ソフトウェアを格納している128kB Flash ROMを、HP-16CHP-42Sに実装された関数や機能を統合した数学・科学向けRPNプログラム関数電卓として動くソフトウェアに書き換えるための、オープンソースソフトウェアとその手順を指す。よって、HP-20bまたはHP-30bをこのソフトウェアに書き換えた電卓がWP 34Sと呼ばれることになる。WPは開発者であるWalter BoninとPaul Daleの頭文字から、34はHP-34Cから[1]、SはScientific(科学・数学向け)から、それぞれ来ている。最初のリリースは2011年6月29日だが、現在も開発は継続しており、最新バージョンは2023年6月2日リリースのVer.3.3.3915。211ページに渡る詳細なマニュアルが無料で公開されており、必要であれば製本版購入できる。

同様の同人プロジェクトであるHP-25EHP-41CLは、ソフトウェアはHPが開発したソフトウェアをそのままROMイメージとして吸い出して実装している(場合が多い)が、そもそもの出発点が「元ネタとなる機種のハードウェア(に実装されたチップセット)を交換することで修理・復旧させたりアップグレードさせたりする」ことなので、これら、疾うの昔に販売が終了し入手不可能となった元ネタとなる機種を持っていなければプロジェクトの恩恵に与れない。それに対し本プロジェクトの出発点は「(当時大量に流通していた)まったく別物のハードウェアに、HP-16CHP-42Sで実装された関数や機能を使用できるようにすべく開発者がC言語でゼロから起こしたフルスクラッチのオープンソースソフトウェアをインストールして使用する」ことなので、対象の電卓を購入しさえすれば、誰でも気軽に、新品かつ高性能のRPN関数電卓を手にすることができた。即ち、それまでのHP製RPN電卓に関する同人プロジェクトとは意味合いがまったく異なる、一線を画すべき〝偉業〟である。

尤も、「自分たちが欲する品質と機能を備えた新品のRPN関数電卓が購入できないなら、今あるリソースを有効活用して、自分たちで作っちまえば良い!」というRPN電卓マニアの執念が見え隠れするのは、これら同人プロジェクト共通である。

〝怨嗟〟と〝諦観〟が産み出した、究極の同人プロジェクト

本サイトでは何度か触れているが、2003年のHPの電卓事業再参入は、現在のところ残念な結果となっている。とにかく、製品の品質が悪いのだ。

電卓事業への再参入に際し、HPは、事業の運営方式として、これまでのように企画・開発・製造・販売すべてを自社で直営するのではなく、企画と販売は自社が行うものの開発と製造は台湾や中国の企業に委託するODMを選択した。2001年の撤退時に事業部門をまるごと閉鎖し従業員も全員解雇した以上、再参入するにはODMを選択するしか無く、これ自体は特に問題ではない。寧ろ、コモディティ化して久しい製品の事業運営方式としては適切な選択なのだが、これを選択するには「発注側が、ODM委託企業(OEM先)で製造された製品を常に管理・監督できる」ことが大前提となる。OEM先が製造した製品が、これまで発注側が築いてきた製品の個性や志向、もっと言えばブランドイメージを毀損しないようにするための、発注側の当然の行動だ。管理人がこれまで勤務してきた/現在勤務している企業でも、純日本企業/外資系企業問わず、OEM先との契約では発注側による管理・監督権限が明記され、製造された製品に瑕疵が見つかった場合は、OEM先に非常に厳しい対応が為されているのを何度も目の当たりにしている。裏を返せば、発注側による管理・監督権限が行使できないOEM先とは契約せず、OEM先も通常はこれを受容する。

しかし、現在のHPの電卓事業運営部門は、OEM先を管理・監督できていないようだ。その明確な理由は不明だが、再参入後の製品の出来から「HPにはOEM先を管理・監督する能力が無い」と推測されており、少なくとも管理人を含む古参のHP製RPN電卓ユーザからはそう見做されている。再参入後の2006年7月に発売したHP-50gや2007年7月に発売したHP-35sでは、撤退前のHP製電卓では考えられない初歩的なバグが相次いで見つかり、製品品質の劣化が囁かれていた最中、2011年9月に発売したHP-15C Limited Editionのあまりの出来の悪さが決定打となった。ある操作でバッテリが異常に消耗したり物理キーが無反応になるというソフトウェアのバグは勿論、筐体を軽く振るだけでカタカタ鳴るほどボタンがグラつくというハードウェアの造作の甘さはマニアはもちろん一般ユーザが見過すはずもなく、「あのHPの電卓が…」とショッキングなニュースとして瞬く間に拡散、RPN電卓コミュニティ内には「あのときHPは電卓事業だけじゃなく、製品のアイデンティティも品質管理の手法も全部棄てちまったのか!」と怨嗟の念が渦巻く有様であった。

事程左様に、再参入後のHPは、HP製RPN電卓の特長である「二進化十進数による精確な演算」と「異常に堅牢な造作」を忘却し放棄したとしか思えない製品を市場に投入し続け、物は試しと購入した製品に触れてみるも「パチモン以下のゴミ」「コレジャナイ」と罵声を浴びせざるを得ない出来であることが次々と明らかになり、やがて諦観するに至った。『OEM先を管理・監督できていないことで、OEM先が製造した製品が、これまで発注側が築いてきた製品の個性や志向、ブランドイメージを毀損した』好例だろう。今やかつてのHPを見る影もない。

そんな〝怨嗟〟と〝諦観〟が産み出した、究極の同人プロジェクトが本機である。

なぜ究極と謂われるのか——その実現方法が、いよいよ行き着くところまで行った感満載だからだ。なにしろその方法は、金融・財務向けプログラム関数電卓として出荷・発売された筐体を、HPがROMに書き込んだソフトウェアだけごっそり書き換え、大多数のHP製RPN関数電卓ユーザが望んでいる科学・数学向けRPN関数電卓に化かすという、前代未聞のものである。

即ち、ガワとなるハードウェアには、往年のHP製RPN関数電卓の出来に近いものを流用し、中身のソフトウェアだけ、RPN電卓マニアの間でも高い人気を誇っているHP-16CHP-42Sを合体させたものに書き換えることで、シフトキーが f g h の3段構えな、新品かつ最新の『夢のRPN関数電卓』を安価で広く誰にでも手に入れられるようにしようと試みたのだ。

炸裂するhacker spirits

これは、再参入後のHPが実勢価格20〜30ドルで発売していた金融・財務向けプログラム関数電卓であるHP-20bとその上位機種であるHP-30bではハードウェアの回路図とソフトウェア開発環境が公開されていて、かつ、この2機種に実装されているAtmel製SoCのAT91SAM7L128(CPUアーキテクチャはARM7、クロック周波数は30MHz)[2]が一般ユーザでもプログラミング可能で、ソフトウェアを格納しているROMが外部から書き換え可能のFlash型であったことが大きい。初心者向けだと思われるが、背面にある電池ボックスの蓋を外すと独自規格の6ピンのインタフェースにアクセスでき、あまつさえ、HPは、この独自規格インタフェースとRS-232C(Dsub-9)インタフェースを両端に持つソフトウェア書き換え用のケーブルをも販売していた[3]。つまり、この時点でHPは、AYOR(At your own risk)で無保証とはいえ、HP-20bHP-30bの内蔵Flash ROMに格納されているソフトウェアの書き換えを公式に許していたことになる[4]

これにより、ソフトウェアが格納されているROMを物理的に剥がして取り替えるのではなく、Flash ROMからジャンパ線を引き出してシリアル通信経由で自分のPCから書き換えられることが判り、他のユーザが実行しても失敗する可能性を極力低く抑えつつも、非常に低コストで、(HP-50gの定価である)150ドル以上の価値があろう、可能な限りバグフリーで高機能なRPN関数電卓に化かすことができるとあって、RPN電卓マニアは狂喜乱舞したのだ。

なお、HP-20bHP-30bの差は、筐体は両者ともプラスティック製なものの、後者には前面に金属製のシールプレートが貼付されていることから耐久性にある程度の期待が持てることと、キータッチが後者のほうが優れている[5]こと以外に無い。よって、可能な限りHP-30bが選ばれたのは言うまでもない。

ちなみに管理人は、本機開発の動きに違和感は無い。寧ろ「2,000〜3,000円で買える関数電卓ですら、ハードウェアがこんな作りになる時代になったのか。そりゃハッカー魂が炸裂するわなぁ」と感動すら覚えた。「メーカが発売した(特殊な)ハードウェアに、ユーザが作成したOSやソフトを突っ込んで動かしてみる」というエンジニアの行為は通常の欲求で、その対象がPC[6]やスマートフォン[7]から関数電卓に移っただけと考えたからだ。

オープンソースプロジェクトとして

また、このプロジェクトでは、ソフトウェアであるC言語のソースコードがGNU一般公衆ライセンス バージョン3(GPLv3)でオープンソースソフトウェアとして広く公開されていることも特長である。基本的にソフトウェアのバグは、そのソースコードを読む人間が多ければ多いほど減らすことができる。HP-20bHP-30bが実装しているソフトウェア格納用Flash ROMが128kBと小容量であることを考えると、できるだけROMイメージは小さいほうが良い。バグを潰すにしろ、より適切な実装を模索するにしろ、そのための観察眼や提案を冷静な第三者から募ることができるのがオープンソースの良いところである。尤も、ROM容量としては、HP-16C12kBHP-42S64kBであることは知られており、結構余裕はあるという目算は立つ。HP-16CHP-42Sが選ばれたことは、RPN電卓マニアの間でも如何にRPLが嫌われていたかを示しているようにも思え、実際嫌われていたが、そもそもこのFlash ROM容量ではRPLで実装するのは無理[8]というものだ。本機のプログラミング方法が、悪評高いRPL方式ではなく、HP-41シリーズを範とするキーストローク方式を採用していることからも、RPN電卓マニアの間でのRPLの立ち位置が解る。最新のマニュアルでもプログラミングについて説明する章の冒頭で

Your WP 34S is a keystroke-programmable calculator. If this statement makes you smile with delight, this section is for you.
(WP 34Sはキーストロークでプログラムできる電卓です。この文を読んで満面の笑みを浮かべたなら、この章はあなたのためのものです。)

と嬉しそうに記載している。

そして当然のことだが、RPN電卓マニアが最後発で開発する以上、既存のハードウェアリソースを十二分に生かすソースコードとなっており、下記のベンチマークと蛇足を見て解る通り、これまでのどのHP製RPN関数電卓よりも演算精度が優れていることは指摘せねばなるまい。この演算結果を、再参入後はHP-50gHP-35sという欠陥品(と敢えて言ってしまうが)しか発売できない体たらくとなったHPがどう見たのか、ぜひ知りたいところである。

以前はこのプロジェクト自身がFlash ROMを書き換えて仕立てた本機を通信販売していたが、先述の通りHP-20bHP-30bも2014年に販売終了となったことから通信販売も終了したことと、このプロジェクトが知れ渡ったことでHP-20bHP-30bの流通在庫がアッという間に買い漁られたことから、入手は困難を極める。だが稀にeBayをはじめとするオークションサイトで、これらのデッドストックのFlash ROMを最新のソースコードで書き換えて販売するセラーが居るので、それを狙えば入手できなくはない。概ね100〜150ドル前後で購入できるようだ。

tan355226 [rad]=7497258.19378(εR=1.19×109)

(ln884736744π)2=43.000000000

スタック 3+1段
プロセッサクロック周波数 30MHz (AT91SAM7L128)
使用電池 CR2032×2個
製造期間 2011年〜
製造国 ユーザ次第
2011年のプロジェクト直販時の定価 150ドル (約18,300円)

脚注

  1. マニュアルにはWe named our baby WP 34S in honor of the HP-34C from 1979, one of the most powerful compact LED pocket calculators. WP 34S is our humble approach – within the constraints of HP’s hardware – to a future 43S we can only dream of succeeding the HP-42S at one point. (私たちは、最もパワフルなコンパクトLEDポケット関数電卓の1つである、1979年発売のHP-34Cに敬意を表してWP 34Sと名付けました。WP 34Sは、HPのハードウェアの制約の中で、HP-42Sの後継となる将来の43Sを夢見る私たちの謙虚なアプローチです。)と記載されている。
  2. まったく同じSoCがHP-15C Limited Editionでも使われている。しかし、HP-15C Limited Editionは、Voyagerプロセッサをソフトウェアエミュレーションで実行し、その上でHP-15CのROMイメージを走らせるという、バグを作り込むために選択したとしか思えないアーキテクチャで動いており、HP-20bHP-30bや本機とは本質的に異なる。つまり、HP-15C Limited Editionの出来の悪さは、一義的にはVoyagerプロセッサのソフトウェアエミュレータが原因で、これを含む品質管理をHPが怠ったことに尽きる。勿体無いことをしたものだ。
  3. 現在は販売されていないが、このケーブルが無くともFlash ROMの書き換えは可能。本文に記載した通り、開腹してFlash ROMからジャンパ線を引き出せば良い。
  4. なぜこのような、半ばオープンソースハードウェアのような電卓をHPが販売したのか、その理由は不明だ。ひょっとすると、この時点で既に「HP自身には科学・数学向けRPN関数電卓を開発する能力を喪失しているので、コミュニティ(ユーザ)に開発してもらおう」と考えていたのかもしれない。なにしろ、金融・財務向けプログラム関数電卓であるHP-20bHP-30bには不要なはずの「RPNモード/三角関数で使用する角度の種別(度数法/弧度法)を液晶ディスプレイで表示できる」のだから、そう勘繰られても仕方無い。開発者であるWalter BoninとPaul Daleも「HP-20bHP-30bで、これらを専門に表示できる機能があることが、このソフトウェアを開発する動機となった」と指摘している。
  5. HP-30bは往時のHP製RPN関数電卓に近いキータッチだが、HP-20bはなぜか意図的にキータッチを無くしたため、一般ユーザからですら「押し味が無い!」と酷評される有様であった。
  6. 自宅のPCでWindowsを使わなくなりDebian GNU/Linux (with KDE)へ移行してかれこれ20年以上経過している。以前はKernelのアップデートの度に当たり前のように四苦八苦していた各種ドライバの再インストール作業が、殆どのドライバがKernelに取り込まれたことで、Kernelだけをコマンド一発でアップデートすればドライバの再インストール作業そのものが不要になったこと等、ハッカーの皆様には常々感謝している。
  7. 2005年12月発売の初代W-ZERO3(WS003SH)をスマートフォンとして使い始めると、メーカによるOSのアップグレードサポートが終了した機種にコミュニティが作成したパッチを自分で当てて延命することが日常茶飯事となり、Xperiaシリーズに至っては海外の同好の士が作成したイメージに差し替えて運用していた期間のほうが長かった。2019年頃になるとスマートフォンでもセキュリティが重要視されるようになったため、Android開発元であるGoogleが製造・販売しているPixelシリーズに乗り換え、毎月提供されるセキュリティパッチを当て、毎年提供されるOSのアップグレードに追随している。
  8. HP-28SのROMは128kBなのでRPLで実装しようとすればできたのかもしれないが、HPが保有するであろうRPLに関する著作権を処理するのが面倒だった(若しくはHPが許可しなかった)のだろう。尤も、RPN電卓マニアは本機にRPLを実装することなんぞ要求しないだろうが。