ストックしてたV-USB基板を極力変更せず、Arduino Metaboardに仕立てる

Last-modified: 2015-11-14 (土) 13:01:37
初出 2015-11-13
最終更新 2015-11-13
Metaboardについて書いたページは他に多数あるので、通常当サイトではまず取り上げない内容なんですが、今回はちょっと内輪向けの需要もあるので、簡単にページを作っておきます。
 

一応、1)独自のピン定義を定めた場合にそれをどう反映させるかを示す、2)他のページで、board.txtに追加する内容が、Metaboard用としては無意味なものが含まれているケースが多いので、それを指摘する、等の意味もあると一応書いておきます。

 

↓くれぐれもArduino基板としての参考にしないで下さい。別の用途で作成してあった基板にArduinoのファームウェアを書き込むことで、“名目上”Arduinoに仕立てただけです。
ただしメッキ線のみでV-USB基板を作成する際の参考にはなります。一部でビニール被覆線を使用している理由は、そこは仮の配線なのでパターンを汚さないようにする為です。そこを除けばICSPまで含めてメッキ線だけで配線しているということになります。
arduino-metaboard_1_s.jpgarduino-metaboard_2_s.jpg
クリックすると大きな画像で表示されます
13番ピンをGNDに落とすジャンパを設けました。これが今回Arduinoにする為におこなった唯一のハード改造です。
なお上部に3個の抵抗を付けていますが、そのうちの2個は以前の用途で使用していた名残で、現在は使用していません。残り1個は、Arduino IDE上からLチカを書き込んであるので使用しています。

 

ピン割りをカスタマイズした場合の、Metabord用board定義の追加分

metaboard168.name=Metaboard (USBaspLoader ATmega168 at 16MHz)
metaboard168.upload.protocol=usbasp
metaboard168.upload.maximum_size=14336
metaboard168.upload.speed=19200
metaboard168.build.mcu=atmega168
metaboard168.build.f_cpu=16000000L
metaboard168.build.core=arduino
metaboard168.build.variant=metaboard
metaboard328.name=Metaboard (USBaspLoader ATmega328P at 16MHz)
metaboard328.upload.protocol=usbasp
metaboard328.upload.maximum_size=28672
metaboard328.upload.speed=19200
metaboard328.build.mcu=atmega328p
metaboard328.build.f_cpu=16000000L
metaboard328.build.core=arduino
metaboard328.build.variant=metaboard

独自のピン定義を反映させる設定は以下の記述です(よくできたページでもここが抜けているページが多い)。

metaboardXXX.build.variant=metaboard

もちろんmetabordフォルダに独自のpins_arduino.hを設置しておきます。

 

ところで、フラッシュメモリから直接実行する1チップで構成されているMetaboardのブートローダを自身で更新できる筈はありません。なのでMetaboardなのに、(何かの真似か何かで)該当箇所にbootloader.fileの記述がある、boards.txtの記述は、間違いとまでは言えないかもしれませんが無意味です。

 

upload.maximum_sizeに記述する値はUSBaspLoaderのMakefile.incのBOOTLOADER_ADDRESS_XXXを10進にしたものです。

USBaspLoaderがUSB通信等に使用するピンのカスタマイズ

ダウンロード  fileUSBaspLoader-master-Metaboard.patch
※USBaspLoaderはgithub( https://github.com/baerwolf/USBaspLoader )のものを使用することを強く推奨します。上記内容もこれを前提に記述しています。

Arduinoのピン定義(pins_arduino.h)のカスタマイズ

独自定義のpins_arduino.hのひな形はtinyUSBboard用のものを使います。

 

そして上掲の基板の場合、↓このように修正します。
ダウンロード  filediff-tinyusbboard_pins_arduino.h_my-metaboard_pins_arduino.h.txt

udevの設定(最近のLinuxの場合)

USBaspデバイスのパーミッションを自動設定するudev用の定義ファイルについでですが、2010年頃の、古いものがまだ検索結果の上位に位置しています。現在のLinuxでは“SYSFS”の箇所を“ATTRS”に置き換える必要があります。

SYSFS{idVendor}=="16c0", SYSFS{idProduct}=="05dc", GROUP="users", MODE="666"

ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", GROUP="users", MODE="666"

 

ご要望、ご意見、質問を下のフォームにどうぞ
(でもここより、掲示板書き込みフォームのページに書いて頂いた方が気づき易いと思います。)