Skip to the content
2 layers312 × 146 mmAnsi75, the printed circuit board in 3D

KiCad 風の基板設計アプリを、fuide (egui 0.36 向けの FUI 部品ライブラリ) の上に作るプロジェクト。今は 試作 (spike) の段階で、「Rust で使えるカーネルの調査」(docs/kernel-research.md) の結論を実際に組んで確かめたもの。

Size
312 × 146 mm
Copper layers
2
Thickness
1.6 mm
Parts
176
Nets
108
Pads
638
Tracks, vias
1,013, 101
Pours
1
Routed
Yes
KiCad
KiCad 0.1 (file 20260206)
Created
8 Sep 2026
Updated
13 Sep 2026

Overview

Ansi75 is an open-source printed circuit board by kobago, from the kobago/fuide-eda repository on GitHub. It is a 2-layer board of 312 × 146 mm with 176 parts on 108 nets, routed with 1,013 tracks and 101 vias.

It is built around the 1N4148W. Its parts include 84 diodes, 77 switches and 1 IC. It belongs with the RP2040 boards of this library.

Main components

1

README

README.md

FUIDE EDA

KiCad 風の基板設計アプリを、fuide (egui 0.36 向けの FUI 部品ライブラリ) の上に作るプロジェクト。今は 試作 (spike) の段階で、「Rust で使えるカーネルの調査」(docs/kernel-research.md) の結論を実際に組んで確かめたもの。

text
crates/fuide-eda-core/   基板カーネル `fuide-eda-core` (GUI 非依存、テスト可)
  units.rs               i64 nm 座標 (KiCad と同じ)、点、矩形、画面座標系の回転
  model.rs               層、ネット、フットプリント / パッド、配線、ビア、ゾーン、図形
  kicad.rs               .kicad_pcb の読み込み (kiutils-rs の型付き AST + 無損失 CST)
  geom.rs                パッド / 配線 / 円弧の輪郭を mm の多角形にする
  fill.rs                ゾーン (銅箔ベタ) の塗りつぶし (i_overlay)
  index.rs               R* 木によるヒットテスト
  tess.rs                表示用の三角形化 (i_triangle)
  gerber.rs / excellon.rs  Gerber X2 (gerber-types) と Excellon ドリル
  dsn.rs                 Specctra DSN 書き出し (Freerouting / topola 用)
  library.rs             内蔵フットプリント (チップ部品、DIP、ピンヘッダ、LED、TO-92、SOT-23、取付穴 …)
  kicad_lib.rs           KiCad 公式ライブラリ (*.pretty の .kicad_mod) の検索と読み込み、3D モデルパスの解決
  step.rs                STEP モデル (kicad-packages3D) を truck で読んで三角形化、STYLED_ITEM から面ごとの色
  edit.rs                新規基板、部品の配置 / 移動 / 反転、ピンへのネット割り当て、外形いっぱいのベタ
  kicad_write.rs         .kicad_pcb の書き出し (KiCad 10 形式、自前の読み込みで往復テスト)
  mesh3d.rs              実物風 3D モデル (基板・銅箔・パッド・シルク・部品本体) を色付きメッシュで生成
  connectivity.rs        銅箔の接続性 (どのパッドが既に繋がっているか) とラッツネスト
  route/                 格子ルーター: 占有格子 (grid.rs)、A* (astar.rs)、手配線と自動配線の共通部 (mod.rs)
  drc.rs                 クリアランス検査 (銅箔同士、基板端)
  symlib.rs              回路図シンボル: 内蔵 (R / C / LED / トランジスタ / スイッチ / コネクタ / NE555 / ProMicro / 電源) と KiCad .kicad_sym の読み込み
  schematic.rs           回路図 (シンボル・配線・ラベル)、KiCad と同じ配置変換、ネットリスト導出、.kicad_sch 入出力、基板への反映 (update_pcb)
apps/eda/                FUIDE EDA — egui アプリ (fuide のシェル・パネル・テーブル・ダイアログ)、app/tools.rs に EDA 専用 MCP ツール、app/sch.rs + schview.rs に回路図ビュー
testdata/                KiCad 公式デモ pic_programmer (2 層、63 部品、370 配線、1 ゾーン)、kicad-lib/ に公式ライブラリの抜粋 (.kicad_mod + .step)
examples/blinker/        MCP 経由でゼロから設計した NE555 LED 点滅基板 (.kicad_pcb と Gerber)

fuide 本体と 3D ビューポート fuide-3d は git 依存 (private なので SSH。Cargo.toml の [workspace.dependencies]、egui の版を揃えること)。隣の checkout ../fuide / ../fuide-3d で直しながら動かすときは Cargo.toml 末尾のコメントの [patch] を外す。

