開発中正式リリース前です。機能とデータは予告なく変わることがあります。

8 段階検証 — AI は提案し、決定論的検証器が判定する

3 重ゲート(ロジック・電気・実機)を決して混ぜない理由と、P1 スキーマから P8 シミュレーション回帰まで各段階が何を防ぐのかを説明します。

8 分で読める更新 2026年9月8日

シミュレーション通過 ≠ 量産の安全。ブレッドボードが初心者を裏切ってきた方法がまさにこれです — 一種類の成功を全体の成功と誤解させること。そのため ibouPCB は検証を 3 つのゲートに分け、決して混ぜて表示しません。

3 重検証ゲート

ゲート検証するもの検証できないものツール
① ロジック検証コードが意図どおりに動くか電気的な安全性のすべてシミュレーター(L0)
② 電気検証焼損させないか実際のノイズ・EMIERC + DRC エンジン
③ 実機検証本当に動作するかユーザー自身
  • ①② が両方とも緑でなければダウンロードボタンは開きません。
  • ③ は決して自動で緑になりません。ボードを受け取って直接確認したあとにユーザーがチェックします。
  • シミュレーターで捉えられないものを常に明示します: 電源ノイズ、グラウンドバウンス、EMI、センサーのタイミングばらつき、部品公差。

AI は提案のみ、判定は決定論的に

回路拡張には 2 つの提案ソースがあります。1 つはルールとカタログのリファレンス回路からネットリストを作る決定論的拡張器、もう 1 つは JSON スキーマを強制した AI 提案器(N=3 サンプル)です。どちらが作ったものであれ、以下の検証器をすべて通過しなければ採用されません。検証器のコードに AI はありません — すべて決定論的なコードです。

  • AI はカタログ外の部品を作れません。提案はカタログ ID でのみ部品を指定し、存在しない ID は即座に拒否されます。
  • いずれかの段階で error が出れば採用しません。警告はユーザーに表示したうえで進行します。
  • AI キーがない場合や合意に失敗した場合は、常に決定論的拡張器にフォールバックします。
  • すべての判定は根拠を残します。ゴールデンパターンごとに出典(Arduino 公式回路図、Espressif ハードウェア設計ガイドなど)が記録されています。

8 段階(P1–P8)

段階検査防ぐもの
P1 スキーマ部品・ネット・ピンの構造が形式に合っているか壊れた提案
P2 カタログ接地すべての部品 ID とピン名がカタログに実在するかAI のハルシネーション(存在しない部品・ピン)
P3 ゴールデンパターンMCU・レギュレーター・インターフェースごとの必須サポート回路があるかEN プルアップの欠落、デカップリングの欠落のような「静かな」失敗
P4 ERC ルール電圧ドメイン、I²C アドレス衝突、プルアップ、電流バジェット、フライバック、ブートストラップピン…初心者が実際に焼損させるもの
P5 ピン契約.ino の論理ピンがすべて 1:1 でマッピングされ、PWM・割り込み・ADC の能力が合っているかコードと異なるボード
P6 合意(AI 専用)N サンプルの正規化されたネットトポロジーを比較し、過半数の一致がなければ破棄偶然通過した提案
P7 KiCad DRC基板生成 → Freerouting 配線 → kicad-cli pcb drc製造不可能な基板(クリアランス・配線幅・ドリル)
P8 シミュレーション回帰変換前 / 後のシミュレーション記録をピン契約で照合「基板は正しいがコードが違う動きをする」ケース

P1–P6 は KiCad なしで実行され、数秒で終わります。P7 は KiCad 9 コンテナで別プロセスとして動作し(GPL ツールはリンクもバンドルもしません)、P8 はブラウザシミュレーターとサーバーが共同で実行します。

ゴールデンパターン — 実際のオープンソース回路から読み取った事実

P3 のデータは人が考え出したルールではなく、公開回路図から読み取ったパターンです。

対象パターン出典
ESP32-WROOM-32EN 10 kΩ プルアップ + 0.1 µF、3V3 に 10 µF + 0.1 µF デカップリングEspressif Hardware Design Guidelines、Adafruit HUZZAH32、Olimex ESP32 4 種
ATmega328P16 MHz 水晶 + 22 pF × 2、RESET 10 kΩ プルアップ、VCC / AVCC 100 nFArduino Uno Rev3 公式回路図
AMS1117-3.3入力 10 µF、出力 10 µF(+100 nF)データシート推奨回路
リレーコイルNPN ドライバ + ベース抵抗 + フライバックダイオードArduino リレーモジュール回路
I²C バスSDA / SCL プルアップ(2.2 k–10 k)をちょうど 1 セットNXP I²C 仕様
DS18B20DQ 4.7 kΩ プルアップMaxim データシート

パターンは実際のボードと照合しながら修正されます。たとえば Olimex の ESP32 ボード 4 種をインポートしたところ、EN プルアップと 3V3 バルクコンデンサは手書きのパターンと一致しましたが、IO0 の外部プルアップは 4 ボードすべてにありませんでした(ボタン + 内部プルアップ)。そのため IO0 プルアップの深刻度は error ではなく warning に調整されました。検証器はこのように根拠があるときにだけ変わります。

P4 ERC ルール — 実際に焼損させるもの

  • 電圧ドメインの不一致 — 3.3 V GPIO ↔ 5 V センサーの直結 → レベルシフター / 分圧器を自動挿入
  • GPIO 電流の超過 — ピン単位・ポート合計・チップ全体 → ドライバトランジスタを提案
  • I²C アドレス衝突 — 同じバスに同一アドレスが 2 つ(例: 0x68 MPU6050 + DS3231) → アドレス変更可能なモジュールを提案
  • I²C プルアップの欠落 / 重複 — バスごとのプルアップ合計 → 自動計算・挿入
  • 電源バジェットの超過 — レギュレーター定格 vs 負荷合計 → 上位のレギュレーターを提案
  • 誘導性負荷の保護欠落 — リレー・モーター・ソレノイド → フライバックダイオードを挿入
  • デカップリングの欠落 — IC 電源ピンごとに 0.1 µF → 自動挿入
  • PWM / 割り込み非対応ピンの使用、ピンの重複割り当て → 再割り当てを提案
  • ブートストラップピンの誤用 — ESP32 GPIO0 / 2 / 12 / 15 → 警告 + 再割り当て
  • 逆電圧保護・ESD 保護なし → ダイオード / P-MOSFET、TVS を提案

結果はこのように表示されます

✅ P1 スキーマ                  通過
✅ P2 カタログ接地            通過(部品 14 個すべてカタログに実在)
✅ P3 ゴールデンパターン      通過 — ESP32-WROOM-32 EN プルアップ・デカップリング(Espressif HDG §2.1)
⚠️ P4 ERC                    警告 1 — HC-SR04 ECHO 5V→3.3V: 分圧器を自動挿入済み
✅ P5 ピン契約                通過 — 5/5 論理ピンをマッピング、PWM 要求 2 個を充足
✅ P6 合意                    3/3 サンプルのトポロジーが一致
✅ P7 KiCad DRC              0 件(unconnected 0)
✅ P8 シミュレーション回帰    6 ピン比較一致

どの検査が、どの根拠で、何を直したのかをすべて表示します。教育製品だからです。そしてこのすべての緑の下には、常に「⚠️ 実機検証 未完了」が残っています。