GOROman / nes-rom-reader — hardware v0.1

Famicom ROM Dumper 組み立て図解

ファミコンカセット吸い出し基板を、はんだ付け初心者が「どこに・何を・どの向きで」付けるかだけを追えば完成できるように組み直した実装手順書です。基板マップは公式の実装座標(PickAndPlace.csv)から起こしています。

所要 1〜2 時間 部品 18 点(必須 8 点) 難所 SOIC IC の向き / Stamp 嵩上げ
最初に読む:v0.1 基板の既知の不具合

M5Stamp S3 の取り付け穴が実物と合わずそのまま挿さりません。ピンヘッダで嵩上げして配線します(手順 6)。作業前に把握しておいてください。
ソース: docs/assembly.md

00

基板マップ — どこに何が付くか

部品面(表)を、スロット J1 が上・USB-C ノッチが下になる向きで見た図。単位は mm。
MH1MH2MH3MH4 Famicom ROM Dumper v0.1 Powered by Claude Code ▼ FRONT ▼ J1 U1 M5Stamp S3 USB-C ↓
IC 本体 パッド / スルーホール 白丸 = ピン1(IC の向き) 選択中 図中の部品をクリックすると詳細が出ます
付ける順番は「背の低い順」

抵抗 → コンデンサ → ヒューズ → IC → M5Stamp → 60 ピンスロット。低い部品から付けると基板が机に安定して置け、大きな部品が作業のじゃまになりません。この手順書もその順に並んでいます。

01

工具と部品を机に並べる

始める前に全部そろっているか確認。特に「フラックス」「吸い取り線」は必須。

工具

  • 温調はんだごて(280〜320 ℃、細い C 型 / D 型こて先)
  • はんだ φ0.6 mm ヤニ入り。鉛入り Sn60/Pb40 が溶けやすく初心者向け
  • フラックス(ペースト or ペン)— IC の成功率が段違いに上がる
  • はんだ吸い取り線 — ブリッジ修正に必須
  • ピンセット(先細)
  • テスター(導通ブザー付き)
  • あると楽: ルーペ / 基板固定具 / こて先クリーナー / フラックス洗浄剤 / UEW 線 0.16 mm(嵩上げ配線用)

部品表(BOM)

Ref部品見分け方
R110 kΩ 06031印字 1002任意
R220 kΩ 06031印字 2002任意
C1–C8100 nF 06038印字なし・薄い色任意
C910 µF 06031印字なし。C1–C8 と混ぜない任意
F1ポリヒューズ 500 mA 18121大きめ黄緑の角チップ任意
U2–U574HCT595 SOIC-16416 ピン、「595」の刻印必須
U6, U774LVC245 SOIC-20220 ピン幅広、「LVC245」必須
U874HCT541 SOIC-20120 ピン幅広、「HCT541」任意*
U1M5Stamp S31オレンジの筐体必須
ピンヘッダ(嵩上げ用)適宜2.54 mm / 1.27 mm どちらでも可必須
J1FC 60 ピンスロット12 列 × 30 ピン必須

*U8 が無くてもジャンパ線で代用できます(手順 5 の末尾)。「任意」の部品は無くても吸い出しは動きます。パーツがそろっているなら全部付けるのが一番楽です。

注意: U6/U7 と U8 は同じ SOIC-20 で見た目がそっくり

刻印を確認して、袋やテープごとに「245」「541」とメモしてから作業を始めてください。取り違えると動きません。

02

チップ抵抗 R1 / R2 を付ける

基板の右下、U7 の下。ミラーリング自動判定用の分圧抵抗。向きなし。

いちばん小さい部品(1.6 × 0.8 mm)です。ここで「チップ部品の付け方」を身につけると C1–C9 も同じ手順で付けられます。

Ref印字位置
R110 kΩ1002右下、上側
R220 kΩ2002右下、R1 のすぐ下
コツ

こて先には「ほんの少し」だけはんだを付ける。多いと部品が立ち上がる(墓石現象)。片側を固定した後、ピンセットで押さえながら再溶融すると平らに座ります。

