世界を動かす技術を、日本語で。

Easyduino: KiCad用オープンソースPCB開発ボード

概要

  • Easyduino は、オープンソースのPCB開発ボード設計リポジトリ
  • KiCad を用いて主要なマイコンボードの設計を統一
  • USB-C 対応や4層基板など最新の設計手法を採用
  • 各ボードごとに違い・制約を readme で明記
  • CERN OHLv2 の下で自由に利用・商用化が可能

Easyduino: オープンソースPCB開発ボード設計リポジトリ

  • Easyduinoプロジェクト は、ArduinoやESP32、Raspberry Pi Pico、STM32 Bluepillなど人気開発ボードのPCB設計を統一管理
  • KiCad (無料・オープンソースEDA)を使い、PCB設計のベストプラクティスを取り入れた設計方針
  • USB-C 対応など現代的なインターフェースを追加
  • 世界中で異なるEDA(Eagle、Altium、KiCad等)・規格・部品を用いていたボード設計の統一を目指す
  • 例:Arduino UNOは2010年イタリアでEagle設計、ESP32は2016年中国でAltium設計、Raspberry Pi Picoは2021年英国でKiCad/Altium設計

対応開発ボード一覧

  • Easyduino UNO

  • Easyduino Nano

  • Easyduino ESP32

  • Easyduino ESP32 S3

  • Easyduino Pi Pico

  • Easyduino Bluepill STM32F103

    • オリジナル設計を忠実に再現した外形・ピン配置・部品構成
    • 一部、部品入手性や製造コストの制約で代替部品を採用
    • 各ボードごとの相違点は各プロジェクトの readme ファイルで解説

設計・製造上の特徴

  • 4層基板 (JLC04161H-7628スタックアップ)で配線簡略化
  • 製造元JLCPCBの制約に沿った設計ガイドライン
  • 一部の極小部品(例:Raspberry Pi Picoの01005)は製造コストの都合で非対応
  • オリジナルArduino UNOのUSB-シリアル変換IC(Atmega16u2)は入手困難なため代替品を使用

プロジェクト構成

  • KiCad設計ファイル (.kicad_pro, .kicad_sch等)
  • readme :プロジェクト固有の注意点・差分を記載
  • xxx.pretty / xxxlibraries :非標準フットプリントや回路記号ライブラリ
  • Outputs :KiCad Jobset出力(Gerber, STEP, PDF, ERC, BOM, CPL等)
  • ProductionFiles
    • BOM (部品表・Centroidファイル)
    • Datasheets (主要部品のみ)
    • Gerbers (製造用データ一式)
    • PDFs (回路図・PCB図面)
    • Photos (製造基板写真・レンダリング画像)

Easyduinoプロジェクトの利用方法

  • 最新版 KiCad のインストール
  • GitHubページ右上の「 Code」→「Download ZIP」でダウンロード&展開
    • もしくは git clone でリポジトリ複製
  • 任意プロジェクト内の xxx.kicad_pro をダブルクリックでKiCad起動
  • 本プロジェクトはKiCad v8.0.0で開発、v10まで動作確認済み
    • Jobset 機能でGerberやBOM生成を簡素化
    • KiCad v10のGit機能はプロジェクト単位で非対応のため、変更時は全体をgit add
  • 回路図やGerberのみ参照したい場合は、各プロジェクトの ProductionFiles フォルダ内のPDF・Gerberを利用

コントリビューション・開発協力

  • 誤りを発見した場合は issue を立てるか、 fork & merge で修正提案
  • 新規開発ボード追加時は、回路図のスタイル・表記・フォルダ構成を既存にならうこと
    • 正電圧は上向き、テキストの可読性、リファレンスページ、類似フォルダ構成

今後の予定(To Do)

  • RP2040 v1.1基板 の注文・テスト(v1.0はFlashピン誤接続で起動不可)
  • ESP32S3 v1.1基板 の注文・テスト(v1.0はRST/SUSPENDのPullUp/PullDown未実装)
  • nRF52840 DongleRP2350A の設計開始
  • その他実装可能なマイコン/SOCの調査

謝辞・ライセンス

  • winsrrow 氏によるKiCadノウハウ提供・RP2040 v1.1設計への貢献
  • CERN Open Hardware Licence Version 2 - Permissive の下で配布
    • ソース公開義務なし、商用利用可
    • 利用時はCERN OHLv2ライセンス文書の同梱が必要

Hackerたちの意見

わぁ、こんな「PCBデザインシステム」をずっと欲しかったんだ。既存の動作するボードをちょっと改造するだけでも、めっちゃ難しいと思ってたから。