対応する KiCad の版

  • 基板: .kicad_pcb の (footprint …) 形式 (KiCad 6 以降)。動作確認は 8.0 (Raspberry Pi CM5 IO)、9.0、10.0 (testdata)。書き出しは 10 形式 (version 20260206)。
  • 回路図: .kicad_sch (KiCad 6 以降)。動作確認は 8.0 (CM5 IO、階層シート) と 9.0。書き出しは 9 形式 (version 20250114)。
  • KiCad 5 以前 ((module …) の基板、.sch / .lib の回路図) は非対応。3D モデルは STEP のみ (.wrl は読まない)。

起動

sh
cargo run -p fuide-eda                                   # 空で起動、OPEN (Ctrl+O) か PATH (Ctrl+L) で開く
cargo run -p fuide-eda -- testdata/pic_programmer.kicad_pcb
FUIDE_DEV_SAMPLE=1 cargo run -p fuide-eda                # デモ基板を読み込んで起動
cargo run -p fuide-eda-core --example inspect -- testdata/pic_programmer.kicad_pcb /tmp/out   # GUI 無しで読込・塗り・書き出し
cargo test --workspace
  • 左上: LAYERS — 銅箔 / シルク / Fab / Courtyard / Edge の行。左のランプで表示切替、銅箔層は行クリックでアクティブ層 (描画が最前面、ヒットテスト優先)
  • 左下: NETS — ネット名 / パッド数 / 配線数。クリックでそのネットだけを明るく表示 (再クリックか Esc で解除)
  • 中央: ツールバー 2 段 + VIEWPORT — 1 段目 OPEN (OS ダイアログ) / PATH (パス入力) / FIT / FILL、ツール SELECT / ROUTE、右に F.CU / B.CU と BOARD / GERBER ビュー。2 段目 UNDO / REDO、AUTOROUTE、UNROUTE NET (選択中の項目のネット)、UNROUTE ALL (確認ダイアログ)、DRC、GERBER / DSN、KICAD FILL (ファイルに保存されている KiCad のベタと自前のベタを切り替えて比較)。ドラッグでパン、ホイールでズーム、クリックで選択、ダブルクリックでフィット。未接続はラッツネスト (細い線) で表示
  • 3D ビュー (ツールバー右の 3D) — fuide-3d (wgpu) の実物風レンダリング。ソルダーマスクの緑、FR4 の側面、金色のパッドとビア、マスク下の銅箔、白いシルク、部品の本体 (キースイッチ + キーキャップ、DIP、チップ部品、ピンヘッダ、LED、Pico / Pro Micro …)。ISO / TOP / FRONT / RIGHT のプリセット、PARTS で部品の表示切替。ドラッグでオービット、Shift+ドラッグでパン、ホイールでズーム。fuide-3d に「ホログラムではなく自身の色で陰影を付ける」Style::solid を追加して使っている
  • 右上: SELECTED — 選択中のパッド / 配線 / ビア / ゾーン / フットプリントの読み出し行、HIGHLIGHT NET
  • 右中: DRC — 違反の一覧 (種類 / ネット / 層 / 距離)。クリックでその場所へズームして選択、ビューポートには危険色のマーカー
  • 右下: BOARD — 寸法、層数、ネット数、未接続数、配線 / ビア数、直近の自動配線の結果、層ごとのベタ面積 (KiCad の値と並べて表示)、塗り時間
  • 下: EVENT LOG (帯ドラッグで高さ変更、タイトルチップで開閉、設定に保存)
操作キー
新規 / 保存Ctrl+N または NEW (50×40 mm の空の 2 層基板。未保存なら確認)、Ctrl+S または SAVE、Ctrl+Shift+S (パス指定で保存)。読み込んだ .kicad_pcb は無損失で書き戻す (kicad_writeback.rs: kiutils の CST のバイト範囲を使い、変更した部分だけを差し替える。部品の移動・回転は (at …)、ネット変更はパッドの (net …)、配線とビアは全置換、反転した部品はモデルから再生成、削除は行ごと削除、新規部品・ゾーンは追記。3D モデル参照や寸法線、テキストボックスなど、モデルが知らない要素はそのまま残る)
開くCtrl+O または OPEN: OS のファイルダイアログ (rfd。Linux は xdg-desktop-portal、macOS は NSOpenPanel。ワーカースレッドで開き、結果は毎フレームのポーリングで受け取る)。Ctrl+L または PATH: アプリ内のパス入力ダイアログ (~ と相対パス、Tab 補完。MCP エージェントはこちら、OS のダイアログの中は見えない)
ツールS (SELECT) / X (ROUTE)
部品の編集 (SELECT)ドラッグで移動 (0.5 mm グリッドに吸着、Alt で自由)、R で 90° 回転、F で裏面へ反転、Delete で削除。Ctrl+クリックで選択に追加、空いた場所からのドラッグで矩形選択。Shift+ドラッグ / 中・右ボタンでパン
フィットHome またはダブルクリック
手配線ROUTE (X) でパッドをクリックして開始 → カーソルまでの経路が格子ルーターの提案で表示される → クリックで確定 (同じネットのパッドをクリックすると完了)。1 / 2 で層を切り替えるとその場にビアを打つ (入らなければ拒否)。Backspace で配線中の内容を取り消し、Esc / 右クリックで終了
取り消し / やり直しCtrl+Z / Ctrl+Shift+Z (40 段。配線・自動配線・削除・剥がしが 1 段)
選択した配線 / ビアを削除Delete
アクティブ層1 (F.Cu) / 2 (B.Cu)
Gerber ビュー切替G (未書き出しなら書き出してから表示)
KiCad のベタと比較K
選択解除 / ネット強調解除Esc
設定 / 終了Ctrl+, / Ctrl+W