① 片側のパッドに予備はんだ ② 部品を置き、溶かして固定 ピンセットで押さえる ③ 反対側をはんだ付け ④ 最初の側を再溶融して整える ✓ 両端に富士山型のフィレット ✗ 墓石(片側が浮く) → 片側を再溶融して押さえ直す
チップ部品(抵抗・コンデンサ・ヒューズ共通)の付け方。②で位置と向きを直せるので慌てない。
03

チップコンデンサ C1–C9 を付ける

パスコン。手順 2 と同じ付け方。向きなし。印字が無いので 100 nF と 10 µF を絶対に混ぜない。
Ref場所(基板マップ参照)
C1100 nFU2 と U3 の間
C2100 nFU3 と U4 の間
C3100 nFU4 と U5 の間
C4100 nFU5 と U6 の間
C5100 nFU6 の右横(基板右端)
C6100 nFU7 の左横
C7100 nFU8 の右横
C8100 nF左下、F1 の上
C910 µF左下、C8 の右下・F1 の右上
作業のしかた

袋から出す前に 100 nF(8 個)と 10 µF(1 個)を別の小皿に分ける。まず 100 nF を C1→C8 の順に 8 個付け、最後に 10 µF を C9 に付けると混ざりません。

時間がなければ

C1–C9 は無くても読み出しは動きます。ただし付けた方が動作が安定するので、パーツがあるなら付けることを推奨します。

04

ポリヒューズ F1 を付ける

左下、C8 の下。5V ラインの過電流保護。向きなし。

1812 サイズ(4.5 × 3.2 mm)で抵抗より大きいので付けやすいです。手順 2 と同じ「片側予備はんだ → 置いて固定 → 反対側」で付けます。熱容量が大きいので、こて先を 2〜3 秒当ててはんだを流します。

F1 が手元に無い場合

F1 の 2 つのパッド間を短い線(抵抗の足など)でつないで短絡すれば動きます。保護が無くなるだけです。

05

ロジック IC U2–U8 を付ける(向きが最重要)

7 個すべて SOIC。1 番ピンの位置は全部「左下」で統一されている。
Ref部品位置役割
U274HCT595SOIC-16上段 左から 1 番目CPU アドレス A0–A7
U374HCT595SOIC-16上段 2 番目CPU アドレス A8–A14
U474HCT595SOIC-16上段 3 番目PPU アドレス A0–A7
U574HCT595SOIC-16上段 4 番目PPU アドレス A8–A13, /A13
U674LVC245SOIC-20上段 右端CPU データバッファ(PRG)
U774LVC245SOIC-20右中段、U6 の下PPU データバッファ(CHR)
U874HCT541SOIC-20左中段制御線 3.3V→5V バッファ
基板のシルク(フットプリント) ● = 1 番ピン(左下) IC 本体 74HCT595 くぼみ(●)or 端の切り欠きが 1 番ピン側 刻印の文字が読める向きだと ● は左下 ⚠ ● と ● を合わせる。逆向きに付けると動作せず、外すのはかなり大変。 U2〜U8 の 7 個すべて、この基板では 1 番ピンが「左下」を向きます。

SOIC の付け方(ドラッグはんだ)

① 対角 2 ピンだけ仮止め ずれていたら片側を溶かして直す ここで向きを再確認! ② フラックスをたっぷり塗る ピン列全体に、ケチらず塗る ③ こて先を列に沿って「すーっ」 こて先に少量のはんだ。1 列 3〜4 秒 はんだは足りなければ足す、多いと橋になる ④ ブリッジは吸い取り線で フラックスを足して吸い取り線を当てる ほぼ確実に直せるので慌てない
U2–U8 共通。IC 7 個 × 2 列 = 14 回この作業を繰り返します。最初の 1〜2 個で慣れます。
仕上げチェック(各 IC ごと)

ルーペで ①隣同士がつながっていない ②ピンが全部パッドに乗っている ③1 番ピンの向き — を見る。ピンとパッドの間で導通ブザーを鳴らすとより確実。

U8(74HCT541)が無い場合 → ジャンパ線で代用する

U8 は制御信号のレベル変換バッファですが、無くても読み出しは動きます。U8 のパッド上で「入力→出力」のピン同士を 8 本、斜めに直結します。

