Forth Deck mini: ディスクリートCPUを搭載した携帯型Forthコンピュータ
(mynor.org)- Forth Deck miniは、My4THボードにキーボード・ディスプレイ・バッテリーを加えたハウジング版で、小型の独立したForth開発環境を機器内に構成している
- 中核は8ビットのディスクリートCMOSロジックCPUで、8〜14MHzクロックと32KB ROM・32KB RAM・最大256KB EEPROMを備える
- 入力と出力は40×4文字LCDと56キーQWERTYキーボードが担い、6.6WhのLiPoバッテリーで充電なしに6時間動作する
- 拡張にはRS-232 4800ボーとI2Cバスを使用し、キーボードPCBはLCD駆動とキーマトリクスのために限られたI/Oピンを節約して使えるよう設計されている
- Budgetronicsのキーボードキットだけでは完成せず、Forth Deckを作るには別途My4TH computer boardと選択部品の構成が必要となる
My4THボードを携帯型Forth機器にした構成
- Forth Deck miniは、My4TH computer boardにキーボードとディスプレイを追加し、ケースに収めたバージョンである
- 内蔵の充電式バッテリーのおかげで、電源コンセントなしで使用できる
- 機器自体でForthプログラムを作成してデバッグできるため、シリアルターミナルやPCは不要
- 使用感は1970〜80年代のホームコンピュータに内蔵されたBasicインタプリタに似ている
ハードウェア仕様
-
画面と入力
- 40×4文字LCD
- 56キーQWERTYキーボード
-
電源とサイズ
- 6.6Wh LiPoバッテリー
- 充電なしで6時間動作
- サイズ 198×118×35mm
-
CPUとメモリ
- 8ビットのディスクリートCMOSロジックCPU
- 8〜14MHzのクロック周波数
- 32KB ROM、32KB RAM、最大256KB EEPROM
- 74シリーズCMOSロジックチップ17個とトランジスタ3個
-
入出力とシステム
- RS-232、4800ボー
- 拡張用I2Cバス
- 16ビット Forth 2012システム
キーボードPCBと製作キット
- キーボードとディスプレイはリボンケーブルでMy4TH boardに接続される
- キーボードPCBにはLCD、56個のプッシュボタン、USB type B miniコネクタ、Qwiicソケット、74HC574などが含まれる
- バッテリー充電回路はオプションである
- 全体の部品一覧はForth Deck construction manualで確認できる
- 製作に必要な資料はdownloadから入手できる
- BudgetronicsでForth Deckキーボードキットを購入できる
- コスト削減のため、バッテリーと充電回路は含まれていない
- 一部のオプションコネクタも省かれている
- 2枚のボードを重ねてケースなしのデスクトップ版を作れるよう、スペーサーのセットは含まれている
- Forth Deckを完成させるにはMy4TH computer boardが別途必要である
限られたI/OピンでLCDを駆動する方法
- LCDは、My4TH I/Oコネクタのピンを節約するため4ビットモードで動作する
- My4TH I/Oコネクタには未使用のデジタル出力が5本しかなく、大型LCDはチップセレクト入力が2本あるため、必要な出力より2本不足する
- 不足するデジタル出力は74HC574 octal D-type bus latchで補う
- このICは、4ビット幅・深さ2のシフトレジスタのように配線されている
- 結果としてデジタル出力を8本追加で確保する
- 74HC574にデータをクロックで送り込む際には、I2CバスのSCLラインを使用する
- SCL信号で74HC574をクロックしても、バス上のデバイスは有効なI2C start conditionを認識しない
- LCDへの意図しないレジスタ書き込みが起きないよう、ディスプレイはMy4THデジタルI/OポートのOUT3選択信号を使用する
- R3/D6、R4/D8の抵抗・ダイオードANDゲートがLCDのchip selectをマスクする
- C2とC3は、74HC574ピントグルとD6、D8の寄生容量によって生じるglitchをフィルタする
56キーキーボードとハードウェアリセット
- キーボードは合計56キーで構成される
- キー間隔は12mmのため、より大きく快適なキーを使うのは難しい
- 装置をできるだけ小さくしようとしたが、ディスプレイのため最小幅は190mmになった
- 12mm間隔では1列に14キー入るため、4列構成で合計56キーになる
- キー入力はMy4TH I/Oポートコネクタの未使用入力ピン6本をすべて使って読み取る
- デジタル出力9本との組み合わせで6×9=54キーのマトリクスを読む
- 残り2キーは特殊キーであるshiftキーとresetキーである
- ハードウェアリセットはshiftキーを押したままResetキーを押して実行する
バッテリー回路、ソフトウェア、PCB分離
- LiPoバッテリーがシステム電源として使われる
- 充電回路は安価なUSBモバイルバッテリーで広く使われるTP5400チップベースである
- 小さなSMD部品のはんだ付けが難しければ、組み立て済みのTP5400モジュールを使用し、fly wireでキーボードPCBに接続できる
- キーボードPCBサポートソフトウェアはMy4TH ROM 1.0から統合されている
- キーボード拡張ボードをMy4THコンピュータボードに接続すると、My4THがキーボードとLCDを自動検出する
- PCBはキーボードとディスプレイを分離できるよう、半分に切れるよう準備されている
- ディスプレイをキーボードとは異なる角度で取り付けられる
- 自作のより使いやすいキーボードを使用できる
例とライセンス
- 統合Forthテキストエディタの例がある
- ゲームの例として2048を入手できる
- クロスアセンブラmycaはGNU General Public License, Version 3ライセンスを使用する
1件のコメント
Hacker News のコメント
このコンピュータの CPU はマイクロコード方式で、少数のディスクリート論理チップと EEPROM で作られている。
データ/アドレスバスは 8 ビットだが、NOR ユニットは 1 ビットしか処理しないため、8 ビット加算を行うにはマイクロコードがループを回る必要がある。
D1〜D7 ビットにアクセスするにはハードウェアシフタが必要だろうと思って回路図を見たが、実際には存在せず、EEPROM のルックアップテーブルでシフトを処理している。
見事な CPU 設計に興味があるなら、Novix NC4000 や RTX2000 も見る価値がある。命令のビットがチップ内部の複数のマルチプレクサやユニットをほぼ直接制御しており、デコードがほとんどない。
十代のころ、Forth とディスクリート部品 CPUに夢中になっていた。よく探せば、ディスクリート部品で作った自作 CPU の古いウェブリングも見つかるはず。
その執着が今の職業であるデジタルハードウェア設計者につながったので、こういう記事が HN の上位に上がってくると本当にうれしい。
こういう最適化されたディスクリート部品 CPUの話を読むのが好きだ。
論理 IC はわずか 16 個で、加算器すらない。ALU 機能は 1 ビット NOR ゲート 1 個だけ。
詳細はこちら: http://mynor.org/my4th.htm
最近、趣味用のTRS-80 Model 100のようなものを作るうえで何が障害になるのか気になる。
40x8 LCD、史上最高クラスのキーボードの一つで、カスタムキーボードのコミュニティなら欲しいキーボードはほぼ何でも作れそうに見える。
Model 100 ではキーボードがスペースの大半を占めていたが、同時に実用に耐えるものでもあった。重要なのは、40x8 の画面が十分に大きく読みやすかったことだ。小さな 640x480 画面を載せたデッキは、特に年を取った目には読みにくい。
Psion 5 はキーボードもかなり使えたし、画面も M100 より良かったが、あのようなキーボードを趣味の製作者が作れるのかは分からない。分解して再利用することもできるだろうが、人によっては冒涜に感じるかもしれない。
最近見かけるボタンマトリクス付きの「デッキ」は、本物のキーボードとは言いがたい。PET 2001 がすでにそれを示していたと思う。昔 PET でかなりコーディングしていた。
市場性のある製品である必要はないのに、「本物」で「良い」ものがなぜ出てこないのか気になる。お金の問題だと言うには、人々が趣味に使う金額を見ると、それだけではないように思える。
ピクセル密度がかなり上がっているので、大きな画面は高解像度になり、それを駆動するにははるかに高速な装置が必要になる。そこまで行くと、ディスプレイコントローラが実際のコンピュータよりずっと強力になってしまい、少し滑稽に感じる。
自分がぶつかった障害はそれだった。十分可能ではあるが、意図していたものよりもぎこちなくなる。
選択肢を制限する理由はないし、好きなキーボードを買って使えばいい。望むキーボードを使うことを妨げるものは何もなく、それこそが進歩の姿だと思う。
My4th Light ボードを 5 枚作ってみた。興味があればプロフィール経由で連絡してほしい。
人が集まるなら、Forth Deck miniもひとまとめ作ってみるつもりだ。
Forth のデモ動画を短く作る予定はあるが、まだ手を付けられていない。
要するに、プログラミング用の AlphaSmart に近い方向性に見える
AlphaSmartを知らないなら、小さなLCDが付いたタイプライターのような機器だった。バッテリーで何時間も動作し、保存容量は限られていて、大きなコンピューターに接続して下書きを保存できた
そのプログラミング版はどこにあるのだろう? 最近HNでMac 128kをRPI2040上で動かした記事を見て、そう思った。理論上はそういうシステムでも実作業は可能だが、娯楽用としてはあまり向かないだろう
低消費電力コンピューティング版のAlphaSmartには、本物のキーボード、低消費電力ディスプレイ、できればもっと大きな電子ペーパー画面、そしてインターネット非接続が必要だ
TI-83、TI-92、最近のNumWorksのような電卓を指しているわけではない。そうしたものは電卓用で、電卓のようなフォームファクターなので使いにくい
https://en.wikipedia.org/wiki/AlphaSmart
https://news.ycombinator.com/item?id=40699684
https://axio.ms/projects/2024/06/16/MicroMac.html
https://en.wikipedia.org/wiki/TI-83_series
https://en.wikipedia.org/wiki/TI-92_series
https://www.numworks.com/
そうすればバッテリーなしで太陽光だけで動作し、大容量ストレージには低い使用率で並列NANDフラッシュを使えばよい
私は初期試作段階以上には進められず、zorzpadの設計ノートは大半がスペイン語で http://canonical.org/~kragen/sw/zorzpad.git/ にある。za3k vanceはそこから着想を得たzorchpadを作っている: https://blog.za3k.com/tag/zorchpad/
zorzpadの主目的は 寿命53年 の長期利用だ。この目標のためには、バッテリー、充電ポート、市販のキースイッチは使うべきではないと考えている。そのためシステム設計には妥協が多くなり、1ミリワット未満で動作しつつMMUを備えたプロセッサーはまだ見つけられていない
“zorzpad”は“thinkpad”をもじった言葉で、一部のスペイン語方言では“thorthpad”のように発音されるため、thinkpadの反対語のような冗談になっている
電子ペーパーディスプレイは消費電力が大きすぎる可能性が高いと思っている。ここ数年、確かな消費電力の数値を探していたが、Amazon Kindleのバッテリー寿命とバッテリー容量を割ってみると、およそ100ミリワット程度と推定される
zorzpadの電子ペーパー代替画面はサイズが10分の1ほどで、電力は1000分の1、つまり約100マイクロワットで、データシート上の保証は20Hzだけだが60Hz更新も可能だ
バッテリー排除にこだわらない、あるいは量産を考えないなら、文字どおりAlphaSmart Neoを買ってキーボードとディスプレイをESP32のようなものに接続してもよい
ROMにBASIC、ワープロ、スプレッドシートがあり、ピクセル単位でアドレス指定可能な画面と、サイズのわりに優れたキーボードがある。RS-232と300bpsモデムもある
最近のClockwork-PIはその雰囲気を思い起こさせるが、キーボードは玩具のようで、結局はさまざまな気を散らすものが入ったLinuxノートPCにすぎない
Model 100は90年代まで、記者たちが持ち歩いて記事を書き、サービスビューローへアップロードするのに使っていた
私にとって重要な機能はMacキーボードとショートカットで、そのおかげで使っている間は何も考えずに済んだ
https://www.dannysalzman.com/2024/06/20/modding-alphasmart-n...
内蔵 Forthインタープリター を備えたコンピューターの先例としてはJupiter Aceがある: https://en.wikipedia.org/wiki/Jupiter_Ace
そしてSun、PowerPC Mac、One Laptop per Childなどで使われたOpen FirmwareもForthを活用していた。拡張カードのROMにも使われ、CPUへの依存を減らすことができた: https://en.wikipedia.org/wiki/Open_Firmware
小型コンピューターには興味があるけれど、Forth やはんだ付けにはあまり惹かれないなら、30ドルでかなり使えそうな ESP32 ボックスを買える: https://shop.m5stack.com/products/m5stack-cardputer-kit-w-m5...
それでも週末に自分がエミュレーションした Amiga よりずっと強力だし、Amiga には完全な GUI デスクトップ、コンパイラ、各種ツールがあった
初期状態で何ができるのかが気になる
追記: どうでもよくなって、そのまま注文した。届けば分かるだろうけど、それまで何を期待すればいいのかはまだ気になる
Meshtastic でよく使われているデバイス
うーん… Collapse OS の Forth もある: http://collapseos.org/forth.html
Oric-1 を思い出した
https://en.m.wikipedia.org/w/index.php?title=Oric_(computer)...