書き出し先は基板ファイルの隣の fuide-fab/ (<name>-F_Cu.gbr、-B_Cu.gbr、-Edge_Cuts.gbr、-PTH.drl、-NPTH.drl、<name>.dsn)。GERBER は書き出した直後にそのファイルを gerber_parser で読み戻し、gerber_viewer (MakerPnP、egui 描画) で表示する — 自分の出力を自分のモデルではなく別実装で見る往復検証。

MCP でゼロから設計する

fuide-eda --mcp (または ~/.config/fuide/eda.sock に直接 JSON-RPC) で、汎用の observe / click / type / key / screenshot に加えて EDA 専用ツールが使える: board (要約: 寸法、部品、ネットとピン、未接続数、DRC)、library、new_board、add_footprint、move_footprint、remove_footprint、connect (ピンをネットへ。即ラッツネスト)、add_zone、autoroute、unroute、fill、drc、select、view、save、export (gerber / dsn)、open。既存ファイルの上書きと UNROUTE ALL などの確認は、設定で許可しない限り人間留保。

define_footprint で任意のフットプリント (パッドの JSON) を定義して置くこともできる。内蔵ライブラリにはキーボード用の SW_MX_1u (Cherry MX、4 mm 中央穴 + 1.75 mm 位置決め穴)、D_SOD-123、ProMicro (2×12 ピン、ピン名は library の説明に)、SW_Push_6mm もある。

examples/ansi75/ は 75% US 配列の 1 枚基板: 84 キー + ダイオード 84 + Pico (define_footprint で定義) + リセット + 取付穴 6 = 176 部品、261 接続。autoroute は 261/261 を 30 秒 (rip-up 9 回)、配線 1013 本 + ビア 101、DRC 0 件。部品の配置は 176 回の add_footprint で 93 秒かかったので、格子の再構築は配線要求時まで遅延させた (以後は数秒)。

examples/corne6/ は 48 部品 (キースイッチ 21 + ダイオード 21 + Pro Micro + リセット + 取付穴 4)、33 ネット、67 接続の片手キーボード: autoroute が 67/67 を 1.3 秒、配線 240 本 + ビア 18、DRC 0 件。

examples/blinker/ はこの経路だけで作った NE555 の LED 点滅基板: new_board 40×30 → add_footprint ×10 → connect ×7 (15 接続) → autoroute (15/15、22 ms、配線 18 本 + ビア 1) → add_zone GND / B.Cu → drc 0 件 → save → export gerber。

撮影フック: FUIDE_SCREENSHOT=/path/shot.tga、FUIDE_DEV_SAMPLE=1、FUIDE_DEV_VIEW=gerber|3d|schematic (+ FUIDE_DEV_PRESET=top|front|right)、FUIDE_DEV_SELECT=U2 (その部品の 1 番パッドを選択)、FUIDE_DEV_NET=GND (ネット強調)、FUIDE_DEV_UNROUTE=1 (全配線を剥がす)、FUIDE_DEV_AUTOROUTE=1 (剥がして自動配線)、FUIDE_DEV_DRC=1、FUIDE_DEV_ROUTE=U2 (その部品から手配線を開始してプレビューを出す)。TGA は python3 -c "from PIL import Image; Image.open('shot.tga').save('shot.png')" で変換。

カーネルの構成と、試作で分かったこと

調査の結論どおり「PCB 用の単一カーネル」は無いので、領域ごとの crate を fuide-eda-core で束ねている:

