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コネクタの場合
micro-Bコネクタの場合
コネクタ両方付けるのは、micro-Bのケーブル側コネクタと基板に取り付けたUSB-Aコネクタが干渉して無理だと思います。
(それになんか気持ち悪いことになるしね。)
betaの回路図はこちら。
といっても、たいしたもんじゃありません。
Arduinoのpins_arduino.h(105行目〜)を参照してピンをレイアウトしました。
回路図、修正してRC版を作りました。
ピン定義はmasterブランチのpins_arduino.hに移動して、変更されているので、こっちに合わせてあります。
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です。
下の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は、ここからダウンロードできます。ソースコードに興味があれば、僕の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
こんな感じにすると良いでしょう。
2011/09/25-alphaと裏面にシルクがあるものの既知の問題点は次のとおりです。
2011/11/16 基板作り直して、以下の内容を変更しておきます。