6502tinymachines

リグが固まり、ブリッジが正しく読めた

ベンチでの三日間。終わりには、v1b のブリッジが無改造の NES-001 へバイトを 渡し、コンソールはその一つ残らずを書いたとおりに読み返していた。何を組み、 何を実測し、途中で何が間違っていて、次に何をするか。

成り立っていること

  • ブリッジ、つながって正しい。 B0 の最初のゲートが成り立つ: コンソール は毎秒 60.06 回ポーリングし、ブリッジはどのポーリングでもクロックを 8 回 数える (約 1,200 ポーリングの走行を三本、他の数は一度も無い)。ブリッジの 595 に置いたバイトは、試した 15 バイトのすべてで、コンソールの D0 線に 自分のビット位置のまま戻ってくる (docs/procedures/2026-09-13-breadboard-qa.md、"The walk reads right")。 これは、6 本の灰色の Q 線が 595 の出力を 165 の入力へ、図面が言うとおりに 対応づけていることの証明だ。
  • トリガ。 ブリッジの TRIG n はラッチ n で 874 us の 5.4 V のパルスを 上げ、CH1 でスコープを止める (立ち上げの手順 6.1)。同じ捕捉に、映像の フィールドとパッドのバイトが一つの時間軸で写る。
  • リグ (カメラの架台一式)。 BRIO を金属の枠に、水平を取り、ガファー テープとベルクロで留めた。台板の全体が画角に入り、穴一つが縦横とも 11.1 px、その上にベンチライト。下のレールには横目のカメラが二つ。どの カメラの役目も、取り付けも、縮尺も docs/rig.md にあり、ベンチ自身の 写真もそこにある。穴の地図はズームしたフレームから自分を読み取り (tools/board-overlay.py --read --zoomed)、組み上がった現物の写真は、 すべての検査と部品位置を名指しした上でそのフレームの上に描かれる。
  • 図面パッケージはその日 rev M (2026-09-28 までに rev P、23 ページ)、13 葉。現物どおりの配線の葉はピン 55 本が 済み、5 本が確認待ち (J2 のリードの順序)。早見表には、スコープのチャンネル と、各プローブの着地点が基板の列として載っている。

計画が間違えていたと実測が示したこと

  • DS1054Z に外部トリガ入力は無い。 設計は背面の EXT TRIG へトリガを 送っていたが、その端子は存在しない (背面の BNC は Trig Out だ)。トリガは、 マスタクロックのために取ってあるチャンネル CH1 を、順番で使う。
  • ブリッジは、クロックを間違ったポーリングに記録していた。 ループが ラッチのカウンタとクロックのカウンタを別々に読んでいた。三層の修正 (ラッチの割り込みの中で計数を写し取る、立ち上がりをハードウェアの カウンタに数えさせる、二つを一息で読む) を経て、ようやくどのポーリングも 8 と読めた。firmware/build-uno.sh は手元の Arduino コアでスケッチを ビルドし、書き込んだ hex を再現する。
  • 押されたビットが一つだけのとき、レジスタが一回多くシフトした。 D0 自身の立ち下がりが、UNO には短すぎて数えられず、チップには十分に長い スパイク (およそ 50 ns、1 us/div で見えた) を通して 165 を再クロックして いた。クロックピンの 1 k と 100 pF、そしてチップの 100 nF がそれを閉じた。 証拠はあのビット送りの検査 (the walk) だ。
  • グラウンドバウンスという読みは間違いだった。正しい読みの横に記録として 残してある: フィルタだけで足りた。

ここで分かった、目にできることとできないこと

目は、剥き出しの端が穴に入っているのが見える線については決着をつける。 そして、Dupont のハウジングの位置、画角の端近くで持ち上がった端、同じ色の 二本のどちらがどちらか、については何も決着させない。それらはメーターか、 横目のカメラか、計器の仕事だ。部品位置の注記が二つ、地図から導く代わりに 地図に対して打ち込まれていて、その一つはコンデンサを D0 ピンに置いてしまった。 部品位置の注記は今では、書くものではなく道具が生成するものだ。

次

  1. リセットと電源。ベンチが自分でコンソールを既知の状態へ戻せるように する (立ち上げの第 5 回、手順 6.2 と 6.3): リセットのパッドに PC817、 アダプタの片方のリードにリレー、どちらも Pi のヘッダから駆動する。これが 成り立つまでは、新しいコンソールが要る走行にはいちいち手が要る。2026-09-17 に 完了: リセットボタンに OK1、電源スイッチに K1、tools/bench-check.py が ワークステーションから二度緑。
  2. ブリッジを通したパッド (手順 4.2 と 5.2): 手に持ったパッド、パッドの バイトに見える三つのボタン、それからゲームに見えるボタン。これは J2 の リードの順序、図面に残る最後の確認も決める。2026-09-18 に完了: 手で遊んだ一回を ブリッジ越しに記録し、ラッチごとに再生した (bench-v1b-uno.md、exercise.md の E2)。
  3. B1、最初の記録: MODE PASS、ゲーム一本、ブリッジのログとトリガした 捕捉。トレース計画の窓の検査が必要としているのはこれだ。2026-09-18 に完了: E2 を 捕捉付きで二度遊んだ (exercise.md)。
  4. 較正カートリッジの部品側 (open-items.md)、チップが届いたら (SST39SF040、2026-09-21 に発注)。

ビルド時に nes-bench/docs/milestone-2026-09-15-rig-and-bridge.md から取り込まれる。写しはリポジトリの一つだけだ。報告は独自の作業用の言葉をいくつか使う: 報告書で使われる言葉。