領域使ったもの試作での結果
座標自前 i64 nm.kicad_pcb の mm 6 桁が丸めなしで往復する。回転は KiCad と同じ「画面上で反時計回りが正」(y 下向き)
KiCad 読込kiutils-rs 0.2 (kiutils_kicad 0.3 + kiutils_sexpr 0.1)層・ネット・フットプリント・パッド・配線・ビアは型付き AST で取れる。ゾーンの輪郭と保存済みベタ、gr_* / fp_* の図形、文字は型付き AST に無いので無損失 CST を自前で辿る。KiCad 10 形式はネット一覧を持たず (net "GND") と名前で参照するため、型付き AST の net: Option<i32> は空になる → 名前からネット表を自分で組む (net_ref)。パッドの角度はファイル上で絶対角、位置はフットプリント基準
ベタ塗りi_overlay 8.1.1輪郭 − (他ネットの銅箔をクリアランス分太らせたもの) − 基板端、のあと min_thickness/2 で縮小→拡大 (開口)。デモ基板 (B.Cu の GND ベタ、29 島) が 81 ms、面積 11781 mm² vs KiCad 10618 mm² (自前はサーマルリリーフ未実装ぶん大きい)。非ゼロ規則で重なりを union するため輪郭の向きを正に揃える必要がある
表示i_triangle 0.48 + egui Painterベタ 22k 三角形をフレームごとに座標変換して Shape::mesh、パッド・配線は凸多角形。60 fps 以上
ヒットテストrstar 0.13locate_in_envelope_intersecting で候補を絞って厳密判定 (パッド > ビア > 配線 > 図形 > ゾーン > フットプリント)
Gerbergerber-types 0.7 → gerber_parser 0.5 → gerber_viewer 0.8ベタは領域 (穴は LPC で抜く)、配線は円形アパーチャ、円 / 軸に沿った矩形・長円パッドはフラッシュ、それ以外は領域。書き戻しで 0 エラー (B.Cu 24864 コマンド、22 アパーチャ)。gerber_viewer の座標系は y 上向きなので translation の計算で合わせる
Excellon自前 (60 行)PTH / NPTH の 2 ファイル、長穴は G85
DSN自前topola の Specctra パーサは 順序に厳格 (boundary は 1 つ、pin は (pin padstack (rotate r) id x y) の順、via に (type) を付けない)。合わせれば読める
自動配線topolacrates.io の topola 0.1.0 (2026-06) には配線を起動する API が無い (Autorouter::new と Router::navmesher_board だけ)。Codeberg の master (v0.6.3、2026-07) には topola-cli と Invoker / Autorouter / SpecctraDesign があり、topola board.dsn -o board.ses で走る。デモ基板 (111 ネット) では完走せず、常駐 27.8 GB でカーネルの OOM killer に殺された (2 回、物理メモリ 31 GB)。当面は候補から外す

配線: 手配線と格子式ルーターのハイブリッド

自動配線ツールの調査 (topola はメモリ暴走、Freerouting は Java) を受けて、Rust だけで完結する配線を自前で持つ。手配線と自動配線は同じ格子ルーター (route/) を使う。

  • 占有格子 (grid.rs): 銅箔層ごとに 0.1 mm ピッチの格子。各セルは「その銅箔 (クリアランス + 配線幅/2 だけ太らせたもの) がどのネットのものか」を持ち、自ネットか空きなら通れる。異なるネットが重なるセルは通行止め。パッド・穴・基板端は固定面、配線・ビアは可動面に分けて持ち、後者は剥がせる
  • A* (astar.rs): (層, x, y) の 8 方向移動 + ビアで層移動。ヒューリスティックは目標の矩形までのオクタイル距離。rip-up モードでは他ネットの配線を有料で通過でき、通った先のネットを報告する
  • 手配線 (Router::propose): アンカーからカーソルのセルまで、いま作業中の層だけで経路を出す。同じネットのパッドの上ではそこへ吸着する。数十 ms 以下なので毎フレームカーソルに追従する
  • 自動配線 (Router::autoroute): ラッツネストの接続を短い順に配線し、失敗分は rip-up モードで通して邪魔なネットを剥がし、剥がしたネットを再配線する (最大 6 周)
  • DRC (drc.rs): rstar で候補を絞り、多角形間の距離で銅箔同士 (異ネット) と基板端のクリアランスを検査する
  • 経路の後処理 (Router::simplify_run): 格子経路は 0° / 45° の階段になるので、見通し線で間引く (前の頂点から直線で届く限り中間点を捨てる、任意角度)。直線は格子の中心を通らないため、格子に描く余裕を半セルぶん (0.05 mm) 足して DRC を満たすようにしている
  • 結果 (デモ基板の配線を全部剥がして自動配線、Linux / Ryzen): 125 接続を 125 とも配線、約 0.9 秒、rip-up 0 回、DRC 違反 0 件、配線 270 本 (元の設計は 370 本)

