コイデマサヒロ
300円ほどで購入できる格安のArduino Nanoの互換機を購入してみました。問題なく使えそうでしたので紹介します。OS XやRaspberry Piへのドライバーのインストール、ちょっとした故障の修理などをまとめました。
概要(外観など)
購入は、Amazonで経由ですが、中国からの発送です。送料無料なだけあって届くまでに3週近くかかりました。China Postはある程度荷物がまとまってから発送になるようで、タイミングによって時間がかかるようです。また荷物のトラッキングは出来るのですが、このまとまってから発送のシステムのため待っている殆どの期間で進捗が出ません。ちょっとドキドキです。 調べてみるとほぼ同程度の金額で国内発送で取り扱っている通販のお店もあるようですので、気になる方はそちらを探してみてください。
実物の激安Nano互換機の写真です。ピンヘッダは自分で付けました。
届いてすぐの印象は、ちゃんとしている!と感じました。よく見ると基板のカットの精度が少し悪く(上の写真でも四隅の穴がギリギリなのがわかります)、切り口も荒いです。基板はガラス繊維のようなものでできていますので、トゲが刺さるのが怖いので自分でヤスリをかけました。
細かく見れば多少パーツがずれたり、スイッチとか一部パーツが安っぽいとかありますが、見た目含め実用上は問題ないレベルだと思います。
心臓部のATmega328は本家より大きいものが付いていました。パーツ配置は本家に似せたレイアウトになっていますが、シリアル接続用のチップは本家と異なるものを使っているため回路自体は完全に同じというわけではないようです。
廉価Nano互換機として出回っているのはほとんど同じものらしく、海外で回路やパーツの解析をしている人もいました。
http://actrl.cz/blog/index.php/2016/arduino-nano-ch340-schematics-and-details/
回路図もありました。
http://actrl.cz/blog/wp-content/uploads/nano_ch340_schematics.pdf
このような情報があれば使うのも少し安心ですね。
それから、ピンヘッダは自分で付ける必要があります(ピンヘッダ自体は付属しています)。面倒な気もしますが、利用方法によっては標準のものだと使いにくいという場合もあるので、これはこれで良い気がします。
似たような安い Arduino Mega 2560 も購入したことがあります(おそらく同じ製造元)。こちらはピンヘッダ付きでした。ボード本体の作りはほぼ問題ないのですが、ピンヘッダの取り付けが悪く、自分でつけ直すハメになりました。これはかなり手間です。そういう可能性を考えると自分で付けたほうがずっと良いです。
本家との違い(ドライバのインストール)
この互換Nanoと本家Nanoの大きな違いは、USB接続用のチップが本家とは別のCH340Gというものが使われていることでしょう。最近のWindowsでは、このチップ用のドライバーが標準搭載されているようで、USB接続すればそのまま認識されます。しかし、MacやLinuxだとそのままでは認識されません。僕のメイン環境はMacですのでドライバーのインストールから始めます。
Mac OS Xでドライバーのインストール
チップの製造元からドライバをダウンロードします。
http://www.wch.cn/download/CH341SER_MAC_ZIP.html
中国語ですが、わかりますよね?
インストーラ形式ですので、インストールして再起動すれば認識されるようになります。あとはArduino IDEから本家Aruduino Nanoと同様に使うことができます。
もしもWindowsでドライバのインストールが必要な場合は、
http://www.wch.cn/download/CH341SER_ZIP.html
からダウンロードできます。
このUSB接続用のチップが違うという以外は、本家Nanoと同等に利用できます。Arduinoのブートローダも予めインストールされていました。
Raspberry Pi 3で使えるようにする
チップの製造元のサイトを見てみるとLinux用のドライバー(ソースのみ)も配布されています。3系列のKernel用と書かれていますが、Raspberry Pi 3でもなんとかなるのでは無いかと調べてみました。
ちょうどこんなサイトが。
https://github.com/aperepel/raspberrypi-ch340-driver
ビルドされたドライバは、こちらからダウンロードできます。
https://github.com/aperepel/raspberrypi-ch340-driver/releases
Kernel 4.4.11-v7+用ですが、おそらくそれ以降のカーネルを搭載したRaspbianなら動くと思います。
ところが、サイト上で説明されている方法だとうまく行きませんでした。補足も兼ねて改めてここで説明しておきます。
◎ドライバをダウンロード
$ wget https://github.com/aperepel/raspberrypi-ch340-driver/releases/download/4.4.11-v7/ch34x.ko
◎カーネルモジュールをロードする。
$ sudo modprobe usbserial
◎ドライバーをインストール
$ sudo insmod ch34x.ko
実は手順が1つ欠けているだけですが、これでドライバがロードされるようになるはずです。
自前でビルド
せっかくソースが公開されているので、自分でもビルドしてみました。やはりサイト上で説明されていますが、(実質問題ないのですが)また手順が抜けているところもあるため改めてここて説明します。
ただし、やたらソースなどダウンロードすることになりますので、容量に余裕がある場合、あるいはドライバビルドしたらOSごと消しても良いといった場合以外は注意が必要です。
http://www.wch.cn/download/CH341SER_LINUX_ZIP.html
からLinux用のドライバのソースをダウンロードしてきます。
ビルドで必要なヘッダファイル類をインストール
$ sudo apt-get -y install linux-headers-rpi
カーネルをアップデート
$ sudo rpi-update
rpi-updateというツールは標準でインストールされていますが、インストールされていない場合は、以下でインストールできます。
$ sudo apt-get install rpi-update
カーネルをアップデートしたら再起動します。
必要なツール類をインストール
$ sudo apt-get install bc
$ sudo apt-get install libncurses5-dev
ビルドに必要なカーネルのソース類をダウンロードするための補助ツールをダウンロード&インストール。
$ sudo wget https://raw.githubusercontent.com/notro/rpi-source/master/rpi-source -O /usr/bin/rpi-source && sudo chmod +x /usr/bin/rpi-source && /usr/bin/rpi-source -q --tag-update
#怪しいものではなさそうです。Pythonスクリプトですので気になる人は中身を確認してください。
完了したら実行。
$ rpi-source
これで必要なソール類がダウンロード&インストールされます。
サイズが大きいので多少時間がかかると思います。
先ほどダウンロードしたドライバソースのフォルダに入ります。
ソースをビルドします。
$ make
ch34x.koというファイルができますので、上記のインストール方法でインストールできますが、
$ sudo make load
でもインストールできます。
あとは本家Ardduinoと同じ使い方です。
Raspiの場合は、シリアルポートへのアクセスにRoot権限が必要なのでArduino IDEをroot権限で起動する必要がありますが、面倒な場合は、
$ sudo chmod 666 /dev/ttyUSB0
と権限を変えてやれば通常のpiユーザーのままnano互換機へのスケッチの書き込みができます。
試しにFirmataをインストールしてPure Dataと連携させてみましたが、問題なさそうです。
早速壊れた!(そして修理)
いろいろ試していたところ、煙とともにパーツが燃える匂いがして慌ててUSBケーブルを抜きました。USBのコネクタの裏側あたりが焦げていましたが、見た目は大丈夫そうです。
再度USBに接続すると認識したので、そのまま使っていたところしばらくしたら電源が入らなくなりました。やはりパーツがだめになってしまったようです。
改めて基板を見るとUSBから電源取っているところのダイオードが駄目になったようです。おそらくブレッドボードの配線を間違えて電源をショートしてしまったのでしょう。
このダイオードは回路保護のためについていると思われます。煙が出たあともしばらくは使えたということはメイン回路自体は保護されたようなので、ダイオードとしてはちゃんと仕事をしたということでやむを得ないですね。(もとのダイオードが壊れやすいのではないかという気はしますが)
応急処置として焦げたパーツを外して、捨てるつもりだったパーツの足を使ってショート(短絡)させました。これで再度、使えるようになりました。
写真の上が修理したもの。丸で囲っているところが修理部分。パーツの足を切って出たリード線を使ってショートさせています。下はノーマルの状態のもの。
ただし、本来なら回路保護のためにちゃんとダイオードを付けるべきです。ショートさせたままだと、次はメインのSOCが壊れる可能性があります
互角Nanoは SD101CWS 、本家は MBR0520 か SS1P3L というショットキーバリアダイオードが使われているようです。同等のパーツであれば使えると思います。
ネットで調べてみると、すぐ壊れたという記事をたまに見かけます。ほとんとの場合、同じ原因ではないかと思います。すぐ直せるところですので、せっかくなので直して使いたいですね。
最後に
普通にArduino Nanoとして使えますし、動作も問題ないのでお薦めです。
すぐ壊れたということもあって信頼性がやや未知数ではありますが、実験段階では、格安機を使って開発し、実際に使うときなどは本家を使うというのが良いと思います。
またNnaoだとArduino Uno用の既存のシールド類が使いにくいのですが、小さくブレッドボードに刺さるので、実験用途には向いていますし、自作回路メインの組み込み的な利用に向いており、ちょっとマイコンを使いたいというものを自作するのにも最適です。音楽用途でいくつか試したり自作しているので、機会をみて紹介したいと思います。
コイデマサヒロ
ディレクター、プロデューサー、ギタリスト。mimiCopyをはじめ弊社リリースの全てソフトウェア製品の企画を担当。ネイティブアプリ開発がメインでOS問わず対応可。dubバンドのギタリストとしても活動中。