===== Leonard Pirate とは ===== Leonardoじゃなくて、Leonardです!\\ Arduino Leonardoと同じ構成で(といってもピン数少なくしてますが)、USBポートにお手軽に刺してArduino環境で遊べるボードです。\\ Bus Pirateというボード(汎用シリアルインターフェース)があって、こいつはお手軽にUSBポートに刺して色々繋いでコントロールして遊べるのですが、\\ 使い慣れたArduino環境でセンサとかをとりあえず使ってみるのに便利かなーと思って作ってみました。\\ 小さくするために、3.3Vとか、Leonardで追加されたピンなどは捨てています。あくまでサクっとプロトタイピング用という目的で。\\ \\ このボードは、Dangerous PrototypesのBus Pirateにインスパイアされて作りました。\\ MTMでDangerous PrototypesのIanに会って見せていたのですが、Ianにblogエントリで煽られたので、"Bus Ninja"をPortしてみました。\\ "Bus Ninja"は、"Bus Pirate"というSPI/I2Cデバイスをコマンドラインでハックできるモノのクローンです。\\ \\ USB-Aコネクタを取り付けてそのままPCに刺せるようにする使い方と、micro-Bコネクタを取り付けてケーブルを使ってPCと接続する方法とが選択可能です。\\ \\ USB-Aコネクタの場合\\ {{http://farm7.static.flickr.com/6038/6237845177_dc04ea8842_m.jpg}}\\ micro-Bコネクタの場合\\ {{http://farm7.static.flickr.com/6237/6238366920_2e4861f537_m.jpg}}\\ \\ コネクタ両方付けるのは、micro-Bのケーブル側コネクタと基板に取り付けたUSB-Aコネクタが干渉して無理だと思います。\\ (それになんか気持ち悪いことになるしね。) ===== 回路図 ===== {{:leonard_pirate_sch.png?direct&300|}}\\ betaの回路図はこちら。\\ といっても、たいしたもんじゃありません。\\ Arduinoの[[https://github.com/arduino/Arduino/blob/new-extension/hardware/arduino/variants/leonardo/pins_arduino.h|pins_arduino.h]](105行目〜)を参照してピンをレイアウトしました。\\ \\ 回路図、修正してRC版を作りました。\\ {{:leonard_pirate_rc_sch.png?direct&500|}}\\ ピン定義はmasterブランチの[[https://github.com/arduino/Arduino/blob/master/hardware/arduino/variants/leonardo/pins_arduino.h|pins_arduino.h]]に移動して、変更されているので、こっちに合わせてあります。\\ {{:leonard_pirate_rc_brd.png?direct&300|}}\\ ===== パーツリスト ===== ^Part.^容量など^部品名^パッケージ^入手元^通販コード^値段^ |C1|1uF|C-USC0603K|C0603K|秋月|P-02996|2| |C2|22pF|C-USC0603K|C0603K|千石| |4| |C3|22pF|C-USC0603K|C0603K|千石| |4| |C4|0.1uF|C-USC0603K|C0603K|秋月|P-04940|0.5| |C5|10uF|C-USC3216|C3216|秋月|P-01185|12.5| |C6|0.1uF|C-USC0603K|C0603K|秋月|P-04940|0.5| |C7|0.1uF|C-USC0603K|C0603K|秋月|P-04940|0.5| |IC1|ATMEGA32U4-AU|ATMEGA32U4-AU|TQFP44|SSCI| |480| |L|D13|LEDCHIP-LED0805|CHIP-LED0805|秋月|I-03978|10| |L1|500mA|PTCFUSE-1206|R1206| | | | |L2|TX|LEDCHIPLED_0805|CHIPLED_0805|秋月|I-03978|10| |L3|RX|LEDCHIPLED_0805|CHIPLED_0805|秋月|I-03978|10| |PWR|GREEN|LEDCHIP-LED0805|CHIP-LED0805|秋月|I-03980|10| |R1|22|R-US_R0603|R0603|千石| |4| |R2|22|R-US_R0603|R0603|千石| |4| |R3|1K|R-US_R0603|R0603|千石| |4| |R4|10K|R-US_R0603|R0603|千石| |4| |R5|1K|R-US_R0603|R0603|千石| |4| |R6|1K|R-US_R0603|R0603|千石| |4| |R7|1K|R-US_R0603|R0603|千石| |4| |R8|10K|R-US_R0603|R0603|千石| |4| |S1| |TAC_SWITCHSMD|TACTILE_SWITCH_SMD|秋月|P-03006|20| |X1|USB|USB|MOLEX_480371000|秋月|C-02236|50| |X2|USB-MICROB|USB-MICROB|USB-MICROB|千石| |200| |X3|FA238-16MHz|XTAL-4-3225| |秋月|P-02457|50| \\ 大抵のパーツは秋月と千石で手に入ります。\\ ポリスイッチはどうしようか思案中。私は、とりあえずスズメッキ線で短絡してます。 ===== 組み立て方 ===== といっても、SMDを手ハンダしようとしている人に言うことなぞありません。\\ あえて言えば、秋月のAコネクタはSMTタイプじゃないので、ラジオペンチで足を曲げて、ランドからはみ出る部分はニッパーで切って、うまいこと納めてください。\\ また、千石で買ってきたmicro-Bコネクタは、裏にポッチが付いてるのですが、基板には穴が開いていません。なので、ポッチをニッパーで切ってください。\\ micro-Bコネクタは奥まったところに足が出てたので、ちょっとだけはんだづけ難易度が高かったです。\\ \\ XTALの取り付け方向ですが、写真を参考にして下さい。(写真は2011/09/25-alphaのものです。RCとは方向が違うので注意してください。)\\ 端子は対角線上に配置されていますので、長辺と短辺が合っていればOKです。\\ {{http://farm7.static.flickr.com/6232/6237121977_54f9830035_m.jpg}}\\ \\ 下のErrataのところに記載していますが、RX, TXのLEDはシルクと逆に取り付けてパターンカットするか、そもそも取り付けないのがお薦めです。\\ ===== ソフトウェア ===== 組み終えたら、32U4にブートローダを書き込んでやってください。\\ Arduino 1.0 RC1あたりを立ち上げて、USBtinyISPなどのArduinoが対応しているISPで接続し、BoardでArduino Leonardoを、あとProgrammerの機種を選択、\\ "Burn Bootloader"をクリックすれば書き込めます。\\ もちろん、ISPとLeonard Pirateは接続しておいてくださいね。6pinのICSP端子がついてて、pin1のところに▼のシルクでマーキングがあります。\\ ターゲットに給電してくれないタイプの(AVRISP mkIIなど)ISPを使う場合、USBに刺してLeonard Pirateに給電してやらなきゃいけない事をお忘れ無く。\\ \\ "Bus Ninja"のhexは、[[https://raw.github.com/ytsuboi/Bus-Ninja/master/precompiled/ninja-leonard-pirate-atmega32u4.hex|ここ]]からダウンロードできます。ソースコードに興味があれば、[[https://github.com/ytsuboi/Bus-Ninja|僕のgithubレポジトリ]]に置いてありますので、どうぞ。\\ avrdudeで書き込むなら、 avrdude -p atmega32u4 -c stk500v2 -P usb -F -U flash:w:ninja-leonard-pirate-atmega32u4.hex -U lfuse:w:0xCE:m -U hfuse:w:0xD8:m -U efuse:w:0xFF:m こんな感じにすると良いでしょう。\\ \\ \\ \\ ===== Errata ===== 2011/09/25-alphaと裏面にシルクがあるものの既知の問題点は次のとおりです。 * RX, TXのLEDがH/L逆になっており、普段は点灯しっぱなしになる。\\ * LEDを逆に付けて、R6,R7のGNDをパターンカットしてVCCに接続することで、とりあえず対応してください。 * 部品は裏面にも実装すべきじゃなかったなぁ… * ソフトウェアの問題のような気がしてなりませんが、digitalWrite(A0, HIGH);すると、RXのLEDが… * RSTピンの位置が微妙(ユニバーサル基板を上に載せられない) \\ ===== ToDo ===== 2011/11/16 基板作り直して、以下の内容を変更しておきます。 * RX,TXのLEDをVCCからぶら下げる * 部品は片面に揃える * ピンのシルクを修正 * 全てのデジタルピンとアナログピンを出すべきだろうか(検討中) * VCCとGNDは信号ピンと別に出そうかなぁ * USB-Aコネクタオスの位置修正 * 今みたいに列にD0-D7と出すのではなく、ボックスヘッダに合わせてD0,D2,D4と出すべきだろうか * RSTピンの位置が微妙なのを修正