ゾーン、DRC、ネットクラス

  • サーマルリリーフ: 同じネットのパッドは、パッドを thermal_gap ぶん太らせた輪を障害物にして塗り、幅 thermal_bridge のスポーク 4 本 (パッドの向きで 0° / 90°) は KiCad と同じく 開口の後に 足す (隣のクリアランスに削られて min_thickness より細くなったスポークも残る。0.5 mm ピッチのコネクタの先のベタが繋がる)。同じネットのゾーン同士はクリアランスを取らず合流する。connect_pads の yes / no / thru_hole_only と、パッドごとの zone_connect に従う。KiCad の保存済みベタとの面積比はデモ基板で 1.10。
  • 優先度: (priority N) の高いゾーンから塗り、低いゾーンは高いゾーンの塗り結果をクリアランスぶん避ける。
  • 自動再塗り: 配線・削除・部品移動のたびにゾーンを塗り直す (デモ基板 80 ms)。
  • 接続性: パッド・配線・円弧・ビア・ベタの島を union-find で束ねる。配線の端が触れる相手のほか、パッドを貫く配線、配線の途中に打ったビア、ベタの中のビアと配線端、辺を接して置かれた同ネットのゾーンの島同士も繋がる。ビアは KiCad の (layers F.Cu B.Cu) を両端として間の内層すべてに触れる (Board::via_span。4 層基板でここが抜けていると GND が 39 本未接続に見える)。
  • DRC: 異ネット間クリアランス (ネットクラスの値)、基板端、穴と穴、他ネット銅箔と穴、配線幅、アニュラリング、シルクとパッドの重なり (他部品)、コートヤードの重なり、未接続 (ラッツネスト) の 9 種。一覧の KIND 列はこの略号。長穴は長円として測る (リングは軸ごと)。.kicad_pro の drc_exclusions (種類と位置) に当たる違反は除外し、ログに件数を出す。
  • ネットクラス: 基板と同名の .kicad_pro があれば net_settings.classes (ネット名・netclass_patterns の * ワイルドカード・netclass_assignments) と design_settings.rules を読む。ルーターはネットごとのクラス幅で配線し (格子はいちばん広い幅で余裕を取る)、DRC は 2 ネットのクラスの大きい方のクリアランスで判定する。
  • 45° スナップ: 見通し線で間引いた任意角度の線分を、経路が空いていれば 45° + 直交の 2 本に置き換える (RouteOptions::snap45、既定 on)。
  • 幅広キー: SW_MX_2u / 2.25u / 2.75u / 6.25u / 7u は Cherry の PCB マウントスタビライザ穴付き (片側 3.05 mm と 4.0 mm、間隔 23.876 / 100 / 114.3 mm)。3D ビューのキーキャップ幅も名前から決まる。

KiCad の公式ライブラリと STEP モデル

  • Lib:Name (例 Resistor_SMD:R_0805_2012Metric) や .kicad_mod のパスを add_footprint に渡すと、検索パス上の *.pretty から読み込む (kicad_lib.rs: パッドは kiutils の型付き AST、図形と 3D モデル参照は CST)。検索パスは FUIDE_KICAD_FOOTPRINTS / FUIDE_KICAD_3DMODELS (: 区切り)、KICAD*_FOOTPRINT_DIR / KICAD*_3DMODEL_DIR、/usr/share/kicad、~/.local/share/kicad/<ver>、macOS のアプリ内、そして MCP の library_paths で追加した場所。library に search を渡すと Lib:Name を検索できる。
  • フットプリントの (model …) は ${KICAD*_3DMODEL_DIR} をモデル検索パスに、${KIPRJMOD} を基板のディレクトリに解決し、見つかった STEP を truck で読んで三角形化 する (step.rs)。色は STYLED_ITEM → … → COLOUR_RGB の連鎖を辿って面ごと (無ければソリッドごと) に付ける。KiCad の offset / scale / rotate を適用し、裏面の部品は基板の下に鏡像で置く。モデルが見つからない部品は従来の簡易形状。読み込み結果はパスごとにキャッシュ。
  • examples/libdemo/ は testdata/kicad-lib の抜粋 (DIP-8 と 0805) だけで組んだ基板で、FUIDE_KICAD_FOOTPRINTS=testdata/kicad-lib FUIDE_KICAD_3DMODELS=testdata/kicad-lib cargo run --release -p fuide-eda -- examples/libdemo/libdemo.kicad_pcb で 3D ビューに公式モデルが出る。
  • 制限: 読めるのは STEP の B-rep (平面・円柱・B スプライン面など truck が扱えるもの) で、失敗したシェルは飛ばす。truck が評価できないエッジ曲線 (FreeCAD / Open CASCADE が書く周期 B スプラインの pcurve。ノットが定義域の外まであり端点が NaN になり、truck の分割が深さ 100 まで再帰してメモリを食い潰す) は頂点間の直線に置き換える (testdata/step/periodic_pcurve.step に再現ファイル)。ヘッダが Latin-1 の STEP も読む。WRL は KiCad 9 以降ソースに無いので未対応。回路図側のシンボルライブラリ (.kicad_sym) は「回路図」の項を参照。

回路図とネットリスト

