wiki:ArduinoCompatible

Arduino互換機の作り方(ルール)

Arduinoはオープンソースハードウェアです。ソフトウェアじゃないのにオープンソースって何だよって話もありますが、ようするに、設計が公表されていて、一定のルールのもとで再利用が可能なハードウェアです。つまり、全く同じ回路の製品を作ってもいいし、それを売ってもいいのです。

やっていい事

たとえばArduino Unoのハードウェア設計、つまり回路図および基板アートワーク(銅箔パターン設計)は、このページで公表されています。このハードウェア設計を使って、似たような製品を作る事が許されています。個人的に使うだけでなく、売ってもかまいません。この時、Arduinoの作者に許可を得る必要はありません。

  • 基板アートワークから、全く同じ製品を作る。
  • 基板アートワークを少し変更して、似た製品を作る。
  • 回路図から、自分で基板アートワークを描いて、回路は同じだけど見た目の違う製品を作る。
  • 回路図を変更して、基板アートワークも描いて、回路も見た目も違う製品を作る。

Arduinoに搭載されたマイコンには、ファームウェアを書き込む必要があります。このソフトウェアについて、以下の事が許されています。

  • すでにバイナリ(HEXファイル)として提供されている物を書き込む(一部例外あり)
  • ソースコードをコンパイルしてできたバイナリを書き込む(一部例外あり)
  • ソースコードの一部を改変した物をコンパイルしてできたバイナリを書き込む(一部例外あり)

一部例外ありとしたのは、USBのVIDを含む場合です。以下の「USBのVID」の項を参照してください。

やらなければいけない事

Arduinoのハードウェア設計を利用するには、ルールがあります。それは「CC BY-SAに従え」です。CCとはCreative Commonsの事で、主に芸術作品の著作権を保護しながら複製を許すために使われる規約の集まりです。このうち「CC BY-SA」は、以下の条件を定めています。

  • BY=表示。クレジットを適切に表示する。クレジットとは権利者の名前です。あなたが何か変更を加えた場合は、あなたの名前も表示する必要があります。
  • SA=継承。あなたが何か変更を加えた場合は、その変更部分を元の作品と同じ規約で公表(頒布)する必要があります。

CCの規約群は、本来は電子的に複製可能な芸術作品に適用する事を想定しています。そのため、オープンソースハードウェアに適用する規約として適切ではないかも知れないという議論があります。「表示」にしても、小さな基板に全てのクレジットを表示するのは無理がありそうです。この辺りは、残念ながら、こうすれば正しいという共通認識が得られるには至っていません。

ソフトウェア(ファームウェア)を利用するには、LGPLに従う必要があります。簡単に言えば、買った人に求められたらソースコードを提供しなきゃいけない、自分で改造して使った場合はその改造部分もLGPLで提供しなきゃいけない、というルールです。また、本当は著作権表示をしなければいけないのですが、Arduinoのファームウェアの著作権表示は、Arduinoの本体やパッケージでは見かけた事がありません。

やらなければいけない事じゃないかも

ここで逆の話をしなければいけません。日本および諸外国の著作権法では、一般に、工業製品の設計は保護されないのです。工業製品の設計には著作権はありません。たまに「設計ではなくて、設計図の図面なら描いた物だから著作権が発生するだろう」と解釈する人がいますが、これもダメです。判例もあって、すでに否定されています。したがって、著作権が有る事を前提とした「CC BY-SAに従え」というルールには、そもそも法的根拠がありません。

CC BY-SAに従う必要は無いかも知れません。もしも争いになったら、裁判には負けないようにも思います。しかしながら、一定の努力と苦労の結果である設計を公表してくれた人の「表示をしてほしい、規約を継承してほしい」というお願いを無視するというのは、お行儀の良い事ではありません。世界中の同業者やお客様から軽蔑されるでしょう。ここでは、法的根拠は無いものの、お願いには従っておく方がいいと思います。

