Show HN: Atopile - コードで回路基板を設計する
(news.ycombinator.com)- atopileは、電子回路をコードで記述するためのオープンソースの言語・ツールチェーンで、PCB設計の要件表現、設計の再利用、成果物の生成をソフトウェア開発のように扱おうとしている
- 出発点は、ハードウェア設計がアセンブリだけでソフトウェアを作ることのように感じられたという問題意識であり、GitHub式の自動ビルド・テスト・マージの流れを回路設計にも適用しようという試みである
- 独自言語 ato は、回路をモジュール、コンポーネント、インターフェースに分けて入れ子化・接続できるようにし、RP2040・LED・3.3V LDO・USB-Cコネクタを組み合わせた Blinky モジュールの例がある
- コンパイラは回路接続を表す netlist を作成し、汎用部品を選定する。今後はレイアウト再利用、値同士の数学的関係、Rust trait に似た回路定義を強化していく方針
- 現在の対象は低〜中程度の複雑さの PCB設計 であり、チップ設計向けではない。コアは Apache 2.0 として公開し、エンタープライズ機能の販売で収益化を計画している
ハードウェア設計をコードのワークフローへ移す試み
- atopile は、電子回路を コードで説明 するためのオープンソースの言語とツールチェーンである
- 速い流れは クイックデモ で見られる
- コンパイラは GitHub リポジトリ で公開されており、ドキュメントは getting started で確認できる
- ESP32 モジュールの設計過程をより詳しく扱った資料は deep dive 動画 として提供されている
- 創業者たちは前職で電子回路基板を自分で描いて出力しなければならず、ソフトウェアエンジニアの友人の GitHub ベースの自動化ワークフローを見て、同じ方法をハードウェアにも適用できるかを考えるようになった
ato 言語とコンパイル結果
- ato 言語は、回路をモジュール、コンポーネント、インターフェースに分解し、これらのブロックを入れ子にしたり相互接続したりできるようにする
- RP2040 の例では、次の要素を取り込んで
BlinkyモジュールにまとめているRP2040KitLEDIndicatorBlueLDOReg3V3USBCConn- USB-C 電源 → 電圧レギュレータ入力 → マイクロコントローラ電源 → GPIO13 と LED 入力を接続
- LED の抵抗値は
100ohm +/- 10%と指定する
- コンパイラは回路接続を説明する netlist を作成し、汎用部品の選定も行う
- 関連する説明は cloud components 記事 で扱われている
現在の範囲と開発の方向性
- 次の開発の焦点は、レイアウトの再利用、値同士の数学的関係、Rust の trait に似た方式で回路を定義する機能である
- 現在の atopile は、低〜中程度の複雑さを持つあらゆる種類の プリント回路基板(PCB) 設計を対象としている
- コンパイラが扱える回路の複雑さは段階的に高めていく計画である
- チップ設計用ではなく PCB 専用の言語である
- atopile のコアは Apache 2.0 でオープンソース化されている
- 収益化は GitLab に近い形で、エンタープライズ向け機能を販売する方式を計画している
1件のコメント
Hacker Newsの意見
回路をコードで表現することへの意見
電子部品ツールへの意見
モジュール共有への意見
PCB設計への新しいアプローチに対する意見
Verilog使用の提案
EDAプログラムと機械CADの違いへの意見
netclassesを提供しているが、より効率的なツールが必要である。コードのインポート構文への意見
import Y from Xは、自動補完ツールを使えるようにimport X.Yまたはfrom X import Yのような方式に変更されるべきである。BFH - Health Without Borders
ホームオートメーション作業への熱意