SCH タブ (または .kicad_sch を開く / 基板の隣にある .kicad_sch は基板と一緒に開く) で 1 枚の回路図を扱う。座標は mm・y 下向き、格子 1.27 mm (KiCad の 50 mil)。

  • シンボル (symlib.rs): 内蔵は R C C_Polarized L D LED Q_NPN_BCE Q_PNP_BCE SW_Push SW_MX Conn_01xNN NE555 ProMicro と電源 GND VCC +5V +3V3 +12V VBUS VDD。どれも既定のフットプリント (内蔵ライブラリの id) を持つので、そのまま基板に落とせる。KiCad の .kicad_sym は FUIDE_KICAD_SYMBOLS / KICAD*_SYMBOL_DIR / /usr/share/kicad/symbols などから Lib:Name で読む (extends 解決、単位 1 のみ)。define_symbol で辺ごとにピンを並べた箱シンボルも作れる。
  • 配置変換: KiCad の (at x y angle) + (mirror x|y) を行列 (mirror ∘ rot ∘ y反転) で再現し、R は反時計回り 90°、M は左右反転。testdata の非安定マルチバイブレータ (KiCad 9 で描いたもの) を読むと、13 シンボルのピンが全て配線か他のピンに乗り、導出したネットリストが KiCad が作った基板のパッド割り当てと完全に一致する (テスト netlist_of_the_kicad_sample_matches_its_board)。
  • ネットリスト (Schematic::netlist): ピン・配線・ラベルを union-find で束ねる。配線は端点が他の配線やピンに触れれば接続 (中点の交差は非接続)、同名ラベルは接続、電源シンボルは値の名前のグローバルラベル、非表示の power_in ピンはピン名のネット。ネット名の優先は KiCad と同じくグローバル > ローカル > 階層ラベル > 自動名で、ローカル・階層ラベルのネットはシートのパス付き (/CLK、/Power/VBUS)。自動名は Net-(REF-PINNAME): 名前付きピン (空・~・番号と同じ・同じシンボル内で重複する名前は除く) を優先し、無名なら PadN、マルチユニットはユニット文字 (U1A)、ピン名の / は {slash}。Raspberry Pi CM5 IO 基板 (161 ネット) で基板のネット名・ピンと完全に一致する。1 ピンだけのネットは「未接続」として数え、no_connect 印があれば数えない。
  • 編集: SELECT でドラッグ移動 (格子スナップ、Alt で自由)、WIRE (W) はクリックで L 字に折れる配線を足し、同じ点をもう一度 / ダブルクリック / Enter / Esc で確定、ADD SYMBOL (A) は R R1 10k のような 1 行、LABEL (L) はネット名 (<NAME> でグローバル)。R / M / Delete、Ctrl+Z / Ctrl+Shift+Z は回路図側の取り消し。右の DRC 欄はネットリスト表になり、行を押すとそのネットへ寄る。
  • 基板への反映 (UPDATE PCB / MCP update_pcb): 回路図の部品のうち基板に無い参照はフットプリント (シンボルの Footprint、無ければシンボル既定) を基板外形の下に一列で置き、ある参照は値だけ更新、全パッドにネットリストのネットを割り当てる (remove_extra で回路図に無い部品を消す)。基板が無ければ 60×40 mm を作る。あとは通常どおり move_footprint / autoroute。
  • ファイル: .kicad_sch (KiCad 9、version 20250114) の読み書き。読んだ lib_symbols は原文のまま書き戻し、内蔵シンボルは生成する (symbol_text)。書いたものは自前で再読込して同じネットリストになる (テスト)。KiCad で開けるかは要確認: instances はルートシートの uuid に対して書き、sheet_instances はページ 1 のみ。
  • MCP: schematic (要約とネットリスト)、symbols (検索)、new_schematic、define_symbol、sch_add_symbol (ピン座標を返す)、sch_move_symbol、sch_remove、sch_wire (点列)、sch_connect (REF.PIN 同士を L 字 / Z 字で結ぶ。他のピン・他の配線・シンボル本体を横切らない候補を選ぶ)、sch_label (ピンに短い枝を付けてラベル)、update_pcb、view mode: schematic、open / save は拡張子で回路図と基板を判別。examples/blinker555/ はこの経路で作った例: new_schematic → sch_add_symbol ×9 → sch_connect ×10 → sch_label ×3 → update_pcb (6 部品、5 ネット、17 ピン) → save ×2。
  • 階層シート: read_sch はルートの (sheet …) を辿って子シートのファイルを読み、ルートの右に並べて 1 枚に平坦化する (SHEET <名前> のテキスト付き)。シートピンと子の階層ラベルは名前で繋ぎ、子のシンボルの参照は instances のパス (/<root uuid>/<sheet uuid>) から取る。保存は 1 枚として書く。
  • 制限: バスは読み飛ばして警告、逆注釈 (基板 → 回路図) なし、シンボルの円弧は 3 点円弧を折れ線で近似、テキスト項目は表示のみ、マルチユニットは表示するがユニット 1 のピンのみ内蔵定義に持つ。