ただ、Arduinoの回路図を見ればわかるように、設計はとてもシンプルで簡単です。マイコンのGPIOの何番を何番端子に出すという情報さえあれば、元の回路図を見ずに設計する事は容易です。むしろ、誰が設計をしてもほとんど同じになるでしょう(だからこそ、工業製品の設計には著作権が主張できないのです)。Arduinoに似た回路ならば、どんな物でもArduinoの規約に従わなければいけないとしたら、それはそれで問題です。上記の「お願い」を過度に尊重し、あるいは誰かの設計について「Arduinoの改変ではないか」と疑うというのは避けなければいけません。

この項を読むと、何をやらなければいけないのか、やらなくていいのか、さっぱりわからなくなった事と思います。このように、法的根拠が無く、またはっきりと決まっていない事こそが、オープンソースハードウェアの弱点だと言えるでしょう。

やってはいけない事

「Arduino」は、Arduinoの作者(法人化されています)の登録商標であるため、この商標を勝手に使うことができません(イタリア、米国、日本他で登録されています)。つまり、あなたが開発または製造した製品を「Arduino」と名乗る事は許されていません。また、Arduinoのロゴ画像を製品またはパッケージに使う事も許されていません。

この「許されていない」は、商標法による規定です。そのため、違反すると、民事上の係争ではなく刑事上の犯罪です。しかも、著作権法違反(親告罪)とは異なり、権利者による告訴は必要ではありません。また、「私は製造していない、中国どっかから買ってきただけだ」という理由で責任を免れる事はできません。

たとえば、以下のような名称はダメです。

  • Arduino ◯◯◯◯◯
  • ◯◯◯◯◯ Arduino
  • Arduino Compatible ◯◯◯◯◯

代わりに以下のような名称を使うよう推奨されています。

  • ◯◯◯◯◯ for Arduino ←Arduinoに接続して使える事を示す
  • ◯◯◯◯◯ (Arduino Compatible) ←Arduino互換品を示す

日本語での名称については例示がありませんが、以下の名称なら良さそうです。

  • ◯◯◯◯◯(Arduino用)
  • ◯◯◯◯◯(Arduino互換)

このページの「What should I call my boards?」を参考にしてください。

USBのVID

Arduinoで使われているソフトウェアのうち、以下の物には、USBのVID(ベンダーID)が含まれています。

  • Arduino Unoなど、USBシリアル変換のためにUSB機能付きAVRを使用している製品の、USB機能付きAVRに書き込むファームウェア
    • Unoの場合は、ATmega16U2です。メインのマイコンであるATmega328Pは、この対象ではありません。
  • Arduino Leonardo、Arduino Microなど、マイコンとしてUSB機能付きAVRを採用している製品の、マイコンのブートローダ
    • Leonardo、Microの場合は、ATmega32U4です。

VIDは、USBフォーラムが発行し、Arduinoの製造者がお金を払って取得した番号です。他の企業、団体、個人などが番号を流用する事は、USBフォーラムが許可していませんし、Arduinoの製造者も許可していません。マイコンに対して、上記のソフトウェアをそのまま書き込むと、意図せずともVIDが流用されてしまいます。独自にハードウェアを製造した時は、以下の手順に従ってください。

  • USBフォーラムに申し込んで、自分用のVIDを発行してもらう(有償です)
  • 上記ソフトウェアのソースコードを用意し、VIDの部分を書き換える。必要に応じてPIDの部分も書き換える。
  • コンパイルしてバイナリを生成し、マイコンに書き込む。

なるべくやらないほうがいい事

規約上許されてはいますが、何の工夫も無い全く同じ製品を製造するのは、褒められた事ではありません。たいていの場合、劣化コピーにしかなりません。なにしろ、本物のArduinoは、年間数十万個の規模で大量生産されているのです。基板にせよ、ハンダ付けにせよ、少量生産では決して勝てない品質です。劣化コピーをお客様に提供したとして、どんなメリットをお客様に提供できるのでしょうか。

商品の名前を「◯◯◯duino」にするのは、よく見られますが、これはあまりお勧めできません。Arduinoの作者は、「もっと頭を使って素敵な名前を考えてくれ」とはっきり言っています(意訳)。それに、イタリア人にとっては、とても恐ろしい名前に聞こえるのだそうです。

おまけ

疑問点、おかしな点などありましたら、ツイッターでご連絡ください

2014/8/4

Last modified 3 years ago Last modified on Aug 5, 2014 3:37:49 PM