一番最悪なのは、フルボードと回路図があるのに、他のEDAプログラム用のものだった時。EagleCADのゴミをKiCADにインポートするのは、苦痛で終わりのない退屈さだよ。無料でオープンソースのデザインがあることには感謝してるけど(特にAdafruitのことを言ってるんだけど、彼らはEagleCADしか使ってないから)、ほんと、なんで一回くらい簡単にできないんだろう :(

これはいいプロジェクトだね!絶対自分のプロジェクトに活用するよ!

すごいね。

これはPCBデザインを「フォーク」して、自分の回路図やPCBデザインのベース/テンプレートとして使うつもりなの?それとも別の意図があるの?

こういうボードに依存している小さな会社が、ファブや調達のパイプラインを整えていれば、自分たちで簡単に調達できると思う。Gerberファイル(ほとんどの製造業者が必要とする製造出力フォーマット)を生成して、大きな注文の一部として送ればいいだけだしね。特に、すでに大量に持っている小さな受動部品を置き換えられれば、コスト削減の手段になるかもしれない。あくまで推測だけど。私の場合、特定のサブ回路がどう設計されているか知りたい時に役立つと思う。初心者でも、KiCadに取り込んでトラックとビアだけを選択して全部削除してから、ボードをフルで再レイアウトする練習をするのは、学びたい人には面白いプロジェクトになると思うよ。

Piの「Hats」でコントロールに接続するADCsを使ったプロジェクトがいくつかあるんだけど、将来のバージョンではそのADCsとポットをボードに直接統合して、スリムなプロファイルにできるかもしれないね。便利そうだし、JLCPCBでの組み立て時の単価が気になるな。

前半には大体「はい」と言えるね。

ほとんどの電気エンジニアは、ICメーカーが公開している「リファレンスデザイン」を使ってPCBを設計しているけど、商業的に入手可能なオープンソースデザインもリファレンスとして使えるよ。彼らは基本的にPDFから回路図をコピーして(ファイル形式やコンバータが許せばインポートも)、必要ない部分を削除して、自分のレイヤーを使ってPCBを再ルーティングするんだ。場合によっては、PCBファブのレイヤースタックが元のボードに似ていると、さらに進んでPCBのほとんどをデザインにコピー&ペーストして、信号の整合性を保つことができる。実際には、これは低速デザインにしか実用的じゃないけど、電子機器の一クラスにはまだ役立つよ。私はKiCadを使ってないけど、Altiumみたいなソフトはモジュラー回路図シートやPCBルームをサポートしているから、理論的にはそれにインポートできる(KiCadのフォーマットはオープンソースのS-exprだからね)。

最近、商業ボードよりも優れたスイッチング特性を持つArduino UNOを作ったんだ。無駄に思える配線のやり方が後々問題を引き起こすことがあるって理解するのに役立った、いいプロジェクトだったよ。 http://www.simonjjones.com/#/posts/golden-arduino

あなたの投稿、楽しんだよ。PCBのルーティングは、私にとって「禅と...」みたいなもので、最近ESP32のために似たようなことをやったんだ。

4層ボードにすれば、信号線をリファレンスプレーンに近づけられるから、信号が交差するのを避けやすくなるし、さらに改善できると思うよ。

これはすごいリソースだね。ESP32を基に自分のボードを作ろうとするまで、これが何のためのリソースかよく分からなかった。ESP32を使うのはそんなに難しくないけど、自分が知らないことが多すぎて…。こういう出発点があれば、もっと自信を持って始められるよ。ありがとう!

これは、工場に送るカスタムPCBを作るのに役立つの?それとも、自分で作れるものをデザインしてシミュレーションするだけ?それとも両方/どちらでもない?このプロジェクトが何をするのか、ちょっと理解できてないんだけど、教えてもらえる?

了解!こういうデザインの無料版があるのは素晴らしいね。バグや不具合は時間が経てば解決されるだろう。

こういうプロジェクトを、特に子供たち(9〜13歳のとても賢い子たち)と一緒に始めるためのアドバイスがある人いる?彼らに3Dプリンターを買って、もっと「物理的な」コンピューティングに移行させようとしたけど、結果はまちまちだった。PCBボードの優しい入門ができる場所はあるかな?

個人的には、このマクロパッドのチュートリアルが大好きで、高校で回路ボードデザインを始めたきっかけなんだ:https://hackpad.hackclub.com/。これをやる前に、ブレッドボードで遊んだ経験があるとすごく役立つから、キットを買ってあげるとスムーズに移行できるよ!まずマクロパッドを作って、その後キーボード、次に開発ボードに進んで、自分のプロジェクトを作り始めるのがいいと思う。ただ、高校にまだ入ってない子供たちには、ちょっと intimidating に感じるかもしれないし、学習曲線もそこそこ高いから、まずはブレッドボードで遊ばせるのがベストかも ;) Hack Clubでは、13歳以上の子供たちには、stasis、fallout、forgeみたいなプログラムを通じて全費用をカバーする助成金も出してくれるよ(詳しくは彼らのサイトをチェックしてみて)。

論理的な進行はこうだと思うな。 (1) 既存のMCUボードにサードパーティのデバイスやモジュールを配線してプログラミングする (2) モジュールとMCUボードを差し込むためのPCBを作る (3) 周辺機器を統合したPCBを作ってMCUボードだけを差し込む (4) すべてを含むボードを作る。MCUは通常、クリスタルやストレージ、コンディショニングされたバス、電源ステージなどのデバイスよりも扱いが難しいから、周辺機器を統合しながらMCUをPCBに差し込むのは良いアイデアだよ。非自明なボードを作るにはデータシートを読める必要があって、子供たちには手取り足取り教えないと理解が難しい要素がたくさんあるんだ。簡単にUSB-CプログラミングできるMCUを選ぶといいよ。RP2040は現代的な良い選択肢だね。

ブレッドボード[1]とブレークアウトボード[2](特にPi Picoは、異常に詳細で正確なデータシートがあって素晴らしい)。MicroPythonは、計算の面で始めるには最高の方法だと思う。ブレッドボードで何かが動いたら、PCB設計に「卒業」できるよ(ブレークアウトのダウターボードを使うPCBを設計するのも全然問題ないし) - 中間ステップとしてパーフボードを使うのもあり。KiCADを使ってみて。Blender並みのオープンソースソフトだよ。高品質なブレッドボードとワイヤーはすごく重要だね。接続不良を診断するのは学びの経験かもしれないけど、頻繁に遭遇すると全体的に学びの妨げになると思う。すべてのコンポーネント(ブレークアウトボードも含めて)の予備をたくさん用意しておくといいよ。魔法の煙を何度か呼び出すことになるかも。データシートを読むことを早く学ぶ必要があるだろうね。「典型的なアプリケーション」をコピーして、リアルな技術的なことを避けることもできるけど。親切なリマインダー:その脳はまだ成長中だからね。適切な換気はすごく重要だよ(ハンダなしでも、フラックスの煙はさまざまなレベルで有毒だから)。煙は窓から出すべきで、フィルターを通して同じ部屋に入れちゃダメ。頭痛の訴えは真剣に受け止めてね:煙を正しく排出できてないってことだから。ハンダ付けについて知っておくべき重要なことがいくつかあるよ。「フラックスは多すぎることはない」、「ハンダは熱に向かって流れる」、「物を温めてからハンダをその物に付ける(鉄に付けない)」って感じで、基本的なテクニックを守ることが大事。よく勧められるHakko FX-888Dは本当にひどいよ。Pinecilの方がずっといい(値段のわりにね)か、TS100/TS101もおすすめ。

このプロジェクトで使っているCADソフト、Kicadの入門には「Shine on you crazy Kicad」がすごく良かったよ:https://www.youtube.com/watch?v=eMW9ohCbcik&t=27s 基礎から始めて、メーカーからPCBを買うところまで教えてくれる。

面白いプロジェクトだね。これらの人気の「コモディティ」開発ボードデザインは、リミックスやコピーが多すぎて、既存のプロジェクトにスロットインできるオープンソースデザインが足りなかったんだ。こういうデザインを「テンプレート」として使って、自分が必要な機能を追加するボードを設計するのが想像できるよ。そして、標準のフットプリントに合うことも分かるしね。

すごい!久しぶりだけど、次の学びのステップはブレークアウトボードなしでPCBを設計することだったんだ(何度も失敗したけど)。これは学ぶのに最高だね。

これは素晴らしい。私の目標の一つは「自分のESP32 PCBを作る」ことなんだけど、知識が足りなくてね。LLMに助けを求めようと思ったけど、ここではPCBレイアウトにはあまり役立たないって言われた。でも、Kicadを使ってMCPで頑張ってみるよ :) 学ぶ意欲はあるけど、完全なEEの学位を取るより効率的な方法が必要なんだ。リファレンスデザインでかなり進めると思うけど、グラウンドレイヤーやトレース幅について学ぶことがたくさんあるって理解してる。

レイアウトについて知っておくべきことのかなりの部分が、前のコメントにある4本のYouTube動画にうまくまとめられてるよ。https://news.ycombinator.com/item?id=44549063 最初の動画は40秒経たないと音声が始まらないから注意してね。