未実装 (順不同): ゾーンの島の除去、配線のドラッグ編集 (今は削除して引き直す)、回路図のバス、階層を保ったままの保存、逆注釈。

状態

  • 読込・塗り・表示・書き出し・往復検証・手配線・自動配線・DRC・取り消しはデモ基板で動作確認済み (2026-09-07、Linux / Wayland)。
  • 回路図: KiCad 9 のサンプルの読込とネットリスト一致、MCP での作図と update_pcb、.kicad_sch の書き出しと再読込は確認済み (2026-09-08)。書き出したファイルを KiCad で開く確認は未実施。
  • Raspberry Pi CM5 IO 基板 (KiCad 8、4 層、76 部品、4022 配線、703 ビア、9 ゾーン、階層 4 シート) で確認 (2026-09-13): 読込 37 ms、ベタ 1.3 s (内層 GND の面積は KiCad 比 1.02)、未接続 1 (KiCad の保存済みベタでも孤立しているビア)、DRC は project の除外 28 件を除いて 0、回路図 161 ネットが基板と一致、3D は付属 STEP 9 個のうち 8 個を表示 (Molex のモデルは同梱されていない)。J5 / J16 (FH12) の 3D モデルはファイルの (offset (xyz 16.5 -10.6 -128)) どおり基板の 128 mm 下に出る (KiCad と同じ変換順序: scale → rotate → offset)。
  • topola: DSN は読めるが、デモ基板の配線はメモリ暴走 (27.8 GB) で OOM。詳細は docs/kernel-research.md の追記。試すなら小さな DSN + systemd-run --scope -p MemoryMax=4G。

Parts

176
QtyValueFootprintReferences
841N4148Wfuide:D_SOD-123D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +68
6M3fuide:MountingHole_3.2mmH1, H2, H3, H4, H5, H6
1'fuide:SW_MX_1uSW58
1,fuide:SW_MX_1uSW69
1-fuide:SW_MX_1uSW28
1.fuide:SW_MX_1uSW70
1/fuide:SW_MX_1uSW71
10fuide:SW_MX_1uSW27
11fuide:SW_MX_1uSW18
12fuide:SW_MX_1uSW19
13fuide:SW_MX_1uSW20
14fuide:SW_MX_1uSW21
15fuide:SW_MX_1uSW22
16fuide:SW_MX_1uSW23
17fuide:SW_MX_1uSW24
18fuide:SW_MX_1uSW25
19fuide:SW_MX_1uSW26
1;fuide:SW_MX_1uSW57
1=fuide:SW_MX_1uSW29
1Afuide:SW_MX_1uSW48
1Bfuide:SW_MX_1uSW66
1Backspacefuide:SW_MX_1uSW30
1Cfuide:SW_MX_1uSW64
1Capsfuide:SW_MX_1uSW47
1Dfuide:SW_MX_1uSW50
1Delfuide:SW_MX_1uSW15
1Downfuide:SW_MX_1uSW83
1Efuide:SW_MX_1uSW35
1Endfuide:SW_MX_1uSW31
1Enterfuide:SW_MX_1uSW59
1Escfuide:SW_MX_1uSW1
1Ffuide:SW_MX_1uSW51
1F1fuide:SW_MX_1uSW2
1F10fuide:SW_MX_1uSW11
1F11fuide:SW_MX_1uSW12
1F12fuide:SW_MX_1uSW13
1F2fuide:SW_MX_1uSW3
1F3fuide:SW_MX_1uSW4
1F4fuide:SW_MX_1uSW5
1F5fuide:SW_MX_1uSW6
1F6fuide:SW_MX_1uSW7
1F7fuide:SW_MX_1uSW8
1F8fuide:SW_MX_1uSW9
1F9fuide:SW_MX_1uSW10
1Fnfuide:SW_MX_1uSW74
1Gfuide:SW_MX_1uSW52
1Hfuide:SW_MX_1uSW53
1Homefuide:SW_MX_1uSW16
1Ifuide:SW_MX_1uSW40
1Jfuide:SW_MX_1uSW54
1Kfuide:SW_MX_1uSW55
1Lfuide:SW_MX_1uSW56
1LAltfuide:SW_MX_1uSW77
1LCtrlfuide:SW_MX_1uSW75
1LShiftfuide:SW_MX_1uSW61
1Leftfuide:SW_MX_1uSW82
1Mfuide:SW_MX_1uSW68
1Menufuide:SW_MX_1uSW80
1Nfuide:SW_MX_1uSW67
1Ofuide:SW_MX_1uSW41
1Pfuide:SW_MX_1uSW42
1PgDnfuide:SW_MX_1uSW60
1PgUpfuide:SW_MX_1uSW46
1Picocustom:RPi_PicoU1
1PrtScfuide:SW_MX_1uSW14
1Qfuide:SW_MX_1uSW33
1Rfuide:SW_MX_1uSW36
1RAltfuide:SW_MX_1uSW79
1RCtrlfuide:SW_MX_1uSW81
1RESETfuide:SW_Push_6mmSW99
1RShiftfuide:SW_MX_1uSW72
1Rightfuide:SW_MX_1uSW84
1Sfuide:SW_MX_1uSW49
1Spacefuide:SW_MX_1uSW78
1Tfuide:SW_MX_1uSW37
1Tabfuide:SW_MX_1uSW32
1Ufuide:SW_MX_1uSW39
1Upfuide:SW_MX_1uSW73
1Vfuide:SW_MX_1uSW65
1Wfuide:SW_MX_1uSW34