上段(左から 20,19,…,11) 下段(左から 1,2,…,10)
下段 2 ↔ 上段 18、3 ↔ 17 … 9 ↔ 11。8 本が平行に斜めに渡る形が正解。線は UEW(ポリウレタン線)が最適 — 被覆を剥かずにこての熱で付く。
下段上段
218
317
416
515
614
713
812
911

ピン 1・10・19・20 には何もつなぎません。配線後、2↔18 などをテスターで導通確認し、隣同士がショートしていないことも見ておく。

06

M5Stamp S3 を嵩上げして付ける

v0.1 基板の要注意ポイント。フットプリントが合わないので、ピンヘッダで浮かせて配線で合わせる。
なぜ嵩上げが必要か

基板側の穴の配置・サイズが Stamp の実物と合っていません(設計上の不具合、v0.2 で修正予定)。そこで基板の穴列にピンヘッダを立て、その上に Stamp を載せて、各ピンを短い線でつなぎます。

基板が期待するピン並び(上から見た図・J1 が上) M5Stamp S3 USB-C ↓ ノッチ側 左列 17 ピン 右列 11 ピン
基板の穴列と Stamp のピンを、この名前どおりに対応させて配線する。USB-C コネクタが基板下辺のノッチ側(外側)を向く。

手順

  1. 基板の Stamp 用の穴列(左 17 / 右 11)にピンヘッダを差し、表側から はんだ付け。まず両端の 1 本ずつ付けて垂直を確認してから残りを付ける。
  2. Stamp を USB-C が下向きになるようにヘッダの上に載せ、ずれないよう仮固定(両面テープ or 数本先に配線)。
  3. Stamp の各パッドと、対応するヘッダピンを UEW 線(または細い線)で 1 本ずつつなぐ。左列を上から G1, G2 … の順に、次に右列。1 本付けるごとに表でチェック。
  4. すべて配線後、テスターで数本(例: Stamp の G4 ↔ 基板の G4 穴、GND ↔ MH のメッキ部)の導通を確認。
使うピンだけでも動く

最低限必要なのは 5V, 3V3, GND, G1–G15, G39, G41, G42, G46G0, G40, G43, G44, EN は v0.1 では未使用ですが、迷ったら全部つないでおくのが無難です。

信号GPIO役割
MD0–MD7G4–G11データバス(入力)
SR_DATA / CLK / LATCHG12 / G13 / G14595 シフトレジスタ制御
OE_PRG_N / OE_CHR_NG15 / G39U6 / U7 の出力許可
/ROMSEL, M2G41, G42CPU 側制御
R/W, PPU /RD, PPU /WRG1, G2, G3制御線
CIRAM A10G46ミラーリング判定(入力)
07

FC 60 ピンスロット J1 を付ける

いちばん大きい部品なので最後。基板上辺、▼ FRONT のシルク側。スルーホール実装。
  1. コネクタを基板表側から差し込む。ピン 1(角パッド)は左下。カセットの挿入口が基板の上辺を向く。
  2. 基板を裏返し、両端の 2 ピンだけはんだ付け。
  3. 表から見て、コネクタが基板に密着して傾いていないか確認。傾いていたら片側を溶かしながら押し付けて直す。
  4. 残りの 58 ピンをはんだ付け。5〜10 ピンごとにフラックスを塗り直すとスムーズ。
  5. ルーペで裏面の 60 箇所にブリッジがないか確認。
スルーホールのコツ

こて先をパッドとピンの両方に当てて 1 秒温め、はんだを供給、こてを離す。合計 2〜3 秒。はんだが穴に吸い込まれて裏側まで富士山型になれば OK。

カセット挿入口(基板上辺・外側) まず両端 2 ピン → 密着確認 → 残り 58 ピン ピン 1 = 左下の角パッド。前列 1–30、後列 31–60。
08

通電前チェック — USB を挿す前に必ず

テスターを「導通(ブザー)モード」にして測る。ここを飛ばすと IC や Stamp を壊す可能性がある。
  • 5V ↔ GND が導通しない(ブザーが鳴らない)
    測る場所: Stamp の 5V ヘッダピン ↔ MH1 のメッキ穴(GND)
  • 3V3 ↔ GND が導通しない
    測る場所: Stamp の 3V3 ヘッダピン ↔ MH1
  • 5V ↔ 3V3 が導通しない
  • U2–U8 の 1 番ピンが全部左下(ルーペで再確認)
  • U6/U7 = 245、U8 = 541 の刻印になっている
  • J1 裏面 60 箇所にブリッジなし
  • Stamp の USB-C がノッチ側(下)を向いている
