Skip to the content
2 layers60 × 40 mmBlinker555, the printed circuit board in 3D

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

Size
60 × 40 mm
Copper layers
2
Thickness
1.6 mm
Parts
6
Nets
6
Pads
18
Tracks, vias
0, 0
Routed
Not yet
KiCad
KiCad 0.1 (file 20260206)
Created
8 Sep 2026
Updated
13 Sep 2026

Overview

Blinker555 is an open-source printed circuit board by kobago, from the kobago/fuide-eda repository on GitHub. It is a 2-layer board of 60 × 40 mm with 6 parts on 6 nets.

It is built around the NE555. Its parts include 3 resistors, 1 capacitor, 1 IC and 1 diode.

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

6
QtyValueFootprintReferences
110ufuide:C_0603C1
11kfuide:R_0805R1
1330fuide:R_0805R3
147kfuide:R_0805R2
1LEDfuide:LED_D5.0mmD1
1NE555fuide:DIP-8_W7.62mmU1

More from kobago/fuide-eda

4
  • 2 layers312 × 146 mmAnsi75, the printed circuit board in 3D

    Ansi75

    kobago/fuide-eda

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

    176 parts
  • 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 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

  • 2 layers297.2 × 180.3 mm8bit computer, the printed circuit board in 3D

    8bit computer

    vascofazza/8bit-cpu

    Schematics & code for my 74LS-based 8-bit MK1 CPU

    377 parts317MIT
  • 2 layers203.2 × 149.9 mm65C02 Computer, the printed circuit board in 3D

    65C02 Computer

    dbuchwald/6502

    DB6502: 65C02 based computer inspired by BE6502

    68 parts177MIT
  • 2 layersLM80C R6, the printed circuit board in 3D

    LM80C R6

    leomil72/LM80C

    A Z80-based homebrew computer withTMS9918, AY-3-8910, Z80 CTC, Z80 PIO, and Z80 SIO

    153 parts123GPL-3.0
  • 2 layers249.9 × 89.4 mmCSCvon8, the printed circuit board in 3D

    CSCvon8

    DoctorWkt/CSCvon8

    A crazy small 8-bit CPU built with only seventeen 7400-series chips.

    55 parts112GPL-3.0
  • 2 layers160.1 × 101 mmPLC-14500, the printed circuit board in 3D

    PLC-14500

    nicolacimmino/PLC-14500

    Retro trainer board based on the MC14500 1-bit ICU. The project is OSHW certified and a ready to assemble kit is available on Tindie.

    173 parts70GPL-3.0
  • 2 layers63 × 46 mmPi485, the printed circuit board in 3D

    Pi485

    bvarner/pi485

    An open-source TTL UART <-> RS485 converter, intended for a Raspberry Pi or Arduino

    31 parts41MIT
  • 2 layers9.9 × 110.1 mmADSR, the printed circuit board in 3D

    ADSR

    kraakenstuff/ADSR

    2HP ADSR module based on "Fastest Envelope in the West" by René Schmitz (https://www.schmitzbits.de/adsr.html)

    44 parts37

Questions

How big is the Blinker555 PCB?

It measures 60 × 40 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Blinker555 use?

6 parts, built around the NE555. 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 Blinker555 KiCad files?

From the kobago/fuide-eda repository on GitHub, at the commit this page was made from: the board is examples/blinker555/blinker555.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 Blinker555 design in my own project?

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