The 168 most common of 176 parts.

More from kobago/fuide-eda

4
  • 2 layers140 × 104 mmCorne6, the printed circuit board in 3D

    Corne6

    kobago/fuide-eda

    KiCad 風の基板設計アプリを、fuide (egui 0.36 向けの FUI 部品ライブラリ) の上に作るプロジェクト。今は 試作 (spike) の段階で、「Rust で使えるカーネルの調査」(docs/kernel-research.md) の結論を実際に組んで確かめたもの。

    48 parts
  • 2 layers40 × 30 mmBlinker, the printed circuit board in 3D

    Blinker

    kobago/fuide-eda

    KiCad 風の基板設計アプリを、fuide (egui 0.36 向けの FUI 部品ライブラリ) の上に作るプロジェクト。今は 試作 (spike) の段階で、「Rust で使えるカーネルの調査」(docs/kernel-research.md) の結論を実際に組んで確かめたもの。

    10 parts
  • 2 layers60 × 40 mmBlinker555, the printed circuit board in 3D

    Blinker555

    kobago/fuide-eda

    KiCad 風の基板設計アプリを、fuide (egui 0.36 向けの FUI 部品ライブラリ) の上に作るプロジェクト。今は 試作 (spike) の段階で、「Rust で使えるカーネルの調査」(docs/kernel-research.md) の結論を実際に組んで確かめたもの。

    6 parts
  • 2 layers30 × 20 mmLibdemo, the printed circuit board in 3D

    Libdemo

    kobago/fuide-eda

    KiCad 風の基板設計アプリを、fuide (egui 0.36 向けの FUI 部品ライブラリ) の上に作るプロジェクト。今は 試作 (spike) の段階で、「Rust で使えるカーネルの調査」(docs/kernel-research.md) の結論を実際に組んで確かめたもの。

    4 parts

Similar boards

  • 4 layers99 × 53.3 mmPSLab, the printed circuit board in 3D

    PSLab

    fossasia/pslab-hardware

    PSLab Hardware Design and Schematics https://pslab.io

    199 parts1.7kApache-2.0
  • 2 layers208.8 × 396.9 mmFerris, the printed circuit board in 3D

    Ferris

    pierrechevalier83/ferris

    A low profile split keyboard designed to satisfy one single use case elegantly

    145 parts1.3k
  • 2 layers285.5 × 95 mmReviung46 ver1 1, the printed circuit board in 3D

    Reviung46 ver1 1

    gtips/reviung

    The REVIUNG41 is 41-key column staggered keyboard.

    119 parts517MIT
  • 4 layers95.6 × 73.6 mmMathpad, the printed circuit board in 3D

    Mathpad

    Summa-Cogni/Mathpad

    A mathematical keypad for students and professionals

    93 parts243
  • 2 layers141.5 × 83 mmRolio, the printed circuit board in 3D

    Rolio

    MickiusMousius/Rolio46Keyboard

    A split wireless keyboard based on the Corne and Sofle

    110 parts236MIT
  • 6 layers160 × 100 mmAdrmu6layer, the printed circuit board in 3D

    Adrmu6layer

    marcoreps/ADRmu

    ADR1000 10V standard

    240 parts149
  • 2 layers99.1 × 90.7 mmBgkeeb, the printed circuit board in 3D

    Bgkeeb

    sadekbaroudi/bgkeeb

    This is a reversible 100mm x 100mm pcb with support for mx or choc switches (no hotswap), per key led, rotary encoders, and exposes the SDA/SCL/GND/VCC lines in the form of the pimoroni trackball pins (meaning you can…

    108 parts108
  • 2 layers229.8 × 102.6 mmBw2, the printed circuit board in 3D

    Bw2

    hazels-garage/bad-wings

    Bad Wings

    107 parts107CC-BY-SA-4.0

Questions

How big is the Ansi75 PCB?

It measures 312 × 146 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Ansi75 use?

176 parts, built around the 1N4148W. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Ansi75 KiCad files?

From the kobago/fuide-eda repository on GitHub, at the commit this page was made from: the board is examples/ansi75/ansi75.kicad_pcb and its schematic examples/blinker555/blinker555.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Ansi75 design in my own project?

Its repository states no licence, so its author keeps all rights: ask kobago before reusing the design.