ブザーが鳴ったら通電しない

いちばん怪しいのは IC の電源ピン付近のはんだブリッジ(595 は 8-GND / 16-VCC、245・541 は 10-GND / 20-VCC)。次に J1 の隣接ピン、Stamp の配線。フラックス + 吸い取り線で直してから再測定。

テスターの使い方

ダイヤルを「•)))」(導通)に合わせ、赤黒の棒を 2 点に当てる。ピーと鳴る = つながっている。電源とGND の間で鳴ったらショートです。※10 µF(C9)があると一瞬だけ鳴ることがある。鳴り続けなければ OK。

09

ファームウェア書き込みとテスト

まずカセット無しでセルフテスト、次に実カセットで CRC の再現性を見る。

A. 書き込み

Stamp を USB-C ケーブル(データ通信対応のもの)で PC につなぎ、リポジトリの firmware/ で:

cd firmware
pio run -t upload

成功すると Stamp の LED がに点灯します。

LED意味
待機中(正常)
吸い出し中
赤点滅エラー(不正コマンド / セルフテスト失敗)

B. セルフテスト(カセット不要)

  1. Chrome で goroman.github.io/nes-rom-reader/web/ を開く
  2. 接続 → シリアルポートを選択
  3. ⚙ セルフテスト(T) → 各ピンが約 1 秒ずつ検査され SELFTEST PASS が出れば OK

セルフテストは ESP32 側の配線を見るもので、スロットまでの配線は確認しません。

C. 実カセットで吸い出す

  1. USB を抜いた状態でカセットを奥までしっかり挿す
  2. USB 接続 → Web UI で接続
  3. NROM なら PRG 32 / CHR 8 を指定して吸い出し、.nes を保存
  4. PRG-CRC / CHR-CRC を控えて、同じカセットで 2〜3 回吸い出す
CRC が毎回同じなら完成 🎮

吸い出した .nes をエミュレータ(Mesen など)で起動できれば完璧です。

10

うまくいかないとき

PRG と CHR は経路が別なので、症状から疑う場所を絞れる。
症状疑う場所やること
Stamp が PC に認識されないUSB ケーブル / Stamp の配線充電専用ケーブルでないか確認。5V・GND・G43/G44 は不要だが USB は Stamp 直なので嵩上げ配線は関係なし。LED が点かないなら 5V/GND ショートを再確認
PRG の CRC が毎回変わるカセット接点 → /ROMSEL(G41 → U8 → J1 ピン 44)→ CPU データ(J1 36–43 → U6)カセットを数回抜き差し(接点復活剤があればなお良い)。直らなければ U6・U8 のピンを再溶融
CHR だけ不安定PPU /RD(J1 ピン 17)、PPU データ(J1 26–29, 57–60 → U7)U7 のピンを再溶融、J1 該当ピンの導通確認
PRG も CHR も全部ダメ電源、U8(またはジャンパ)、シフトレジスタ U2–U55V が J1 ピン 30/31 に来ているか。U2→U3→U4→U5 の向き、各 IC のピンブリッジ
ミラーリングが ?R1/R2 未実装、接触不良、4 画面カセット吸い出し自体は可能なので無視して OK
LED が赤点滅不正コマンド / セルフテスト失敗Web UI のログで失敗したピンを確認 → そのピンの Stamp 配線・IC を見る

J1 ピン早見表(切り分け用)

ピン信号ピン信号ピン信号ピン信号
1GND16GND31+5V46(未接続)
2–13CPU A11…A017PPU /RD32M247PPU /WR
14CPU R/W18CIRAM A1033–35CPU A12–A1448(未接続)
15(未接続)19–25PPU A6…A036–43CPU D7…D049PPU /A13
26–29PPU D0–D330+5V44/ROMSEL50–56PPU A7–A13
45(未接続)57–60PPU D7…D4